KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THỒNGLUẬN VĂN TỐT NGHIỆP ĐẠI HỌC TÌM HIỂU VÀ PHÁT TRIỀN ỨNG DỤNG CHO THIẾT BỊ DI ĐỘNG NỀN TẢNG SYMBIAN S60 sử DỤNG NGÔN NGỮ PYTHON ỨNG DỤNG KARAOKE TRÊN
Trang 1KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THỒNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NỀN TẢNG SYMBIAN S60 sử DỤNG NGÔN NGỮ PYTHỎN
ỨNG DỤNG KARAOKE TRÊN ĐIỆN THOẠI DI ĐỘNG
Trang 2KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THỒNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
TÌM HIỂU VÀ PHÁT TRIỀN ỨNG DỤNG CHO THIẾT BỊ DI ĐỘNG
NỀN TẢNG SYMBIAN S60 sử DỤNG NGÔN NGỮ PYTHON
ỨNG DỤNG KARAOKE TRÊN ĐIỆN THOẠI DI ĐỘNG
Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp.
Bộ môn Mạng máy tính và Truyền thông Khoa Công nghệ thông tin & Truyền thông
Trường Đạỉ Học cần Thơ vào ngày 11 tháng 05 năm 2011.
Mã số đề tàỉ:
Có thể tìm hiểu luận văn tại:
■ Thư viện Khoa Công nghệ thông tin và Truyền thông, Trường Đại Học cần Thơ
■ Website: http://www.cit.ctu.edu.vn/
Trang 3LỜI CẢM ƠN
Trong suốt 4 năm học tập tại trường, thì Luận văn tốt nghiệp mang ý nghĩa rất lớn đối
vói chúng tôi, Luận văn tốt nghiệp đánh dấu một bước trưởng thành về khả năng nghiên cứu và
làm việc của sinh viên, nó mang lại những kinh nghiệm làm việc thực tế cho bản thân, rất cần
thiết cho sinh viên khi tốt nghiệp sau này
Ngày hôm nay, để có thể thực hiện thành công Luận văn tốt nghiệp này, chúng tôi xin
gửi lời tri ơn chân thành nhất đối với Cha Mẹ của chúng tôi, họ đã dành tất cả tình yêu thương,
toàn bộ sự ủng hộ về vật chất và tinh thần cho chúng tôi Lúc chúng tôi càn sự giúp đỡ nhất,
Cha Mẹ luôn sẵn sàng bên cạnh chúng tôi
Khi tinh thằn và vật chất đã luôn đầy đủ, mọi khả năng tập trung cho việc học tập và
nghiên cứu đã sẵn sàng, thì lúc đó các Thầy cô giáo là những người luôn bên cạnh chúng tôi và
luôn sẵn sàng truyền đạt những kinh nghiệm và kiến thức của mình cho chúng tôi Xin cảm ơn,
các Thầy cô của Khoa Công nghệ thông tin và Truyền thông, đặc biệt chúng tôi xin dành lồi
cảm ơn sâu sắc nhất đối với Thầy Đoàn Hòa Minh, người đã hướng dẫn chúng tôi hoàn thành
Luận vãn tốt nghiệp này Đồng thời cũng xin cảm ơn các Thầy/cô trong Hội đồng phản biện
cho đề tài này, Hội đồng chấm luận văn, đã đóng góp ý kiến cho những sai sót của chúng tôi đã
gặp phải Chúng tôi xin ghi nhận các ý kiến đóng góp từ phía Hội đồng phản biện và xem đó là
những kinh nghiệm quý báo trong những dự án sau này chúng tôi sẽ thực hiện
về phía các bạn học cùng khóa, chúng tôi cũng xin gửi lồi cảm ơn đến các bạn trong
thòi gian vừa qua đã đóng góp ý kiến và chia sẻ tài liệu nghiên cứu cho chúng tôi, một phần
đóng góp cho sự thành công của Luận văn tốt nghiệp này
Một lần nữa, chúng tôi xin cảm ơn chân thảnh đến với tất cả !
Nhóm nghiên cứu thực hiện đề tài.
Nguyễn Công PhụcMail : ncphuc99 @vahoo.com.vnNguyễn Đức Hòa
Mail : ndhoa73
@student.ctu.edu.vn
Trang 4MỤC LỤC
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
LỜI CẢM ƠN ' ' 1
MỤC LỤC 2
KÍ HIỆU VÀ VIẾT TẮT 5
TÓM TẮT 6
ABSTRACT 7
TỪ KHÓA 8
BẢNG PHÂN CHIA CÔNG VIỆC 9
CHƯƠNG I - TỔNG QUAN 10
1.1
TÌNH HUỐNG PHÁT SINH ĐỀ TÀI 10
1.2
MỤC TIÊU VÀ NHIỆM vụ CỦA ĐỀ TÀI 11
1.2.1 Mục tiêu 11
1.2.2 Nhiệm vụ 11
1.3 NỘI DUNG VÀ PHƯƠNG PHÁP THựC HIỆN 11
1.3.1 Nội dung 11
1.3.2 Phương pháp thực hiện 12
1.4 SẢN PHẨM NGHỆM THU 12
1.5 GIỚI THIỆU ÚNG DỤNG 12
CHƯƠNG II- Cơ SỞ LÝ THUYẾT 13
2.1 NỀN TẢNG SYMBIAN S60 3rd 14
2.1.1 Tổng quan về hệ điều hành Symbian 14
2.1.2 Đôi nét về sự phát triển của hệ điều hành Symbian S60 3rd 16
2.2 Bộ PHÁT TRIỀN PHẦM MỀM SDK 19
2.2.1 Giới thiệu về SDK S60 3rd FP1 19
2.2.2 Bộ giả lập S60 3rd FP1 của SDK 21
2.2.3 Thư viện hàm API của bộ SDK S60 3rd 22
2.3
NGÔN NGỮ LẬP TRÌNH PYTHON DÀNH CHO S60 v2.0.0 23
2.3.1 Giới thiệu chung về Python 23
2.3.2 Giới thiệu sơ lược về PyS60 23
2.3.3 Thông tin và dịch vụ của hệ điều hành 24
2.3.4 Đồ họa và giao diện người dùng 24
Trang 52.4.1 Dữ liệu vi deo mp4 trên thiết bị S60 3rd 27
2.4.2 Kỹ thuật âm thanh Audio FullDuplex trên thiết bị S60 3rd 31
2.5 TỔNG QUAN VỀ WIRELESS LAN 34
2.5.1 Lịch sử ra đời 34
2.5.2 Các mô hình mạng WLAN 34
2.5.3 Các thành phần trong mạng WLAN 36
2.5.4 ưu điểm và nhược điểm của mạng Wifi 36
2.6 TỔNG QUAN VỀ LẬP TRÌNH MẠNG 37
2.6.1 Mô hình tham khảo OSI 37
2.6.2 Mạng TCP/IP 39
2.6.3 Tìm hiểu về Socket 40
2.6.4 Chế độ giao tiếp 40
2.7
CÔNG NGHỆ VOIP 42
2.7.1 Tổng quan về VoIP 42
2.7.2 Các kiểu kết nối sử dụng VoIP 43
2.7.3 Các thành phần trong mạng VoIP 44
2.7.4 Phương thức ho ạt động 44
2.7.5 Các giao thức của VoIP 45
2.7.6 Bộ giao thức H.323 45
2.7.7 Giao thức SIP 46
2.7.8 MGCP và Megaco/H.248 46
2.7.9 Bộ giao thức RTP/RTCP 47
CHƯƠNG III - XÂY DựNG ƯNG DỤNG 51
3.1
GIỚI THIỆU CHUNG VỀ ỨNG DỤNG KARA EASY vl 0 51
3.2
CÁC THIẾT BỊ ĐÃ sử DỤNG TRONG LUẬN VĂN 53
3.2.1 Yêu cầu phàn cứng 53
3.2.2 Cài đặt các thiết bị 53
3.3 PHÂN TÍCH YÊU CẦU PHẦN MỀM VÀ HƯỚNG GIẢI QUYẾT 54
3.3.1 Yêu cầu phần mềm 54
3.3.2 Hướng gi ải quyết 55
3.4 MÔ HÌNH HÓA ỨNG DỤNG 56
3.5 LẬP TRÌNH ƯNG DỤNG 57
Trang 63.6
MÔ TẢ ỨNG DỤNG 64
3.7
KẾT QUẢ ĐẠT Được 67
3.8 NHỮNG VẤN ĐỀ PHÁT SINH VÀ CHƯA GIẢI QUYẾT 67
3.8.1 Vấn đề phát sinh 67
3.8.2 Nguyên nhân của vấn đề 67
3.8.3 Hướng giải quyết bằng kỹ thuật bộ trộn 68
3.9 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 69
3.9.1 Tĩc h hợp Mo dule Audio Full duplex vào phần mề m 69
3.9.2 Xây dựng ứng dụng Kara Easy dựa trên ngôn ngữ Symbian C++ 70
3.9.3 Module Audio Fullduplex với khả năng chạy ngầm 70
3.9.4 Tĩch hợp nhạc không lời và xử lý lời bài hát 70
3.9.5 Tĩnh năng download nhạc và chấm điểm tượng trưng 70
TỔNG KẾT VÀ KIẾN NGHỊ 71
1 KẾT QUẢ THỰC HỆN ĐỀ TÀI 71
2 KẾT LUẬN VỀ QUÁ TRÌNH NGHIÊN cứu ĐỀ TÀI 71
3 CÁC KIẾN NGHỊ TỪ KẾT QUẢ NGHIÊN CỨU 72
PHỤ LỤC 74
PHỤ LỤC 1 - HƯỚNG DẪN CÀI ĐẶT CHƯƠNG TRÌNH 74
1 Cơ CHẾ BẢO MẬT VÀ CHỨNG THựC ỨNG DỤNG TRÊN SYMBIAN S60 74 2 HƯỚNG DẪN CÀI ĐẶT ỨNG DỤNG KARA EASY vl 0 77
PHỤ LỤC 2 - MÃ NGUỒN CHƯƠNG TRÌNH 84
1 MÃ NGUỒN MODULE MP4 BROWSER 84
2 MÃ NGUỒN HÀM OPEN 85
3 MÃ NGUỒN Bộ TRỘN ÂM THANH 85
TÀI LỆU THAM KHẢO 86
BẢNG CHỈ MỤC 87
Trang 7KÍ HIỆU VÀ VIẾT TẮT
3G: Third Generation (công nghệ truyền thông thế hệ thứ ba, cho phép truyền cả dữ liệu thoại
và dữ liệu ngoài thoại tải dữ liệu, gửi email, tin nhắn nhanh, hình ảnh ).
ADSL: Asymmetric Digital Subscriber Line (sự thay thể với tốc độ cao cho thiết bị Modem hoặc giúp truy nhập Internet với tốc độ cao và nhanh hơn).
AP: Access Point (Điểm truy cập mạng Wifi).
API: application programming interíace (giao diện lập trình úng dụng).
FP: Feature Package (gỏi tỉnh năng).
GPRS: General Packet Radio Service (công nghệ chuyển mạch gói được phát triển trên nền
tảng công nghệ thông tin di động toàn cầu (GSM : Global System for Mobile)).
HTTP : Hyper Text Transíer Protocol (giao thức truyền tải siêu văn bản).
IDE: Intergrated Development Environment (môi trường phát triển phần mềm tích hợp).
LAN: Local Area Network (mạng cục bộ).
MMS: Multimedia Message Service (dịch vụ tin nhắn đa phương tiện).
OS: Operation System (hệ điều hành).
PSTN: Public Svitched Telephone Network (Mạng chuyển mạch điện thoại công cộng) Pydev: Python Development (module phát triển Python dành cho IDE Eclipse và NetBeans).
PyS60: Python for S60 (ngôn ngữ lập trình Python dành cho hệ điều hành S60).
RTP: Real Time Protocol (giao thức thời gian thực)
RTCP: Real Time Control Protocol (giao thức điều khiển thời gian thực)
S60: Symbian S60 3rd (hệ điều hành/nền tảng Symbian s60 đời thứ 3).
SDK: Software Development Kits (Bộ công cụ phát triển phần mềm).
SMS: Short Message Service (dịch vụ tin nhắn ngắn).
VoIP: Voice over IP (truyền âm thanh thông qua giao thức TCP/IP).
WLAN: Wireless Local Area Network (mạng cục bộ không dây).
Trang 8TÓM TẮT
Đề tài Luận văn tốt nghiệp này sẽ tập trung nghiên cứu lĩnh vực “Lập trình trên thiết
bị di động”, một lĩnh vực được xem là rất hấp dẫn hiện nay, khi mà các nhà sản xuất thiết bị di
động đang cho ra đòi những thiết bị di động vói những tính năng ưu việt mà trong tương laikhông xa máy tính dần dàn sẽ được thay thế bởi những thiết bị di động nhỏ gọn và thông minhnày đồng thời thực hiện được các tính năng mà máy tính không thực hiện được Chính vì thế,thị phần phần mềm của những thiết bị này trong tương lai sẽ là những con số khổng lồ Với ưuthế về kích thước di động như trên, rõ ràng một mảnh đất lập trình màu mỡ và chứa đầy cơ hộiđang mở ra cho các lập trình viên khám phá và khai thác
Trong đề tài này, chúng tôi sẽ nghiên cứu tổng quan về nền tảng Symbian S60 Như đã
biết, đây là một nền tảng có lịch sử phát triển khá lâu trên thế giới Được phát triển bởi nhà sảnxuất điện thoại hàng đầu thế giới Nokia, vì thế số lượng người dùng nền tảng này trên thế giớichiếm số lượng rất đông và đang dẫn đầu trong thị phàn các nền tảng hiện nay
Thêm vào đó, chúng tôi cũng sẽ đề cập đến những kiến thức cần thiết để có thể lập trìnhtrên thiết bị sử dụng nền tảng Symbian S60 như : kiến thức về S60, âm thanh trên điện thoại,
những kiến thức lý thuyết nghiên cứu được chúng tôi sẽ xây dựng và giới thiệu hai ứng dụngnhằm minh họa cho những nội dung lý thuyết đã nghiên cứu, cũng như sẽ trình cách thức vàtrình tự để xây dựng hai ứng dụng này Thứ nhất là ứng dụng Kara Easy vl.o và tiếp theo làứng dụng Wifi Connector vl.o Những thông tin cũng như những chi tiết kỹ thuật của hai ứngdụng trên sẽ được chúng tôi đề cập một cách chi tiết trong đề tài này
Trang 9This Thesis’s topic will research the íìeld of “Mobile programming” which is very
potential and attractive nowadays Using mobile devices has become an indispensable need inour daily activities Addition, with the excellent development of technology, the manuíacturershave produced more and more types of smart mobile device, they have not only the basicfeatures but also many advanced functions for serving our practical needs and activities
Thereíore, researching and creating the applications for mobile devices are very necessary
In this Thesis, we will mention about the knowledge for programming on Symbian S60mobile phones such as: flatform Symbian S60, software development kits, Python
programming language for S60, Wifi network, network programming, etc Simultaneously,we’ll build two applications to illustrated for the researched knowledge, as well as, we’llpresent the way and the order to build these applications The íirst is the Kara Easy vl.o
aplication, and the second is the Wifi Connector vl.o application Information and detail
content of these applications will be introduced in next parts of this Thesis
Trang 10pvthon Svmbian Kara Easv
Trang 11LỜI CẢM ƠN Nguyễn Công Phục Tháng 5/2011
TÓM TẮT
Kêt luận về quá trình nghiên
Các kiến nghị từ quá trình
PHỤ LỤC
Phụ lục 1 - Hướng dần càiđặt chương trình
Nguyễn Công Phục
Tháng 5/2011Phụ lục 2 - Mã nguồn
CHI MUC
Trang 12CHƯƠNG I - TỔNG QUAN
Chắc hẳn trong chúng ta hiện nay, ai ai cũng đang sở hữu một chiếc điện thoại di động
dù đó có thể là một chiếc điện thoại động có tính năng cao cấp hay những chiếc điện thoại diđộng phổ thông để duy trì sự liên lạc của mình với xã hội
Điện thoại di động ngày nay hầu hết đều được tích hợp nhiều ứng dụng hỗ trợ cho côngviệc và cuộc sống hằng ngày, tuy nhiên chúng tôi chắn chắn rằng không phải ai cũng khai tháchết các tính năng và ứng dụng trong chiếc điện thoại của mình
Một người đang sỡ hữu một chiếc điện thoại được hỗ trợ bởi một nền tảng vượt bậc, tậphợp những tính năng cao cấp nhất, hiện đại nhất nhưng nếu như chỉ sử dụng nó để thực hiệnviệc gọi và nhắn tin thôi, thi lúc đó họ đang làm lãng phí đi sức mạnh công nghệ đang tập trung
ở chiếc điện thoại của mình Chính vì thế công nghệ lập trình đã xuất hiện thêm một lĩnh vựcmới hơn đó là Lập trình trên thiết bị di động - Mobiỉe Phone Programming với mục đích cho
ra đồi những sản phẩm phần mềm nhằm khai thác các tính năng và sức mạnh được tích hợptrong chiếc điện thoại của mình
Lập trình trên thiết bị di động đã và đang phát triển nhanh chóng với sự tham gia đôngđảo của các lập trình viên chuyên nghiệp và không chuyên nghiệp Đã có nhiều sản phẩm củalập trình di động được cung cấp miễn phí cho người sử dụng Ở mức thương mại hóa, thì hầunhư các sản phẩm ứng dụng đều được bán cho người dùng với mức giá hợp lí, tuy nhiên với sốlượng sử dụng nhiều thi đây là một nguồn doanh thu thật hấp dẫn cho các nhà phát triển ứngdụng di động
Được sự hỗ trợ từ các hãng điện thoại lớn trên thế giới như Nokia, Apple, Samsung,HTC, Sony, BlackBerry việc lập trình di động càng trở nên dễ dàng hơn Với những kho ứngdụng khổng lồ của các nhà sản xuất điện thoại như : Ovi Store của Nokia, Applications Storecủa Apple, Android Market Apps của Google, người sử dụng điện thoại càng dễ tiếp cận hơnvói các sản phẩm phần mềm di động Tạo nên một cơn sốt trong thời gian qua, khi mà các thiết
bị di động trung cấp và cao cấp của các hãng điện thoại không ngừng được tung ra thị trườngvói mức giá ngày càng hợp lí với người sử dụng
Trong số các hệ điều hành chạy trên thiết bị di động thì nền tảng hệ điều hành Symbiancủa nhà sản xuất điện thoại hàng đầu thế giới Nokia là chiếm số lượng người dùng nhiều nhấttrên toàn thế giói Với sự thông dụng và phổ biến của hệ điều hành này, đề tài này xin giớithiệu tổng quan về nền tảng này và cách thức để tạo ra một ứng dụng chạy trên nền tảng
Symbian S60 nổi tiếng của Nokia Kèm theo đó là xây dựng hai phần mềm hoàn chỉnh nhằmgóp phàn nào đó khai thác sức mạnh điện thoại di động
Trang 131.2 MỤC TIÊU VÀ NHIỆM vụ CỦA ĐỀ TÀI
1.2.1 Muc tiêu
Nghiên cứu về nền tảng Symbian S60, môi trường tích hợp và các công cụ phát triểnứng dụng cho điện thoại trên nền tảng này Từ đó xây dựng hai ứng dụng cụ thể, có thể xemđây là những ví dụ minh họa đồng thời góp phần làm cho kho ứng dụng di động ngày càngthêm phong phú hon
Đồ tài này sau khi hoàn thành sẽ trở thành một tài liệu nghiên cứu và học tập cho cácsinh viên chuyên ngành về công nghệ thông tin ở lĩnh vực lập trình cho thiết bị di động, vànhững ai có dam mê và hứng thú tìm hiểu ở lĩnh vực này đầy hứa hẹn này
Thông qua đề tài này, bản thân chúng tôi, những sinh viên thực hiện cũng đã thu thậpđược nhiều kiến thức chuyên sâu hơn về lĩnh vực lập trình cho thiết bị di động Đồng thòichúng tôi cũng đã rèn luyện được khả năng nghiên cứu và tự học, đặc biệt là kỹ năng thực hànhviết ứng dụng cho các thiết bị di động
Nhóm nghiên cứu cam kết sẽ cung cấp những ứng dụng hoạt động đơn giản nhưng thật
sự hiệu quả Đồng thòi sau khi ứng dụng đã được hoàn thiện ở những phiên bản tiếp theo nhómnghiên cứu sẽ phát hành những ứng dụng này miễn phí đến tay người tiêu dùng Góp phàn phục
vụ cho công tác nghiên cứu và sự thuận tiện trong các hoạt động giải trí và liên lạc của ngườidùng di động hiện nay
1.2.2 Nhiêm vu
• •
■ Nghiên cứu về nền tảng Symbian S60.
■ Tìm hiểu về các IDE, các SDK để xây dựng ứng dụng trên nền tảng này.
■ Xây dựng hai ứng dụng: một ứng dụng độc lập ( Standalone) và một ứng dụng hoạt
động mạng (Networking).
1.3.1 Nội dung
Các nội dung chi tiết sẽ nghiên cứu trong đề tài:
■ Nghiên cứu nền tảng Symbian S60 3rd
■ Dữ liệu đa phương tiện (Video mp4, âm thanhỷullduplex).
■ Bộ công cụ phát triển phần mềm SDK.
■ Tìm hiểu cách thức sử dụng ngôn ngữ lập trình PyS60 (Python dành cho Symbian S60)
■ Tìm hiểu về các kỹ thuật lập trình mạng trên nền tảng S60.
■ Tìm hiểu nguyên tắc, cách thức vận hành mạng Wifĩ, cơ chế định danh điện thoại trong
mạng Wifi
■ Nghiên cứu công nghệ VoIP (Voice Over Internet Protocol).
Trang 141.3.2 Phưong pháp thực hiện
Qua quá trình nghiên cứu chúng tôi nhận thấy rằng kỹ năng thu thập thông tin là rất quantrọng Vì thế chúng lúc đầu chúng tôi đã dành nhiều thòi gian cho việc thu thập dữ liệu từ cácdiễn đàn, các trang Web trong và ngoài nước Sau khi thu thập giai đoạn tiếp theo là cần sàn lọcnhững thông tin, những dữ liệu có thể ứng dụng vào trong ứng dụng, giao đoạn này cần nhiều
kỹ năng đọc hiểu và dịch tài liệu chuyên ngành bằng tiếng Anh
Đe tìm hiểu nhu cầu về sản phẩm, nhóm nghiên cứu chúng tôi đã nghiên cứu và khảo sátthực tế và thu thập ý kiến của khoảng 50 người có sử dụng điện thoại di động tại Thành PhốCần Thơ Giai đoạn này nhằm đánh giá tiềm năng thị trường và biết được những mong muốncủa người dùng phàn mềm Sau khi giai đoạn thu thập thông tin đã hoàn tất, nhóm nghiên cứuchúng tôi bắt đầu vào giai đoạn thiết kế, xây dựng và kiểm thử phần mềm trên nhiều môi
trường khác nhau Công đoạn này tốn khá nhiều thời gian và cần phải có sự chuẩn bị chu đáo
về thiết bị mô phỏng Nhóm nghiên cứu đã chọn dòng N_Series của Nokia để làm thiết bị môphỏng và kiểm thử phần mềm bao gồm: Nokia N81 2GB và Nokia N95 8Gb
Do đặc điểm của đề tài là lập trình ứng dụng vói mạng Wifi nên phạm vi hoạt động củachúng tôi toàn bộ chỉ diễn ra ở nơi có sự hỗ trợ của mạng Wifi nhằm mục tiêu đảm bảo sự hoạtđộng ổn định và hiệu quả của phần mềm Không giống như lập trình trên PC, lập trình trên thiết
bị di động đòi hỏi người lập trình có kiến thức trên nhiều lĩnh vực khác nhau, bao gồm kiếnthức về điện thoại và kiến thức về lập trình mạng và phải hiểu rõ nguyên tắc kết nối giữa chúngvới nhau Như Mobile kết nối với Mobile, Mobile kết nối vói PC
Với những nỗ lực của nhóm nghiên cứu, cộng thêm vào đó là sự hỗ trợ từ phía giáo viênhướng dẫn Chứng tôi đã hoàn thảnh đề tài và đã xây dựng thành công hai phàn mềm hoàn
chỉnh là Kara Easy vl.o và Wifi Connector vl.o Tuy còn nhiều khuyết điểm chưa thể khắcphục được và chưa kịp thêm vào, nhưng phần nào đó đề tài này cũng góp phần khai phá mộtlĩnh vực lập trình còn mới mẻ tại Việt Nam Chúng tôi hi vọng ở những phiên bản tiếp theo,ứng dụng này sẽ ngày càng được sự hoàn hảo hơn
■ Phần lý thuyết về nền tảng Symbian, công cụ lập trình và các công nghệ có liên quan.
■ ứng dụng độc lập: Kara Easy vl.o.
■ ứng dụng hoạt động mạng: Wifi Connector vl 0
■ ứng dụng Kara Easy vl.o
- Cho phép thực hiện hát karaoke trên điện thoại di động S60
- Thực hiện ghi âm và quản lí các âm thanh đã ghi
- Hỗ trợ duyệt tập tin, và phát video mp4
■ ứng dụng Wifi Connector vl.o
- Thực hiện Chat miễn phí trong mạng Wifi nội bộ
- Cho phép chia sẻ dữ liệu: hình ảnh, văn bản, âm thanh, video, giữa hai điện thoạiS60
Trang 15CHƯƠNG II - Cơ SỞ LÝ THUYẾT
Nội dung của chương này bao gồm các kiến thức chính sau:
■ Nền tảng Symbỉan S60 3 rd
■ Bộ SDK (Software Development Kits).
■ Ngôn ngữ Python dành cho S60 (PyS60).
■ Dữ liệu đaphưong tiện (Media).
■ Mạng Wifi.
■ Lập trình mạng (Network programming).
■ Công nghệ VoIP ( Voice over Internet Protocol).
Hình 2.1 Những mảng kiến thức chính sẽ nghiên cứu trong dề tài
Trang 162.1 NỀN TẢNG SYMBIAN S60 3rd
2.1.1 Tổng quan về hệ điều hành Symbỉan
Symbian là một platíorm phổ biến và hiệu quả nhất cho việc phát triển các ứng dụngcho thiết bị di động Nó được sinh ra bởi sự liên kết của nhiều nhà sản xuất thiết bị di động nỗitiếng như: Ericsson, Nokia, Panasonic, Psion, Samsung Electronics và Siemens Đây là một hệđiều hành hướng đến các thiết bị di động được khởi đầu từ năm 1998 và điện thoại Symbianđầu tiên ra đời vào năm 2001
Thị trường chính của nó là Âu châu và một ít ở Mỹ Tuy nhiên, Châu Âu là một thịtrường lớn, đang tăng trưởng, và từ đó mở rộng sang các thị trường khác Symbian os 7.0 vớinhiều chức năng cơ bản cho các ứng dụng di động như: MMS, truyền thông HTTP, SyncMLsynchonization, SMS, hỗ trợ cho Mobile IP (thông qua việc hỗ trợ cho IPv6) và hoạt độngmạng không dây tầm gần với IrDA và Bluetooth
Hệ điều hành Symbian là hệ điều hành độc quyền và phát triển chỉ cho các thiết bị diđộng Các thư viện lập trình liên quan, giao diện người dùng hay những công cụ phát triển đượccung cấp độc quyền bởi công ty Symbian Ltd số lượng điện thoại sử dụng Symbian đangchiếm thị phần lớn nhất, bao gồm Smart phone Nokia Series 60, UIQ, Series80, Series 90, vàcác điện thoại của NTT DoCoMo Foma
Mục đích chính của Symbian os khi được thiết kế là chuyên dùng cho các thiết bị cầmtay với những nguồn tài nguyên {bộ nhớ, CPU ) bị giói hạn, tối ưu và giảm thiểu các rủi rotrong bộ nhớ Ban đầu Symbian được hỗ trợ bởi C++, sau đó nó được phát triển với sự hỗ trợđồng thòi bỏi Java Giống như các công cụ khác, chúng ta phải tải SDK miễn phí từ websitecủa Symbian, cũng có nhiều IDE thương mại, hỗ trợ cho việc phát triển ứng dụng Symbian Sựthực thi máy ảo Java của hệ điều hành EPOC được dựa trên chuẩn Personal Java
Sự triển khai ứng dụng Java với Symbian là dễ dàng hơn nhiều so với BREW hay J2ME
và có sự tương đồng vói Windows CE, bởi vì Symbian được thiết kế giống như hệ điều hànhcho PDA Symbian os 7.0 hỗ trợ đa luồng {multithreading).
Việc lập trình cho Symbian os được thiết kế theo hướng chuỗi “Sự kiện” nên CPU phảitắt và bật lại khi một ứng dụng không cùng làm việc được với một “sự kiện” mà nó cần
Symbian là một hệ điều hành tương tự như Palm os và Windows CE, nhưng có một sựkhác biệt, đó là: Symbỉan được thiết kế cho các thiết bị kết nối không dây.
Những móc thòi gian phát triển quan trọng của hệ điều hành Symbian:
trò chơi cho các thế hệ máy tính zx đầu tiên Mục tiêu phát triển các phàn mềm trên
hệ máy nhỏ gọn
các máy zx thế hệ 3, Psion 3, một trong những PDA đầu tiên thay thế các loại sổtay, lịch giấy lúc đó, và thường được biết đến với tên gọi SIBO Cũng trong thòiđiểm này, EPOC 32 os (EPOC Release 1-3) được đưa vào máy zX thế hệ 5
Trang 17■ Năm 1998, Symbian được thành lập bởi các tập đoàn Nokia, Motorola, Ericsson,
Matsushita và Psion nhằm tập trung phát triển các PDA và điện thoại di động thôngminh Năm 1999, EPOC Release 5, được dùng trong các điện thoại Revo, EricssonMC218, Ericsson 380
thời điểm này, EPOC vẫn chưa là một hệ điều hành “thân thiện” bởi phần mềm vẫnkhông thể nào thêm vào được Sau đó, EPOC R6 được đổi tên thành Symbian vó.o,v6.1 và điện thoại đầu tiên được cài vào đó một hệ điều hành là Nokia 9210
Năm 2004, virus điện thoại xuất hiện đầu tiên tấn công hệ điều hành Symbian vói têngọi Cabir và cũng trong năm này Psionbán cổ phần của mình cho Nokia
■ Tiếp đó, phiên bản Symbian ra đòi với lọi thế được lựa chọn một trong 2 cấu trúc
nhân Kernels EKA1 và EKA2 Tuy vậy, cũng phải đến phiên bản Symbian 8.1b,EKA2 mới được dùng Người sử dụng khó thấy sự khác biệt, nhưng bên trong có rấtnhiều thay đổi EKA1 được các nhà sản xuất chọn để đảm bảo khả năng tưorng thíchvới những driver thiết bị cũ trong khi EKA2 lại chuyên về khả năng tương tác thờigian thực
■ Phiên bản Symbian 9.0 cũng được ra đời trong năm 2004, nhưng chỉ dùng để thử
nghiệm nội bộ và dừng sản xuất cũng trong năm này
■ Đầu năm 2005, Symbian os phiên bản mới nhất 9.1 được công bố Phiên bản này
được cải tiến nhiều về các ứng dụng và nội dung, cơ chế bảo vệ tốt hơn tất cả phiênbản các phiên bản trước Nokia N91 được đưa vào sử dụng phiên bản này đầu tiên,tiếp đó là đến Sony Ericsson P990
Với sự phát triển bùng nổ của lĩnh vực di động, đặc biệt
là sự lớn mạnh của các nền tảng hệ điều hành khác như
Android, ĨOS, thị phần của hệ điều hành Symbian tuy có
giảm sút, nhưng Symbian vẫn là hệ điều hành có số lượng
người sử dụng nhiều nhất
Theo số liệu thống kê mới được Gartner công bố,
Android đã vượt qua ÍOS, trở thành nền tảng có thị phần lớn
thứ hai toàn cầu trong quý m năm 2010, sau Symbian
Symbian vẫn giữ vị trí số một nhưng thị phần đã giảm 8%, từ
44,6% xuống còn 29,4%
Thi phần các hệ điều hành smartphone: ÌOS, RIM, Android, Window Mobile, Symbian trong
quy m/2010
Hình 2.2 Thị phần Symbian
Trang 18Source: Gartner (November 201Ũ)
Hình 2.3 Bảng thống kê số lượng Smartphone bán ra trong Quý 4.2010 Symbian đứng đầu băng
2.1.2 Đôi nét về sự phát triển của hệ điều hành Symbỉan S60 3rd
a Sự tiến hóa của hệ điều hành Symbian S60
Some Mígration neéđed
compatibỉlity
The Blnary Break
CompatibilHy
560 pUtform
2na Edition
Devọloper 2" d Edttlon
CompatibilityCompatibility
Future edition
Hình 2.4 Sơ đồ ỊÌiát triển của các thế hệ Symbian S60
Như hình bên dưới thể hiện, nền tảng S60 dựa trên Symbian os, nó tiến hóa liên tục đểtrở thành những phiên bản có khả năng tương thích cao hơn Chính vì thế S60 có nhiều phiênbản khác nhau S60 có phiên bản đầu tiên là lst Edition, và tiếp theo đó là 2nd Edition, hiện tạiphiên bản mới nhất của S60 là 3rd Edition
Trong mỗi phiên bản đều giới thiệu tới các nhà lập trình những gói tính năng khác nhau
phiên bản phát hành trước đó Hệ điều hành Symbian được dựa trên một chuẩn mở, vì thế nó
Trang 19tạo thuận lợi cho các nhà lập trình trên nền tảng Symbian S60 Nhưng việc phát triển ứng dụngcho nền tảng S60 sẽ trở thành lạc hậu do sự thích ứng giữa hai nền tảng 2nd Edition và 3rd
Edition là khó thực hiện Một ứng dụng được viết cho 2nd Edition thì không thể chạy trên 3rd
Edition và ngược lại Do giữa chúng có sự phân biệt giao thức mã hóa theo hệ nhị phân - The Binary Break.
Các thế hệ S60 từ khi phát hành cho đến nay
■ S60 l st Edition - Symbian os v6.1
■ S60 2 nd Edỉtion - Symbian os v7.0s
o S60 2nd Edition, Feature Pack 1 - Symbian os v7.0s
o S60 2nd Edition, Feature Pack 2 - Symbian os v8.0a
o S60 2nd Edition, Feature Pack 3 - Symbian os v8.1a
■ S60 3 rd Edition - Symbian os v9.1
o S60 3rd Edition, Feature Pack 1 - Symbian os v9.2
o S60 3rd Edition, Feature Pack 1 - Symbian os v9.3
Multimedia
& Graphics Services
Conneclivlty Services
Kernel Services & Hardvvare AbStráCtion
Hình 2.5 Các thành phần trong kiến trúc của Symbian S60
Nền tảng S60 3rd Edition bao gồm các thành phần chính sau:
■ Application Framework: chứa một tập họp thư viện và các thành phàn của Symbian
os và của nền tảng S60 để thực hiện các chức năng phổ biến sẵn có cho ứng dụng Mộtvài tính năng như: thực thi ứng dụng, xử lý sự kiện,
■ UI Framework: khung hỗ trợ giao diện nẹưòi dùng.
■ Comms Services: các dịch vụ giao tiếp như dịch vụ điện thoại, dịch vụ truy cập
mạng,
Trang 20■ Security Service: S60 3rd Edition đã giới thiệu một kiến trúc bảo vệ nền tảng (Platỷorm
bảo mật này nhằm vào các mục tiêu sau:
o Cung cấp bảo mật cho dữ liệu cá nhân của người dùng,
o Bảo vệ thiết bị di động và tất cả các phần mềm được cài đặt trên nó
o Điều khiển truy cập đến các thao tác nhạy cảm và giao diện của hệ điều hành
Ở phần phụ lục chúng ta sẽ phân tích rõ hơn về cơ chế bảo mật của S60 và việc quản lí ứngdụng của hệ điều hành này, và làm sao để khắc phục được các lỗi trong việc cài đặt ứng dụng
Hình 2.6 Sự kết họp hoạt dộng thiết bị và hạ tầng viễn thông
Đe gửi hoặc nhận một tin nhắn, thiết bị phải tạo một kết nối đến nhà cung cấp dịch vụviễn thông và phải thông qua các Server thành phàn khác để được xử lý tin nhắn
Dịch vụ nhắn tin trên S60 được cung cấp thông qua một khung tin nhắn Message
Framework, và khung tin nhắn này sử dụng MTMs - Message Type Moduỉes Đây là tập hợpcác lớp cung cấp các giao diện cho phép chúng ta thực hiện các thao tác xem, xóa, sửa, lưu tinnhắn,
Trang 21■ PIM - Personal In/ormation Management’.
PIM đề cập đến các tính năng quan trọng như quản lí sắp xếp các thông tin cá nhân baogồm ghi thông tin, theo dõi và quản lí
Các công cụ có sẵn làm việc chung
Software Development Kits (SDK) là một tập họp các công cụ cho phép các lập trình
viên có thể phát triển ứng dụng cho mình Vói SDK S60 3rd FP1 chúng ta có thể phát triển kiểmthử và thực thi các ứng dụng cho thiết bị di động chạy trên nền tảng Symbian S60 SDK đượcphát triển dựa trên nền tảng S60 và hệ điều hành Symbian os, bộ SDK này bao gồm tất cả các
bộ phận chính cần thiết cho việc phát triển ứng dụng như sau:
■ Thư viện hàm APIs (Application Programming Interíaces) của S60.
■ Thiết bị mô phỏng Emulator S60.
■ Các công cụ GCCE (GNU c Complier - GCC EABI - Embedded Application BinaryInteríace)
■ Tầi liệu hướng dẫn (Documents)
■ Các ứng dụng ví dụ (Examples)
Cụ thể có rất nhiều bộ SDK khác nhau do Nokia Corporation cung cấp Theo đó chúng
ta lựa chọn bộ SDK nào là tùy vào ngôn ngữ chúng ta chọn dùng để phát triển ứng dụng Hiệntại các bộ SDK sau đây được sử dụng phổ biến nhất:
■ Với ngôn ngữ Python và C++ chúng ta có bộ S60 Platíòrm SDKs for Symbian os, for
C++ bao gồm các phiên bản sau đây:
- S60 3rd Edition, Feature Pack 1
- S60 3rd Edition
- S60 2nd Edition, Feature Pack 2 (íormerly 2.2)
- S60 2nd Edition, Feature Pack 1 (íormerly 2.1)
- S60 2nd Edition (íormerly 2.0)
- S60 lst Edition, Feature Pack 1 (íormerly 1.2)
- S60 lst Edition (íormerly 0.9)
Các tính năng chính của bộ SDK này:
- Thiết bị mô phỏng dùng để chạy thử ứng dụng và tháo gỡ lỗi
- Môi trường chạy ứng dụng và công cụ xây dựng ứng dụng cho thiết bị mô phỏng(WINSCW UDEB)
- Môi trường chạy ứng dụng và công cụ xây dựng ứng dụng cho thiết bị thật (GCCE,RVCT) (RVCT là một trình biên dịch không được tích hợp trong SDK.)
Trang 22Tài liệu trợ giúp về Symbian os và S60 bao gồm:
- Hướng dẫn cài đặt
- Tầi liệu về thư viện hàm API
- Bộ công cụ cho S60 bao gồm:
hoặc icon của ứng dụng
dung
sử dụng Winsock
phỏng hỗ trợ ngôn ngữ địa phương như tiếng Hoa, tiếng Nhật,
- Series 40 5thEdition, Feature Pack 1
- Series 40 5th Edition, Feature Pack 1 Lite
- Series 40 5th Edition
- Series 40 3rd Edition, Feature Pack 2
- Series 40 3rd Edition, Feature Pack 1
- Seamless Java apps development: cung cấp khả năng tích hợp SDK lên các IDEthông dụng như Eclipse và NetBeans, nhằm làm thuận lợi hơn cho việc phát triểnứng dụng của lập trình viên
- Emulator tools: công cụ mô phỏng giả lập thiêt bị thật chạy nên tảng S40
■ Với ngôn ngữ Qt chúng ta có:
Nokia Qt SDK 1.0
Bao gồm nhiều phiên bản khác nhau dành cho nhiều hề điều hành khác nhau như:
Trang 23o 32- or 64-bit Microsoít Windows XP Service Pack 2, Windows Vista, hoặc
Windows7
o 32-bit Ubuntu Linux 8.04 hoặc mới hơn
o 64-bit Ubuntu Linux 8.04 hoặc mới hơn
o 64-bit Apple Mac os X 10.6 hoặc mới hơn
■ Ngoài ra còn có các SDK mới là Nokia Symbian A 3 SDK, bộ SDK này dùng để phát
triển các ứng dụng dành cho các thiết bị sử dụng hệ điều hành SymbianA3, S60 3rd, S60
5th, một hệ điều hành mới nhất của Nokia Corporation Bộ SDK này hỗ trợ luôn cho tất
đồ họa của thiết bị thật và có đầy đủ các tính năng của một chiếc điện thoại động nền tảng S60
Emulator mô phỏng các tính năng của một thiết bị thực tế một cách rất chính xác do đóứng dụng được phát triển và đã được kiểm tra thông qua Emulator hoàn toàn có thể được càiđặt trên thiết bị thật một cách dễ dàng
Đe sử dụng Emulator chúng ta thực hiện như sau Sau khi đã cài đặt bộ SDK S60 3rd tachọn đường dẫn sau:
Start - All Programs - S60 Developer Tools - 3 rd Edition SDK FP1 - 1.0 - Emulator:
Emulator sẽ hiện ra như hình bên dưới:
Thanh hạng thái
Các ứng đựng trên Eraulator
Thanh điêu khiên
Hình 2.7 Thiết lị mô phỏng SDK S60
Trang 24phải hoặc các phím điều hướng đến
Chúng ta có thể mở Menu củaEmulaor bằng cách click chọn
biểu tượng Application
Menu của Emulator bao gồm bathành phần sau:
Thanh trạng thái: hiển thị
thông tin của ứng dụng đangchạy và một vài thông tin khácnhư tình trạng sóng mạng và tìnhtrạng pin của thiết bị
Các ứng dụng trên Emulator:
đây là phần Menu chính củaemulator sẽ hiển thị toàn bộ cácứng dụng của thiết bị mô phỏngcác tính năng cài đặt khác
Thanh điều khiển: sẽ hiển thị 2
các lệnh điều khiển có liên quancác phím chọn trái và phím chọn
Các phím quan trọng hiển thị trên Emuỉator.
Chứng ta sử dụng phím chọn trái và phím chọn phải để lựa chọn thao tác lệnh tương
ứng được hiển thị trong thanh điều khiển
Các phím điều hướng cho phép chúng ta di chuyển theo các hướng Trái Phải Lên Xuống - Chọn Để nhập dữ liệu chúng ta có 12 phím tương ứng trên Emulator.
-2.2.3 Thư viện hàm API của bộ SDK S60 3rd
■ Central Reposỉtory Notiíicatỉon Handler API: Trung tâm xử lý các thông báo, các sự
kiện bao gồm việc nhấn các phím trên bàn phím của thiết bị hoặc các sự kiện do ứng
dụng tạo ra
■ Content Listing Framework API: Khung liệt kê nội dung, cho phép ứng dụng truy cập
các thông tin về dữ liệu đa phương tiện như: nhạc, video, hình ảnh được lưu trữ trên thiếtbị
■ Flash Viewer Framework API: Thư viện hỗ trợ cho phép play các nội dung ílash.
Được ứng dụng trong việc phát triển Game
■ Optical Character Recognỉtỉon (OCR) API: Thư viện cho phép nhận dạng kí tự vãn
bản và thao tác với chúng
■ ProHles Engine Wrapper API: Thư viện cấu hĩnh thiết bị cho phép thiết bị hoạt động
trong các môi trường khác nhau Như im lặng, ngoài trời, tổng quát,
Trang 25■ Screen Mode API: Thư viện cấu hình màn hình hiển thị của điện thoại như độ sáng,thời gian tắt màn hình,
Sau khi đã hiểu rõ về nguyên tắc hoạt động cũng như các thành phần chính của bộ SDK,tiếp theo chúng ta sẽ tìm hiểu thành phàn tiếp theo trong cơ sở lý thuyết của đề tài này đó làngôn ngữ lập trình Python S60 Đây là thành phần khá quan trọng, là ngôn ngữ được chúng tôiứng dụng để xây dựng hai phần mềm minh họa
2.3.1 Giới thiệu chung về Python
Python được phát minh bởi Guido van Rossum ( viện nghiên cứu về toán học và khoa
là một chứng nhận mã nguồn mở giúp cho Python được sử dụng tự do thậm chí là cho nhữngsản phẩm thương mại
Python thường được sử dụng cho những lớp học giới thiệu, giảng dạy và tạo mẫu về lậptrình Nó có thể được học trong vài ngày và cung cấp sự hỗ trợ mạnh mẽ cho việc làm quen vớinhiều công cụ và ngôn ngữ khác
Giống như Java và DosNet đang hướng đến, đó là Python chạy trên hầu hết các nền tảngphổ biến hiện nay, bao gồm Windows, Mac OS X, Linux/Unix, Palm Handhelds và một sốdòng điện thoại di động của Nokia Python mang đến một thư viện tiêu chuẩn mở rộng với tốc
độ thực thi cực kỳ nhanh Một thế mạnh khác của Python là một ngôn ngữ hướng đối tượng, cókhả năng tích họp dễ dàng vào các ngôn ngữ lập trình khác Bên cạnh đó, Python có cấu trúc
mã đơn giản, dễ hiểu, dễ soạn thảo và đặc biệt Python là một ngôn ngữ lập trình miễn phí và
mã nguồn mở
2.3.2 Giới thiệu Stf lược về PyS60
PyS60 là cụm từ viết tắt tượng trưng cho việc dùng ngôn ngữ lập trình Python cho nềntảng S60 PyS60 được dựa trên Python phiên bản 2.2.2 Nó hỗ trợ nhiều thư viện hàm tiêuchuẩn của Python nhưng cũng bao gồm nhiều hàm đặc trưng cho nền tảng của thiết bị di độngnhư là các phàn tử về giao diện đồ họa ngưòi dùng, Bluetooth, mạng, thông tin định vị GSM,gửi tin SMS, truy cập camera và còn nhiều hơn nữa
Nokia đã làm cho Python tương thích với các giao diện lập trình ứng dụng của Symbian
os và được cung cấp một cách rộng rãi trên các dòng thiết bị S60 Nội dung về PyS60 đượcgiới thiệu trong phạm vi Luận Văn này là PyS60 phiên bản 2.0.0
Tiếp theo đây, chứng ta sẽ tham khảo nhanh qua các thành phàn chính cũng như cácthành phàn đã sử dụng của ngôn ngữ PyS60 trong đề tài này
Trang 262.3.3 Thông tin và dỉch vu của hê điều hành
■ e32 - Một gói dịch vụ có liên quan vóỉ hệ điều hành Symbian
Gói dịch vụ e32 cung cấp cho người dùng các tiện ích có liên quan đến hệ điều hànhSymbian mà không liên quan đến các giao diện người dùng và không được cung cấp bởi nhữngthư viện hàm chuẩn của Python
Các hàm chức năng:
Trong gói e32 được định nghĩa một tập hợp các hàm chức năng tự do, những chức năngkhông phụ thuộc bất kỳ lớp nào cả Tầp họp này bao gồm các hàm về cung cấp thông tin của hệđiều hành, của PyS60, các hàm về thao tác trên tập tin, xác định thời gian của hệ thống
Kiểu Ao_lock
o Lóp Ao_lock(): tạo ra một thể hiện Ao_lock(), là một đối tượng chủ động của
Symbian dựa trên dịch vụ đồng bộ hóa Nó có thể được sử dụng trong luồng dữ liệuchính mà không bị khóa hay bị ảnh hưởng bởi các sự kiện của giao diện người dùng,ứng dụng không nên được thoát ra trong khi có một luồng dữ liệu đang trong tìnhtrạng đợi trong Ao_lock Neu Ao_lock.wait được gọi trong khi đang có 1 lệnh gọikhác của phương thức wait đang ở trong tiến trình thì sẽ gây ra một lỗi
AssertionError.
Các phương thức của một thể hiện Ao_lock():
- Wait(): đặt thể hiện của Ao_lock vào tình trạng đợi cho đến khi nhận được lệnh gọi
giải phóng thì sẽ được trả về ngay lập tức
- Sỉgnal(): phương thức để mở khóa, đối tượng đang trong tình trang đợi sẽ được giải
- Cancel(): hủy bỏ hàm after().
■ Sysiníb - truy cập thông tin hệ thống
Tạp hợp hàm sysinfo cung cấp một giao diện lập trình ứng dụng (APIs) cho việc kiểmtra thông tin hệ thống của thiết bị di động S60 Nó bao gồm các hàm cung cấp thông tin về cấuhình, pin, màn hình, bộ nhớ, kiểu chuông và cả số IMEI của thiết bị,
2.3.4 Đồ họa và giao diện ngưòi dùng
■ Appuifw - Khung giao diện ngườỉ dùng S60
Tạp hàm appuifw cung cấp một khung ứng dụng giao diện ngưòi dùng của các thiết bị di
động S60 Sau đây là những hàm appuifw cơ bản:
Trang 27Trong hầu hết các chương trình thi những cửa sổ ứng dụng chính thường được thiết lập
là các điều khiển giao diện người dùng Còn những hộp hội thoại thì luôn được ưu tiên và xuấthiện phía trên các điều khiển giao diện người dùng bình thường
Trong appuifw thì các điều khiển giao diện người dùng được bổ sung thêm những loại
có sẵn của Python như là: Text, Listbox và Canvas.
Những hộp hội thoại được bổ sung những chức năng như là: note (chú ý), query (truy
Python tương ứng được gọi).
o Lóp application
Lớp application chứa các thuộc tính và các hàm về hiển thị và xử lý các thành phần
trong một cửa sổ ứng dụng chính Các thuộc tính chính bao gồm: body, focus, menu, screen, title,
Một thể hiện của lớp Content_handler xử lý nội dụng dữ liệu bằng chính lớp MIME của
nó Nó có hai phương thức chính là Open() và Open_standalone().
o Lóp Canvas
Canvas là một điều khiển giao diện người dùng mà cung cấp một khu vực trên màn
hình để có thể vẽ được lên trên đó và hỗ trợ xử lý các sự kiện từ phím bấm Nó hỗ trợ nhữngphương thức vẽ tiêu chuẩn giúp tạo ra những mẫu vẽ đa dạng và dễ dàng Những phương thứcchính của lớp Canvas có chức năng như là: kết nối đối tượng, cho phép bắt đầu vẽ, kết thúc vẽ,trả về kích thước của canvas,
■ Graphics - Gói dịch vụ đồ họa
Gói graphics cung cấp cách thức truy cập vào những phần tử đồ họa gốc, những cáchthức về hiển thị, lưu, chỉnh sửa ảnh và có khả năng truyền tải được cung cấp bởi hệ điều hànhSymbian
Những hàm trong gói dịch vụ này có thể được sử dụng bởi các ứng dụng và cả nhữngtiến trình hoạt động ngầm bên trong của Python Tuy nhiên, những tiến trình ngầm thì sẽ cómột số hạn chế nhất định
Trang 282.3.5 Âm thanh và các dịch vụ giao tiếp
■ Audio - Gói dịch vụ âm thanh
Gói audio cho phép thu và phát những file âm thanh và cung cấp cách sử dụng chứcnăng chuyển đổi từ văn bản thành tiếng nói (text-to-speech) Gói audio hỗ trợ tất cả các địnhdạng về âm anh mà có hỗ trợ bởi thiết bị, điển hình như là: WAV, AMR, MIDI, MP3, AAC
Đối tượng Sound là một thể hiện của lớp Sound Đối tượng này có các thuộc tính vàphương thức để xử lý việc thu, phát, đóng các file âm thanh đồng thời cung cấp những thông tin
về các file này Các phương thức chính như là: playO, record(), stopO, state(),
■ Telephone - Các dịch vụ gọi
Gói telephone cung cấp một giao diện lập trình ứng dụng cho một cuộc gọi Nó hỗ trợcác phương thức để gọi, trả lời cuộc gọi đến, hoãn cuộc gọi và cho biết các thông số của cuộc
gọi Các phương chính là: dỉal(), answer(), hang_up(), call_state().
■ Messaging - Gói dịch vụ gửi tin nhắn
Đây chính là gói cung cấp giao diện lập trình ứng dụng cho các dịch vụ gửi tin nhắn Nócung cấp các phương thức để gửi tin SMS và cả MMS Các phương thức chính đó là:
sms_send(), mms_send().
■ Inbox - Giao diện hộp thư của thiết bị
Gói ỉnbox cung cấp các giao diện lập trình ứng dụng cho các thư mục hộp thư đến, hộp
thư đi, các tin đã gửi và tin nháp Hiện tại thì gói này chỉ hỗ trợ xử lý và thông báo các tin nhắnSMS đến hộp thư
Đối tượng inbox được tạo ra từ lớp inbox và có các chức năng xử lý và cho biết cácthông tin về tin nhắn như là: cho biết nội dung tin nhắn, số điện thoại của người gửi, cho biếttin nhắn đã được đọc hay chưa và có thể xóa tin nhắn Các phương thức chính là: content(), address(), unread(), delete(),
■ Location - Thông tin định vị GSM
Gói này cung cấp các dịch vụ về thông tin định vị Hiện tại gói Location chỉ có một
phương thức đó là gsm_locatỉon() Phương thức này sẽ cho biết thông tin về mã quốc gia, mã
vùng, mã của mạng di động và số ID của điện thoại
■ Positionỉng - Giao diện đon giản cho thông tin về vị trí
Gói positioning cung cấp cách truy cập cơ bản đến thông tin định vị của S60 Nó có thểđược sử dụng để truy cập đến thông tin định vị được cung cấp bỏi các thiết bị GPS Bluetoothngoài và thiết bị có GPS được lắp đặt bên trong của các dòng điện thoại S60 Các phương thức
chính của gói positioning là: modulesO, positionO, stop_posỉtion(), last_positỉon(),
■ Btsocket - Các hỗ trợ về Bluetooth
Trang 29operating System Windows 2000
Windows XP
recommendation accelerated display, Pin 2G or higher,
256M memory
Hình 2 9 Cấu hình yêu cầu cài đật Total Vỉdeo Converter
Trang 30Sau khi cài đặt tiến hành khởi động phằm mềm, dưới đây là giao diện chính của chương trình.
Hình 2.10 Giao điện chính chương trình TVC
Để thực hiện nén chuyển định dạng file video, ta chọn New Task và chọn đến tập tin cần nén
Trang 31Chọn File cần nén và chọn dòng điện thoại Nokia.
KadBtsr
WAnM*u*E
5« í 5T i.9**n *» m JW.H<HtN^wO0}
NOtìA HTl H7Ì m. NOI NU «3 KỈM AVC
NOISA WQ NR rao Mpcy*
Ntxuỉaua*
nOaA61H,U>VUU Ị tta ttr w;
MC*3*76«.lfiỉft.7TJỈL?MB >*.
NCWHD0U41 ỉ«y
N0W7MH P
NOU»M25JÌ
»n5S*K» 3»
Hình 2.13 Chọn dòng máy Symbian S60
Trang 327 • ' ' r
Hiên thị thông tin vê Video file cân nén, thông sô định dạng nén và play thử video file
Hình 2.14 Hiển thị thông tin của video mp4
Sau đó chọn tiếp tục Convert Now để thực hiện việc nén fĩle video, tùy vào độ dài và
chất lượng ban đầu của file video mà thời gian nén có thể nhanh hoặc chậm
Quá trình nén file video
Hình 2.15 Tiến trình nén đang diễn ra
Sau khi kết thúc, chúng ta sẽ được một tập tin cùng tên và cùng chung thư mục với filevideo được chọn, nhưng định dạng của nó lúc này là *.mp4 Đây là tập tin video chúng ta cần
và video này có thể play tốt trên thiết bị S60
Trang 332.4.2 Kỹ thuật âm thanh Audio FullDuplextrên thiết bị S60 3rd
Thuật ngữ Full Duplex ở đây được hiểu là việc truyền dữ liệu theo cả hai hướng: hướng
dữ liệu vào và hướng dữ liệu ra
Từ thuật ngữ trên ta giải thích được thuật ngữ Audio Rillduplex Audio Fullduplex trênthiết bị S60 được hiểu như sau: tại cùng một thời điểm ta có thể thực hiện ghi âm và phát lại âmthanh đang ghi âm đó Tức là record và playback âm thanh nhận được gằn như đồng thòi
Một ứng dụng Audio Fullduplex phải có được khả năng cho phép âm thanh được nhận
từ Microphone của điện thoại và phát ra ở Speaker (Loa) của điện thoại, việc này cân sự hô trợcủa phần cứng trên thiết bị di động mà hai thiết bị quan trọng nhất được sử dụng đó là
microphone và speaker Cụ thể hơn về khía cạnh lập trình để có thể đạt được tính năng audio
íullduplex chúng ta cần sự hỗ trợ của thư viện hàm DevSound.
a Đôi nét về DevSound APIs
Mục đích của thư viện hàm này là cung cấp một giao diện giữa Symbian os và các phầncứng xử lý âm thanh nhằm đạt được những tính năng âm thanh mong muốn của người lập trình
DevSound chịu trách nhiệm cho việc truy cập đến các phần cứng âm thanh như
microphone và speaker nhằm các mục đích cấu hình phần cứng, thực hiện ghi âm và phát lại.Dưới đây là hình minh họa mối quan hệ giữa các thành phần của Devsound, Symbian os vàphàn cứng âm thanh
Hình 2.16 Mô tả các thành phần của DevSound
Trang 34■ MMF Controller Framework: phục vụ các tính năng phát lại (playing), ghi âm
■ Controller Plug-ỉn: tùy theo các tính năng yêu cầu từ phía Client mà MMF
Controller Framework sẽ tải các Controller plug-in thích hợp Các Controller Plug-innày sẽ thực hiện các thao tác yêu cầu bằng cách giao tiếp với bộ mã của DevSoundhoặc DevVideo và phần cứng
■ Audio Policy: quản lí các yêu cầu được sử dụng phần cứng âm thanh Ví dụ như
DevSound có yêu cầu phần cứng playback một đoạn audio, lúc này nó sẽ yêu cầuthành phần Audio Policy, phụ thuộc vào độ ưu tiên của yêu cầu này mà Audio Policycho phép truy cập hoặc là ngăn cản lại Vì thế DevSound bắt buộc phải tuân theoAudio Policy
■ Codecs: DevSound sử dụng bảng mã này để chuyển đổi qua lại giữa các loại âm
thanh có các cách thức mã hóa khác nhau
Hai lớp chính của DevSound:
■ CMMFDevSound: Đây là một giao diện cho được cung cấp từ hệ điều hành
Symbian, cho phép thực hiện các tính năng về âm thanh trên các thiết bị phần cứngliên quan như :
o Ghi và phát lại âm thanh từ hai thiết bị là microphone và speaker
o Điều chỉnh âm lượng của speaker, tạo âm thanh Stereo, balance,
o Phát các âm thanh chuông, điều chỉnh hiệu ứng trên nhạc chuông như: tạo hiệuứng 3D, hiệu ứng lặp lại,
■ MDevSoundObserver: Bao gồm các phương thức giao tiếp giữa Client và
DevSound Các phương thức của nó được đóng gói và sẽ được gọi một khi có một sựkiện chỉ định xảy ra ví dụ như tiến trình khởi tạo và playing/recording một đoạn âmthanh, hoặc playing một đoạn nhạc chuông
Các phương thức của MDevSoundObServer:
o BufferToBeEmptied(CMMFBuffer*) Xử lý sự kiện yêu cầu dữ liệu của đối tượng
CMMFDevSound
o BufferToBeFilled(CMMFBuffer*) Xử lý sự kiện yêu cầu dữ liệu của đối tượng
CMMFDevSound
o ConvertError(Tlnt) Xử lý hoàn thành chuyển đổi mã hoặc bỏ qua sự kiện.
o DeviceMessage(TUid,constTDesC8&) Xử lý sự kiện xảy ra trên thiết bị.
o InitializeComplete(TInt) Xử lý sau khi khởi tạo hoàn thành.
o PlayError(TInt) Xử lý play âm thanh lỗi hoặc bỏ qua sự kiện này.
o RecordError(TInt) Xử lý record âm thanh lỗi hoặc bỏ qua sự kiện này.
Trang 35UplinkStream ► DTMFTonePlayer ► RingTone Player >
One touch loopback Exit
DNL started
UPL Initialized UPL started
o SendEventToClient(constTMMFEvent&) Xử lý các yêu cầu chính sách của Audio
Policy
o ToneFinished(TInt) Xử lý nhạc chuông sau khi được khởi tạo xong,
b Đôi nét về module Audio FullDuplex
Hình 2.17 API audio fullduplex sau khi đã biẽn dịch thành công
Được xây dựng dựa trên 2 lớp quan trọng nhất của DevSound là CMMPDevSound vàMDevSoundObserver, module audio fullduplex được xây dựng hoàn toàn bằng ngôn ngữSymbian C++
Với Module này chúng ta có thể thực hiện thao tác ghi âm thanh fullduplex trên thiết bịSymbian S60 (nhận âm thanh từ microphone và play lại trực tiếp qua speaker của điện thoại
lặp âm thanh, nhận và phát liên tục Với độ trễ (delay) gần như bằng 0
Cách thức xây dựng module cũng như các thành phần chính của module sẽ được trìnhbày chi tiết hơn trong phàn xây dựng ứng dụng
Phàn tiếp theo, chúng tôi sẽ tìm hiểu về mạng WLAN Đây là cơ sở khá quan trọng, do
để thực thi ứng dụng Wifi Connector chúng ta bắt buộc phải hoạt động ở môi trường có sự hiệndiện của mạng Wifi
Trang 362.5 TỒNG QUAN VỀ VVIRELESS LAN
Wireless Lan (WLAN) là mạng cục bộ không dây sử dụng sóng radio để truyền thông
với nhau
2.5.1 Lich sử ra đòi
Công nghệ WLAN lần đầu tiên xuất hiện vào cuối năm 1990, khi những nhà sản xuấtgiói thiệu những sản phẩm hoạt động trong băng tàn 900Mhz Những giải pháp này (không
so với tốc độ lOMbps của hầu hết các mạng sử dụng cáp hiện thời
Năm 1992, những nhà sản xuất bắt đầu bán những sản phẩm WLAN sử dụng băng tần
2.4Ghz Mặc dầu những sản phẩm này đã có tốc độ truyền dữ liệu cao hơn nhưng chứng vẫn lànhững giải pháp riêng của mỗi nhà sản xuất không được công bố rộng rãi Sự cần thiết cho việchoạt động thống nhất giữa các thiết bị ở những dãy tần số khác nhau dẫn đến một số tổ chức bắtđầu phát triển ra những chuẩn mạng không dây chung
Năm 1997, Institute of Eỉectrical and Electronics Engỉneers (IEEE) đã phê chuẩn sự rađời của chuẩn 802.11, và cũng được biết với tên gọi WM (Wireless Fidelity) cho các mạngWLAN Chuẩn 802.11 hỗ trợ ba phương pháp truyền tín hiệu, trong đó có bao gồm phươngpháp truyền tín hiệu vô tuyến ở tần số 2.4Ghz
Năm 2003, IEEE công bố thêm một sự cải tiến là chuẩn 802.1 lg mà có thể truyền nhận
thông tin ở cả hai dãy tần 2.4Ghz và 5Ghz và có thể nâng tốc độ truyền dữ liệu lên đến
54Mbps Thêm vào đó, những sản phẩm áp dụng 802.1 lg cũng có thể tương thích được với cácthiết bị chuẩn 802.1 lb Hiện nay chuẩn 802.1 lg đã đạt đến tốc độ 108Mbps-300Mbps
2.5.2 Các mô hình mạng WLAN
a Mô hình mạng Ad-hoc (Independent Basic Service sets BSSs)
Các nút di động (máy tính có hỗ trợ card mạng không dây) tập trung lại trong một
không gian nhỏ để hình thành nên kết nối ngang cấp (peer-to-peer) giữa chúng Các nút di động
có card mạng wireless là chúng có thể trao đổi thông tin trực tiếp với nhau, không cần phảiquản trị mạng
Hình 2.18 Mô hình của mạng Ad_hoc
Trang 37Vì các mạng ad-hoc này có thể thực hiện nhanh và dễ dàng nên chúng thường được thiết
lập mà không cần một công cụ hay kỹ năng đặc biệt nào vì vậy nó rất thích hợp để sử dụng
trong các hội nghị thương mại hoặc trong các nhóm làm việc tạm thòi Tuy nhiên chúng có thể
có những nhược điểm về vùng phủ sóng bị giói hạn, mọi người sử dụng đều phải “nghe” được
lẫn nhau
b Mô hình mạng cơ sở (Basic Service sets BSSs )
Bao gồm các điểm truy nhập AP (Access Poỉnt) gắn vói mạng đường trục hữu tuyến vàgiao tiếp với các thiết bị di động trong vùng phủ sóng của mộtcell AP đóng vai trò điều
khiển cell và điều khiển lưu lượng tới mạng
Các thiết bị di động không giao tiếp trực tiếp với nhau mà giao tiếp với các AP Các cell
có thể chồng lấn lên nhau khoảng 10-15 % cho phép các trạm di động có thể di chuyển mà
không bị mất kết nối vô tuyến và cung cấp vùng phủ sóng với chi phí thấp nhất Các trạm di
động sẽ chọn AP tốt nhất để kết nối Một điểm truy nhập nằm ở trung tâm có thể điều khiển vàphân phối truy nhập cho các nút tranh chấp, cung cấp truy nhập phù hợp với mạng đường trục,
ấn định các địa chỉ và các mức ưu tiên, giám sát lưu lượng mạng, quản lý chuyển đi các gói vàduy trì theo dõi cấu hình mạng
Hình 2.19 Mô hình mạng Wìfi Cff sở
Access
Point((Ị)) <?
Laptop c MÔ hình mạng mở rộng (Extended
Service Set ESSs )
Hệ thống phân phối là một lớp mỏng trongmỗi Access Point mà nó xác định đích đến cho mộtlưu lượng được nhận từ một BSS Hệ thống phân
Trang 38phối được tiếp sóng trở lại một đích trong cùng một BSS, chuyển tiếp trên hệ thống phân phối
tói một Access Point khác, hoặc gỏi tới một mạng có dây tới đích không nằm trong ESS Các
thông tin nhận bởi Access Point từ hệ thống phân phối được truyền tới BSS sẽ được nhận bởi
trạm đích
Sau khi tìm hiểu các mô hình mạng WLAN, tiếp theo chúng ta sẽ xem xét qua các thànhphần cụ thể trong một mạng WLAN
2.5.3 Các thành phần trong mạng WLAN
a Điểm truy cập - AP (Access Poỉnt)
Là 1 thiết bị ngoại vi dùng sóng để thu phát tín hiệu, truyền tải thông tin giữa các thiết bị
wireless và mạng dùnẸ dây AP là thiết bị phổ biến nhất trong WLAN chỉ đứng sau PC card
không dây Nó cung câp cho các máy khách (Client) một diêm truy cập vào mạng "Nơi mà các
(Switch).
b Các thiết bị máy khách trong WLAN (.End-user wireless devices)
Là những thiết bị WLAN được các máy khách sử dụng để kết nối vào WLAN
■ Card PCI Wireless:
Là thành phần phổ biến nhất trong WLAN Dùng để kết
nối các máy khách vào hệ thống mạng không dây Được cắm vào
khe PCI trên máy tính Loại này được sử dụng phổ biến cho các
máy tính để bàn (desktop) kết nối vào mạng không dây
■ Card PCMCIA Wireless:
Trước đây được sử dụng trong các máy tính xách tay và
các thiết bị hỗ trợ cá nhân số PDA (Personal Digital
PCMCIA vvireless ít được sử dụng \ì máy tính xách tay và
PDA, đều được tích hợp sẵn Card Wireless bên trong thiết bị
Loại rất được ưu chuộng hiện nay dành cho các thiết bị kết Wireiess USB adapter
nối vào mạng không dây vì tính năng di động và nhỏ gọn Có chức
năng tương tự như Card PCI Wireless, nhưng hỗ trợ chuẩn cắm là
USB (Universal Serial Bus). Có thể tháo lắp nhanh chóng (không
máy tính đang hoạt động iplug andplay).
2.5.4 Ưu đỉểm và nhược điểm của mạng Wifí
■ Sự tiện lọi: Mạng không dây cũng như hệ thống mạng thông
Trang 39thường Nó cho phép người dùng truy xuất tài nguyên mạng ở bất kỳ nơi đâu trong khuvực được triển khai {nhà hay văn phòng). Với sự gia tăng số người sử dụng máy tính
xách tay, đó là một điều rất thuận lọi
■ Khả năng di động: Với sự phát triển của các mạng không dây công cộng, người dùng
có thể truy cập Internet ở bất cứ đâu Chẳng hạn ở các quán Cafe, trường học, cơ quan,
xí nghiệp, người dùng có thể truy cập Internet không dây miễn phí
■ Hiệu quả: Người dùng có thể duy trì kết nối mạng khi họ đi từ nơi nàỵ đến nơi khác.
■ Triển khai: Việc thiet lập hệ thống mạng không dây ban đầu chỉ can ít nhất 1 access
point Với mạng dùng cáp, phải tốn thêm chi phí và có thể gặp khó khăn trong việc triểnkhai hệ thống cáp ở nhiều nơi trong tòa nhà
■ Khả năng mở rộng: Mạng không dây có thể đáp ứng tức thì khi gia tăng số lượng
người dùng Với hệ thống mạng dùng cáp cằn phải gắn thêm cáp
b Nhược điểm
■ Bảo mật: Môi trường kết nối không dây là không khí nên khả năng bị tấn công của
người dùng là rất cao
■ Phạm vi: Một mạng chuẩn 802.1 lg với các thiết bị chuẩn chỉ có thể hoạt động tốt trong
phạm vi vài chục mét Nó phù họp trong 1 căn nhà, nhưng với một tòa nhà lớn thì khôngđáp ứng được nhu cầu Đe đáp ứng cần phải mua thêm Repeater hay Access Point, dẫnđến chi phí gia tăng
■ Độ tin cậy: Vì sử dụng sóng vô tuyến để truyền thông nên việc bị nhiễu, tín hiệu bị
giảm do tác động của các thiết bị khác {lò vi sóng, radio ) là không tránh khỏi Làm
giảm đáng kể hiệu quả hoạt động của mạng
■ Tốc độ: Tốc độ của mạng không dây (7- 125 Mbps) rất chậm so với mạng sử dụng cáp
{lOOMbps đến hàng Gbps).
2.6.1 Mô hình tham khảo OSI
Để dễ dàng cho việc nối kết và trao đổi thông tin giữa các máy tính với nhau, vào năm
1983, tổ chức tiêu chuẩn thế giới ISO đã phát triển một mô hình cho phép hai máy tính có thểgửi và nhận dữ liệu cho nhau Mô hình này dựa trên cách tiếp cận phân tầng {lớp), vói mỗi
tầng đảm nhiệm một chức năng cơ bản nào đó và được gọi là mô hình OSI
Để hai máy tính có thể trao đổi được thông tin vói nhau cần có rất nhiều vấn đề liênquan ví dụ như cần có card mạng, dây cáp mạng, điện thế tín hiệu trên cáp mạng, cách thứcđóng gói dữ liệu, điều khiển lỗi trên đường truyền Bằng cách phân chia những tính năng nàyvào các tầng phân biệt nhau, việc viết các phần mềm để thực hiện chúng trở nên dễ dàng hơn
Mô hình OSI giúp đồng nhất các hệ thống máy tính khác biệt nhau khi chứng trao đổi thông tin
Mô hình này bao gồm 7 tàng:
■ Tầng 1 - Tầng vật lí {Plysical Layer)
Điều khiển việc truyền tải thật sự các bit trên đường truyền vật lí Nó định nghĩa các tínhiệu điện, trạng thái đường truyền, phương pháp mã hóa dữ liệu, các loại đầu nối sử dụng
Trang 40y and IP (Logical Addressing> ỳ
Frames r Data LinkMAC and LLC
Đây là tầng trên cùng cung cấp các ứng Hình 2.24 Mô hình tham khảo OSI
dụng truy xuất đến các dịch vụ mạng Nó bao gồm
các ứng dụng của người dùng, ví dụ như Web Brovvser {Internet Explorer, Mozilla Firefox,
dùng mạng giao tiếp trực tiếp với tầng này
về nguyên tắc, tầng n của một hệ thống chỉ giao tiếp và trao đổi thông tin vói tầng n của
hệ thống khác Mỗi tàng sẽ có đơn vị truyền dữ liệu riêng: