Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 86 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
86
Dung lượng
1,65 MB
Nội dung
MỤC LỤC 2.1.4.7 Điều khiển TextBox 27 LỜI CẢM ƠN Em xin chân thành cảm ơn ban chủ nhiệm khoa Công nghệ thông tin trường Đại Học Vinh, thầy giáo, gia đình, bạn bè động viên giúp đỡ em nhiều q trình hồn thành khố luận Đặc biệt em xin bày tỏ lòng cảm ơn sâu sắc tới thầy giáo hướng dẫn Thạc sỹ Nguyễn Cơng Nhật dạy tận tình tận tâm hướng dẫn từ ý tưởng ban đầu hồn thành khố luận quan trọng Em xin bày tỏ lịng cảm ơn tới gia đình thân yêu, bạn bè quan tâm tin tưởng động viên em suốt thời gian qua Em mong đón nhận đánh giá, bổ sung lời bảo thầy giúp em tiếp tục nghiên cứu kĩ vấn đề Em xin chân thành cảm ơn! Sinh viên LỜI NĨI ĐẦU Lý chọn đề tài Cơng nghệ thông tin trở thành phần quan trọng sống Các thiết bị kĩ thuật cao ngày gần gũi với hoạt động người Đặc biệt năm gần đây, thiết bị không dây với ưu nhỏ gọn, dễ vận chuyển chứng tỏ lợi ích to lớn cho người sử dụng Trong điện thoại di động, với chức liên lạc, bật lên thiết bị “không thể thiếu” sống nhiều người Với phát triển nhanh chóng cơng nghệ sản xuất thiết bị không dây, điện thoại di động trở thành phương tiện đa chức (nghe nhạc, chơi trò chơi, nhắc lịch làm việc) phục vụ nhu cầu người sử dụng lúc, nơi Các thiết bị tính tốn di động có kiến trúc giống máy để bàn hồn tồn tương thích với phần mềm có sẵn làm việc khơng cần đến nguồn điện trực tiếp nhiều liền Và số thiết bị PDA PocketPC lên đại diện mang đầy đủ đặc tính thích hợp để đáp ứng nhu cầu người sử dụng Vì nhu cầu sử dụng khai thác phần mềm PDA ngày lớn Xuất phát từ ý tưởng em chọn đề tài “Tìm hiểu Pocket PC xây dựng chương trình ứng dụng” Mục đích nghiên cứu Nghiên cứu cơng cụ lập trình cho mobile xây dựng ứng dụng tra cứu lịch xuất hành PC Pocket Bố cục luận văn Nội dung gồm có phần: Chương 1: Tổng quan Pocket PC (PDA) 1.1 Giới thiệu Pocket PC 1.2 Môi trường phát triển ứng dụng Chương 2: Các cơng cụ lập trình với PDA 2.1 Giới thiệu C# 2.2 Các cơng cụ lập trình PDA Chương 3: Xây dựng ứng dụng tra cứu lịch xuất hành Pocket PC 3.1 Vai trò lịch xuất hành 3.2 Giới thiệu phương pháp lập lịnh xuất hành 3.3 Xây dựng Modul tra cứu ngày 3.4 Xây dựng Modul tra cứu 3.5 Xây dựng Modul chuyển đổi ngày 3.6 Các môi trường thi hành ứng dụng 3.7 Cài đặt cấu hình chương trình cho thiết bị giả lập Kết đạt Đề tài “Tìm hiểu Pocket PC xây dựng chương trình ứng dụng” xuất phát từ thực tế ngày thiết bị di động ngày cải tiến nhu cầu người sử dụng khai thác ứng dụng ngày nhiều Mặc dù có nhiều cố gắng, tìm hiểu kiến thức học, kết hợp tra cứu tài liệu chuyên ngành đề tài “ Tìm hiểu Pocket PC xây dựng chương trình ứng dụng” hạn chế mặt thời gian, khả kinh nghiệm nên không tránh khỏi thiếu sót định nên khố luận hồn thành mức độ sau: - Tìm hiểu ngơn ngữ lập trình C# - Áp dụng xây dựng ứng dụng tra cứu lịch xuất hành Pocket PC Hướng nghiên cứu phát triển: - Nghiên cứu, tìm hiểu sâu công cụ hỗ trợ giải pháp lập trình với mobile, xây dựng ứng dụng thiết thực hỗ trợ người dùng CHƯƠNG I: TỔNG QUAN VỂ POCKET PC 1.1 Giới thiệu PDA Pocket PC PDA(personal Digital Assistant): Thiết bị trợ giúp kĩ thuật số, xây dựng tảng máy tính cá nhân bỏ túi đầy đủ phần cứng phần mềm dễ dàng sử dụng, khởi động bấm máy, làm việc lúc nơi Một PDA đơn giản thường có đồng hồ, sổ lịch, sổ địa chỉ, danh sách việc cần làm, sổ ghi chép, máy tính bỏ túi Trước PDA thường chia làm dịng Palm Pocket PC, cách phân biệt dựa hệ điều hành máy sử dụng Khơng lĩnh vực tính tốn cá nhân thay đổi nhanh chóng cơng nghệ di động Cùng với lớn lên theo thời gian phần mềm máy tinh sử dụng rộng rãi đời sống công việc Các nhà sản xuất gặp nhiều khó khăn chia nhỏ chương trình để làm việc với chúng chỗ, nơi Và cơng nghệ máy tính di động đời giúp giải vấn đề Các thiết bị tính tốn di động có kiến trúc giống máy để bàn hồn tồn tương thích phần mềm có sẵn làm việc khơng cần đến nguồn điện trực tiếp nhiều liền Trong bối cảnh vào năm 1980 PDA đời, lúc đầu máy tính cầm tay với vài ứng dụng chủ yếu như: đồng hồ, sổ ghi địa chỉ, danh bạ điện thoại, lịch làm việc,… đến ngày hầu hết PDA có ứng dụng cao cấp như: bảng tính, xử lý văn bản, quản lí tài chính, trị chơi,… Điều làm cho PDA trở nên gần gũi kết hợp gắn bó sức mạnh máy tính để bàn khả di chuyển cao PDA Giữa chúng có mối liên hệ chặt chẽ, hàng loạt thiết bị phụ trợ trao đổi thông tin dễ dàng sử dụng Hiện công nghệ phần mềm cho PDA phát triển nhằm đáp ứng nhu cầu người dùng PDA có nhiều tên gọi Pocket PC, Palm, XDA, Với PC Pocket khơng có vấn đề việc tìm kiếm web, gửi email chụp hình, quay camera Có số model Pocket PC kết hợp với điện thoại di động XDA O2 Bộ nhớ chuẩn Pocket PC 64mb flash, bạn nâng cấp cách mua thêm card SD, MMC, Memory stick,… tuỳ theo Pocket PC bạn hỗ trợ Hệ điều hành: Hầu hết PDA sử dụng hệ điều hành: Windows CE, EPOC PalmOS Đã bắt đầu có sản phẩm PDA giới thiệu Linux Song song với phiên Windows PC, Microsoft phát triển hệ điều hành Windows CE dành riêng cho PDA với đối tác mạnh mẽ như: NEC, Motorolla Philips Phiên Windows CE xây dựng giống Windows 95 hoạt động tương thích vi xử lí từ Motorolla cung cấp, cho PDA giao diện đồ hoạ với dáng vẻ Windows quen thuộc, cịn q cồng kềnh Windows CE khơng ngừng thay đổi từ phiên 1.0 đến 2.0 trở nên đối thủ cạnh tranh đáng nể Mặt khác với Visual Studio for Windows CE Microsoft làm cho việc viết phát triển ứng dụng PDA trở nên thật dễ dàng Microsoft hy vọng với Windows CE mang tên mã Rapies bước nhảy vọt công ty giới PDA 1.1.1 Lịch sử phát triển Lần xuất PDA đơn giản máy tính cầm tay với ứng dụng đồng hồ, máy tính, danh bạ điện thoại( chưa gọi được), lịch làm việc, sổ ghi chép, sổ ghi nhớ,… Chiếc PDA đời năm 1984 từ công nghệ ANH có kích thước 142mm x 78mm x 29.3mm, nặng 225 grams, làm từ công nghệ bit, với 10K nhớ, hình 16 kí tự LCD, có đồng hồ lịch kèm theo hàm tính tốn lập trình với OPL Cùng thời gian Apple cho đời PDA sở dùng bút quang có tên Newton Đây thiết bị không thị trường chấp nhận kích cỡ khối lượng nó, nữa, lại bị hạn chế việc nhận biết kí tự viết tay nhiều tính khác mà người mua khơng thật cần thời kì Đến cuối thập niên 80 Psion II đời có 64K ROM, 32K RAM hình 4x20 kí tự Thế hệ Psion Seria đời vào năm 1993 xây dựng tảng công nghệ 16 bit có hình 40 kí tự dịng LCD với bàn phím 58 phím Đây đột phá lớn PDA có khả chuyển giao đồng hoá liệu với máy tính để bàn Cùng với phát triển thị trường máy tính, năm 1997 seria đời với khả tính tốn 32 bit đánh dấu bước ngoặt PDA Cũng thời điểm Psion đánh vị trí dẫn đầu PDA vào tay Palm 3COM Palm INC thành lập năm 1992 sau hợp với US Robostics năm 1995 từ năm 1997 thành viên 3COM Thuật ngữ PDA John Sculley đưa lần vào ngày tháng năm 1992 hội chợ Consumer Eletronics Show tổ choc Las Vegas, Nevade, để thiết bị cầm tay Newton PDA hãng Apple Tuy thiết bị trước Psion hay Sharp Wizard coi PDA 1.1.2 Các tính điển hình Nhiều PDA vào mạng thông qua Wi-fi, Bluetooth hay GPRS Một đặc điểm quan trọng PDA chúng đồng liệu với PC Hiện ngồi tính hỗ trợ cá nhân PDA giúp nghe nhạc, ghi âm, xem phim, gọi điện thoại, chụp ảnh, quay phim, tìm đường (bằng cách kết hợp GIS với GPS định vị toàn cầu), điều khiển thiết bị điện tử từ xa cổng giao tiếp truyền thống USB, loại thẻ nhớ cổng hồng ngoại Cũng gọi điện thoại với giao tiếp khơng dây dùng chuẩn GSM/GPRS hay CDMA Một PDA điển hình có hình cảm ứng(touch screen) để nhập liệu, khe cắm cạc nhớ dành cho thiết bị lưu trữ liệu cổng hồng ngoại (IrDA port) để nối mạng Các PDA hệ sau thường tích hợp Wi-Fi Bluetooth 1.1.2.1 Cạc thẻ nhớ: Nhiều PDA có dạng khe cắm cạc nhớ Khe cắm SD(Secure Digital) loại khe cắm chuẩn cho PDA Mặc dù ban đầu thiết kế cho nhớ, năm gần đây, việc phát minh chuẩn SDIO cho phép thứ cạc Wi-Fi Webcam cắn vào khe Các khe cắm Compact Flash dùng nhiều PDA để cung cấp thêm khả mở rộng Ví dụ, khe dành cho nhớ, khe dành cho Wi-Fi Một số PDA có cổng USB, chủ yếu dành cho USB Flash drive 1.1.2.2 Nối mạng: Mỗi PDA cịn có cổng hồng ngoại để nối mạng Điều cho phép liên lạc PDA, Giữa PDA thiết bị dùng cổng hồng ngoại, PDA máy tính có adapter hồng ngoại Hầu hết PDA đại cịn có khả kết nối không dây theo công nghệ Bluetooth mà nhiều điện thoại di động, tai nghe mà thiết bị định vị tồn cầu sử dụng Ngồi cịn có kết nối Wi-Fi, WiMax 1.1.2.3 Đồng hoá: Một chức quan trọng PDA đồng hóa liệu với máy tính cá nhân Điều cho phép thơng tin địa liên lạc lưu trữ phần mềm chẳng hạn Microsoft Outlook hay ACT cập nhật sở liệu PDA Dữ liệu đồng hố đảm bảo PDA có danh sách xác địa liên lạc, hẹn thư điện tử, cho phép người dùng truy nhập thông tin PDA máy tính cá nhân Việc đồng hố cịn ngăn mát thông tin lưu thiết bị trường hợp bị trộm, bị lấy trộm, bị huỷ Một ưu điểm khác việc nhập liệu PC thường nhanh nhiều, nhập liệu qua mành cảm ứng chưa thật tối ưu Do đó, việc truyền liệu tới PDA qua máy tính nhanh nhiều so với việc phải nhập tay tất liệu vào thiết bị cầm tay Đa số PDA có sẵn khả đồng hoá với PC Điều thực qua phần mềm đồng hoá cung cấp kèm theo thiết bị, chẳng hạn HotSync Manager Palm OS, Microsoft ActiveSync kèm Windows Mobile 1.1.2.4 Tuỳ biến theo người dùng: Cũng máy tính cá nhân, cài đặt phần mềm bổ sung từ điển, trình soạn thảo văn bản, bảng tính, trình diễn, tìm đường đi, … lên hầu hết PDA Phần mềm mua tải xuống từ Internet Gần tất PDA hỗ trợ việc bổ sung số dạng phần cứng Loại thông dụng khe cắm cạc nhớ, thiết bị cho phép người dùng có thêm không gian lưu trữ chuyển đổi cac thiết bị cầm tay Ngồi cịn có bàn phím mini nối với số PDA để nhập liệu văn nhanh PDA với Bluetooth cịn sử dụng thiết bị Bluetooth tai nghe, chuột, bàn phím gấp 1.1.2.5 Nhận dạng chữ viết tay nhập liệu: Đây yếu tố định PDA, công nghệ xây dựng dựa việc người dùng sử dụng bút điện tử viết trực tiếp lên hình PDA nhận liệu chúng chuyển thành văn đẹp lưu trữ chúng giống sổ tay điện tử, công nghệ Graffiti ứng dụng rộng rãi Đối với người ưa thích bàn phím Fabric Pocket Keyboad kèm nhỏ gọn thật lí tưởng Liên lạc, kết nối: phụ thuộc vào hãng sản xuất model chủ yếu ngày có PDA kết nối với với PC qua cổng serial, hồng ngoại, modem kết nối với qua đường điện thoại điện thoại di động IrDA Bluetooth giao tiếp chuẩn cho PDA Một thiết bị mở rộng thiếu PDA card mở rộng card nhớ Trên thị trường đại diện tiêu biểu PDA Palm Pilot Vào năm 1996 Palm Computing giới thiệu Palm Pilot máy tính di động hồn hảo, Pilot mang lại khả quản lí, liên lạc, lịch làm việc, ứng dụng thông tin thương mại, có khả kết nối với máy tính để bàn từ xa người trợ thủ thiếu cho người thường xuyên lại, làm việc đường, cơng trường,… chúng có tính thật tuyệt với: kích thước nhỏ gọn túi áo, hình đồ hoạ giao tiếp thân thiện, đế cắm đế đồng với PC nút bấm Chỉ với trọng lượng 155grams, kích thước 115x70x10cm hình 160x160 điểm đóng gói tồn phần mềm quản lý cá nhân PIM Với bút điện tử phần mềm tiếng Graffiti bạn nhập tới 30 từ phút Palm Pilot thực trở thành tiêu chuẩn so sánh PDA 1.1.2.6 Màn hình: Kế thừa tính ưu việt công nghệ điện tử di động PDA trang bị cho hình tinh thể lỏng tốt chịu đựng môi trường, rung, va đập, màu sắc tiêu thụ lượng Pin: Pin sử dụng cho PDA hầu hết dạng Lithium AA thường, có thời gian lưu trữ lâu khả nạp lại 1.1.3 Cấu tạo nguyên lý hoạt động: 1.1.3.1 Cấu tạo a Bộ nhớ: Có sẵn PocketPC gồm ROM RAM Ngoại có Card để làm nhớ - RAM (Ramdom Access Memory) nhớ ghi/đọc Khi ngắt nguồn ni (hết Pin Hard Reset) thơng tin lưu trữ RAM bị - ROM (Read Only Memory): Hầu hết PocketPC sử dụng FlashROM, đọc/ghi Do đó, up ROM mà không cần phải mang đến nhà sản xuất Khi ngắt nguồn ni Hard Reset thơng tin lưu trữ ROM khơng bị ROM gồm có hệ điều hành, radio, Extended ROM - Card: nhớ ngồi có nhiều loại carrd: SD, CF, MMC,… phổ biến dùng SD (pocketPC dùng SD dùng MMC khe cắm dùng chung) Có nhiều loại 256MB đến 2G PocketPC tổ chức memory thành thành phần: Main Memory (Dành để cài chạy phần mềm) Storage Storage Card b Soft Reset: Là chức khởi động lại máy, tương đương với Restart máy tính Thơng thường, sau cài đặt xong phần mềm, font hệ thống hay máy bị treo cần phải soft reset lại để “làm tươi” c Hart Reset: Khi cài đặt hệ điều hành máy bạn thực lệnh Hard Reser, ổ cài đặt bị xoá để cài đặt lại Sau Hard Reser chương trình bị cịn lại hệ điều hành Windows Mobile d Back up: Trên hầu hết máy PocketPC có chức backup Contacts, Apointments lên phần ROM để giúp lưu trữ thông tin quan trọng Với máy đời HP, phần tính PIM Mirroring iPAQ Backup, với máy khác phần thường gọi Permament Save (chọn Start/ Setting/ System) Khi sử dụng tính lần bạn soft reset, Contact… đòng lưu lại ROM, việc làm cho trình khởi động diễn chậm hơn, bù lại, bạn yên tâm liệu đảm bảo an toàn 1.1.3.1.1 Kết nối với PC (Personal Computer): PocketPC cần phải kết nối với PC để thực việc cài đặt software, sync data,… Tất PocketPC connect với PC software MC ActiveSync (miễn phí) Khi bạn mua máy, CD kèm theo có MS ActiveSync Soft cài đặt PC Version thức 3.8 có Version 4.0 chạy Windows XP SP2 có hiệu lực rõ ràng, PocketPC chạy hệ điều hành WM5 mà Sau setup thành công, cắm cable USB nối PocketPC với PC PC nhận PocketPC hỏi phương thức kết nối: 10 a = jd + 32044; b = (4*a+3)/146097; c = a - (b*146097)/4; Lịch Julius: b = 0; c = jd + 32082; Công thức cho loại lịch: d = (4*c+3)/1461; e = c - (1461*d)/4; m = (5*e+2)/153; dd = e - (153*m+2)/5 + 1; mm = m + - 12*(m/10); yy = b*100 + d - 4800 + m/10; Phép chuyển đổi ngày tháng số ngày Julius thực với đoạn lệnh sau: int a, y, m, jd; a = INT((14 - mm) / 12); y = yy+4800-a; m = mm+12*a-3; jd = dd + (int)((153*m+2)/5) + 365*y + (int) (y/4)+ (int) (y/100) + (int) (y/400) -32045; if (jd < 2299161) { jd = dd + INT((153*m+2)/5) + 365*y + INT(y/4) 32083; } return jd; 72 Từ ngày Julius chuyển ngày thường Public static string jdToDate (int jd) { int a, b, c, d, e, m, day, month, year; if (jd > 2299160) { // After 5/10/1582, Gregorian calendar a = jd + 32044; b = INT((4*a+3)/146097); c = a - INT((b*146097)/4); } else { b = 0; c = jd + 32082; } d = INT((4*c+3)/1461); e = c - INT((1461*d)/4); m = INT((5*e+2)/153); day = e - INT((153*m+2)/5) + 1; month = m + - 12*INT(m/10); year = b*100 + d - 4800 + INT(m/10); return new day.ToString() + “/” + month.ToString() + “/” + year.ToString(); } Tính ngày SĨC Như nói để tính âm lịch trước hết ta cần xác định tháng âm lịch bắt đầu vào ngày Thuật tốn sau tính ngày Sóc thứ k kể từ điểm Sóc ngày 1/1/1990 Kết trả số ngày Julius ngày Sóc cần tìm Public static int getNewMoonDay (int k) { double T, T2, T3, dr, Jd1, M, Mpr, F, C1, deltat, JdNew; T = k/1236.85; // Time in Julian centuries from 1900 January 0.5 T2 = T * T; T3 = T2 * T; dr = Math.PI / 180; Jd1 = 2415020.75933 + 29.53058868*k + 0.0001178*T2 -0.000000155*T3; 73 Jd1 = Jd1 + 0.00033*Math.sin((166.56 + 132.87*T 0.009173*T2)*dr); // Mean new moon M = 359.2242 + 29.10535608*k - 0.0000333*T2 0.00000347*T3; // Sun's mean anomaly Mpr = 306.0253 + 385.81691806*k + 0.0107306*T2 + 0.00001236*T3; // Moon's mean anomaly F = 21.2964 + 390.67050646*k - 0.0016528*T2 0.00000239*T3; // Moon's argument of latitude C1=(0.1734 - 0.000393*T)*Math.sin(M*dr) + 0.0021*Math.sin(2*dr*M); C1 = C1 - 0.4068*Math.sin(Mpr*dr) + 0.0161*Math.sin(dr*2*Mpr); C1 = C1 - 0.0004*Math.sin(dr*3*Mpr); C1 = C1 + 0.0104*Math.sin(dr*2*F) 0.0051*Math.sin(dr*(M+Mpr)); C1 = C1 - 0.0074*Math.sin(dr*(M-Mpr)) + 0.0004*Math.sin(dr*(2*F+M)); C1 = C1 - 0.0004*Math.sin(dr*(2*F-M)) 0.0006*Math.sin(dr*(2*F+Mpr)); C1 = C1 + 0.0010*Math.sin(dr*(2*F-Mpr)) + 0.0005*Math.sin(dr*(2*Mpr+M)); if (T < -11) { deltat= 0.001 + 0.000839*T + 0.0002261*T2 0.00000845*T3 -0.000000081*T*T3; } else { deltat= -0.000278 + 0.000265*T + 0.000262*T2; } JdNew = Jd1 + C1 - deltat; return (int) (JdNew + 0.5 + timeZone / 24); } Với hàm ta tính tháng âm lịch chứa ngày N bắt đầu vào ngày nao: ngày 1/1/1990 (số ngày Julius 2415021) ngày N có khoảng k= (int) ((N-2415021)/29,530588853) ngày N có khoảng k=INT((N-2415021) /29.530588853) tháng âm lịch, dùng hàm getNewMoonDay biết ngày đầu tháng âm lịch chứa ngày N, từ ta biết ngày N mùng âm lịch 74 Tính toạ độ mặt trời: Để biết Trung khí nằm tháng âm lịch nào, ta cần tính xem mặt trời nằm khoảng đường hoàng đạo vào thời điểm bắt đầu tháng âm lịch Ta chia đường hoàng đạo làm 12 phần đánh số cung từ đến 11: từ Xuân phân đến Cốc vũ 0; từ Cốc vũ đến Tiểu mãn 1; từ Tiểu mãn đến Hạ chí 2; v.v Cho jdn số ngày Julius ngày, phương pháp sau trả lại số cung nói Public static int getSunLong (int jdn) { double T, T2, dr, M, L0, DL, L; T = (jdn - 2451545.5 - timeZone/24) / 36525; // Time in Julian centuries from 2000-01-01 12:00:00 GMT T2 = T*T; dr = PI/180; // degree to radian M = 357.52910 + 35999.05030*T - 0.0001559*T2 0.00000048*T*T2; // mean anomaly, degree L0 = 280.46645 + 36000.76983*T + 0.0003032*T2; // mean longitude, degree DL = (1.914600 - 0.004817*T 0.000014*T2)*Math.sin(dr*M); DL = DL + (0.019993 - 0.000101*T)*Math.sin(dr*2*M) + 0.000290*Math.sin(dr*3*M); L = L0 + DL; // true longitude, degree L = L*dr; L = L - PI*2*(INT(L/(PI*2))); // Normalize to (0, 2*PI) return (int) (L / Math.PI * 6); } Với hàm ta biết tháng âm lịch chứa Trung khí Giả sử tháng âm lịch bắt đầu vào ngày N1 tháng sau bắt đầu vào ngày N2 hàm getSunLongitude cho kết với N1 với N2 Như tháng âm lịch bắt đầu ngày N1 tháng chứa Đơng chí: khoảng từ N1 đến N2 có ngày mặt trời di chuyển từ cung (sau Tiểu tuyết) sang cung (sau Đơng chí) Nếu hàm getSunLongitude trả lại kết cho ngày bắt đầu tháng âm lịch ngày bắt đầu tháng sau tháng khơng có Trung khí tháng nhuận 75 Tìm ngày bắt đầu tháng 11 âm lịch Đơng chí thường nằm vào khoảng 19/12-22/12, trước hết ta tìm ngày Sóc trước ngày 31/12 Nếu tháng bắt đầu vào ngày khơng chứa Đơng chí ta phải lùi lại tháng Public static int getLunarMonth (int yy) { double k, off, nm, sunLong; off = jdFromDate(31, 12, yy) - 2415021; k = (int) (off / 29.530588853); nm = getNewMoonDay ((int) k); sunLong = getSunLongitude(nm, timeZone); // sun longitude at local midnight if (sunLong >= 9) { nm = getNewMoonDay((int) k - 1); } return (int) nm; } Xác định tháng nhuận: Nếu hai tháng 11 âm lịch (tức tháng có chứa Đơng chí) có 13 tháng âm lịch năm âm lịch có tháng nhuận Để xác định tháng nhuận, ta sử dụng hàm getSunLongitude nói Cho a11 ngày bắt đầu tháng 11 âm lịch mà 13 tháng sau tháng nhuận Hàm sau cho biết tháng nhuận nằm vị trí sau tháng 11 Public static int getLeapMonthOffset (double all) { double last, arc; int k,i; k = (int) ((a11 - 2415021.076998695) / 29.530588853 + 0.5); last = 0; i = 1; // We start with the month following lunar month 11 arc = getSunLongitude(getNewMoonDay(k+i, timeZone), timeZone); { 76 last = arc; i++; arc = getSunLongitude(getNewMoonDay(k+i, timeZone), timeZone); } while (arc != last && i < 14); return i-1; } Giả sử hàm getLeapMonthOffset trả lại giá trị 4, tháng nhuận tháng sau tháng thường.( Tháng thứ sau tháng 11 đáng tháng tháng nhuận nên lấy tên tháng trước tức tháng 2, tháng thứ sau tháng 11 tháng 3) Đổi ngày dương dd/mm/yyyy ngày âm Với phương pháp hỗ trợ ta đổi ngày dương dd/mm/yy ngày âm dễ dàng Trước hết ta xem ngày monthStart bắt đầu tháng âm lịch chứa (dùng hàm getNewMoonDay nói) Sau đó, ta tìm ngày a11 b11 ngày bắt đầu tháng 11 âm lịch trước sau ngày xem xét Nếu hai ngày cách 365 ngày ta cịn cần xem monthStart a11 cách tháng tính dd/mm/yy nằm tháng âm lịch Ngược lại, a11 b11 cách khoảng 13 tháng âm lịch ta phải tìm xem tháng tháng nhuận từ suy ngày tìm nằm tháng nào: Public static string convertSolar2Lunar( int dd, int mm, int yyyy) { double dayNumber, monthStart, a11, b11, lunarDay, lunarMonth, lunarYear, lunarLeap; int k, diff; dayNumber intgetJulius (dd, mm, yy); k = (int) ((dayNumber - 2415021.076998695) / 29.530588853); monthStart = getNewMoonDay (k+1); if (monthStart > dayNumber) { monthStart = getNewMoonDay(k); } 77 a11 = getLunarMonth11(yy); b11 = a11; if (a11 >= monthStart) { lunarYear = yy; a11 = getLunarMonth11(yy-1); } else { lunarYear = yy+1; b11 = getLunarMonth11(yy+1, timeZone); } lunarDay = dayNumber-monthStart+1; diff = (int) ((monthStart - a11)/29); lunarMonth = diff+11; if (b11 - a11 > 365) { int leapMonthDiff = getLeapMonthOffset(a11, timeZone); if (diff >= leapMonthDiff) { lunarMonth = diff + 10; if (diff == leapMonthDiff) { lunarLeap = 1; } } } if (lunarMonth > 12) { lunarMonth = lunarMonth - 12; } if (lunarMonth >= 11 && diff < 4) { lunarYear -= 1; string strNgay = lunarDay.ToString(); string strThang = lunarMonth.ToString(); string strNam = lunarYear.ToString(); return strNgay + “/” + strThang + “/” +strNam; } } } 78 Kết ta chương trình có giao diện sau: Hình 3.6: Giao diện chuyển đổi ngày tháng 3.6 Các môi trường thi hành ứng dụng - Kết nối với thiết bị thật có: Windows Mobile 5.0 Pocket PC Device - Để kết nối với thiết bị giả lập ta có: Windows Mobile 5.0 Pocket PC Device R2 Windows Mobile 5.0 Pocket PC Emulator Windows Mobile 5.0 Pocket PC Phone Emulator Windows Mobile 5.0 Pocket PC Phone Square Emulator Windows Mobile 5.0 Pocket PC Phone Square VGA Emulator Windows Mobile 5.0 Pocket PC Phone VGA Emulator Windows Mobile 5.0 Pocket PC Square Emulator Windows Mobile 5.0 Pocket PC Square VGA Emulator Windows Mobile 5.0 Pocket PC VGA Emulator Các thiết bị giả lập cung cấp cho người dùng môi trường giao diện khác để thuận tiện cho người sử dụng 79 3.7 Cài đặt cấu hình chương trình cho thiết bị giả lập Với Pocket PC bạn cài đặt nhiều hệ điều hành phần mềm ảo thích hợp Hiện có nhiều WIN CE dành cho nhà phát triển viết ứng dụng Windows Mobile, thử số chương trình sau: - Windows Mobile Professional Image (USA).msi (181.0 MB): Đây nhập nhật hệ điều hành cho thiết bị di động điện thoại thông minh Microsoft, chạy Windows, hỗ trợ hệ diều hành khác Linux,… Các phiên Windows Mobile trước cung cấp nhiều chức cho Pocket PC cho điện thoại với kiểu bàn phím khác nhau, phân biệt biến Winlows Mobile Tuy nhiên, Microsoft phải đưa phiên Windows Mobile dựa loại hình thiết bị: Nó hướng đến thiết bị khơng có hình cảm ứng, Pro hỗ trợ cho thiết bị có hình cảm biến bút cảm ứng Hệ điều hành hỗ trợ: Windows Server 2003 Service pack 2; Windows Vista; Windows XP Service Pack (32&64 bit) - Phần mềm Microsoft ActiveSync 4.5 (7,52 MB) Đây phần mềm dùng để đồng hố dạng thức tệp tin hay thơng tin khác thiết bị Pocket PC hay Windows Mobile Cài đặt cấu hình: Khởi động Windows Mobile Professional SDK có giao diện sau: Windows Mobile Classic (240 x 320 pixels – 96 dpi) Windows Mobile Professional (240 x 320 pixel - -96 dpi) Windows Mobile Professional Square (240 x 320 pixel - -96 dpi) Windows Mobile Professional Square QVGA (320 x 320 pixel -128 dpi) 80 Windows Mobile Professional Square VGA (480 x 480 pixel -192 dpi) Windows Mobile Professional VGA (480 x 640 pixel -192 dpi) Bạn chọn Sau khởi động xong vào menu File chọn Configure Sau chọn nơi làm thẻ nhớ ảo, góc nhìn (Display), thiết lập (Display), giao tiếp mạng (Network), cổng kết nối 81 Chọn tiếp: Chọn tab Network (tốt để mặc định) Chọn tiếp tab Perpherals 82 Xong bấm OK Khởi động Microsoft ActiveSync 4.5 thiết lập cấu hình Chọn hình Chọn xong bấm OK chương trình cài đặt hồn thành 83 KẾT LUẬN Ngơn ngữ C# giúp xây dựng ứng dụng cho Mobile thêm nhiều chức ứng dụng cho sống Ngày công nghệ ngày phát triển nhu cầu người ngày nâng cao việc nâng cao bổ sung tính cho điện thoại điều khơng thể trì hỗn Với thời gian kiến thức hạn chế em nghiên cứu xây dựng ứng dụng tra cứu lịch xuất hành Mobile sở hoàn thành tương đối song khơng thể tránh thiếu sót Những thiếu xót biểu rõ đưa chương trình vào ứng dụng thực tế Kính mong thơng cảm thầy bạn Để hồn thành đề tài lần em xin bày tỏ lời cảm ơn đến thầy giáo Thạc Sỹ Nguyễn Công Nhật người quan tâm, tận tình giúp đỡ, bảo cho em suốt thời gian qua Và em xin cảm ơn thầy giáo cô giáo khoa Cơng Nghệ Thơng Tin giúp em hồn thành chun ngành Em xin chân thành cảm ơn 84 TÀI LIỆU THAM KHẢO Dương Quang Thiện NET Toàn Tập – C# Căn Bản Và Visual Studio.NET - Tập NXB Thành Phố Hồ Chí Minh 2005 Nguyễn Ngọc Tuấn, Hồng Phúc Tự học Visual Studio.NET 21 ngày NXB Thống Kê 2005 Nguyễn Văn Lân Kỹ Thuật Xây Dựng Ứng Dụng ASP.NET - Tập NXB Lao Động Xã Hội KS Nguyễn Nam Thuận Hướng Dẫn Thực Hành Viết Lập Trình Trong Visual C# 2005 Express NXB Giao Thông Vận Tải 85 86 ... người sử dụng khai thác ứng dụng ngày nhiều Mặc dù có nhiều cố gắng, tìm hiểu kiến thức học, kết hợp tra cứu tài liệu chuyên ngành đề tài “ Tìm hiểu Pocket PC xây dựng chương trình ứng dụng? ?? hạn... ngày 3.6 Các môi trường thi hành ứng dụng 3.7 Cài đặt cấu hình chương trình cho thiết bị giả lập Kết đạt Đề tài ? ?Tìm hiểu Pocket PC xây dựng chương trình ứng dụng? ?? xuất phát từ thực tế ngày thiết... quan Pocket PC (PDA) 1.1 Giới thiệu Pocket PC 1.2 Môi trường phát triển ứng dụng Chương 2: Các cơng cụ lập trình với PDA 2.1 Giới thiệu C# 2.2 Các cơng cụ lập trình PDA Chương 3: Xây dựng ứng dụng