Đề tài Tìm hiểu về công nghệ bluetooth và viết ứng dụng minh họa

Đểminh họa cho việc sửdụng công nghệBluetooth, chúng em đã xây dựng được một ứng dụng thực hiện việc trao đổi phonebook giữa hai điện thoại di động Series 60 , và trao đổi phonebook giữa điện thoại di động Series 60 và máy tính. Qua đó, chúng em nắm được việc xây dựng ứng dụng sửdụng giao tiếp Bluetooth giữa các thiết bịlà điện thoại Symbian và máy tính. Mặc dù đã cốgắng hết sức, nhưng do thời gian có hạn, và việc tìm hiểu công nghệmới cũng gặp phải nhiều khó khăn do không có nhiều tài liệu và thời gian tìm hiểu, vì vậy, ứng dụng của chúng em chỉmang tính minh họa cho việc sửdụng công nghệmà thôi.

pdf253 trang | Chia sẻ: haianh_nguyen | Lượt xem: 1372 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu về công nghệ bluetooth và viết ứng dụng minh họa, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
IsValidBDAddr() const; IMPORT_C TBool IsValidDeviceName() const; IMPORT_C TBool IsValidDeviceClass(); ... }; Hàm IsValidxxxx() được dùng để bảo đảm rằng các thông tin liên quan đã được thiết lập trong lớp. Ví dụ, nếu hàm IsValidDBAddr() trả về giá trị true, ứng dụng biết được rằng địa chỉ của thiết bị Bluetooth đã được thiết lập trong lớp TBTDeviceResponseParams. Nếu hàm này trả về giá trị false có nghĩa là Đào Quý Thái An – Trần Thị Mỹ Hạnh 199 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa chưa có dữ liệu về địa chỉ thiết bị Bluetooth trong lớp này. Ứng dụng có thể nhận được địa chỉ thiết bị thông qua hàm BDAddr() và tên của thiết bị thông qua hàm DeviceName(). Symbian cung cấp một tập các gói dữ liệu đóng gói các lớp vừa trình bày bên trên: TBTDeviceSelectionParamsPckg TBTDeviceResponseParamsPckg Nói tóm lại, quy trình để thực hiện tìm kiếm thiết bị được mô tả như sau: // Kết nối vào server trước khi có thể sử dụng RNotifier not; User::LeaveIfError(not.Connect()); TBTDeviceSelectionParamsPckg selectionFilter; // Thực hiện tìm kiếm và hiển thị cho người dùng not.StartNotifierAndGetResponse( status, KDeviceSelectionNotifierUid, selectionFilter, aResponse ); // Đợi người dùng chọn thiết bị cần giao tiếp User::WaitForRequest(status); if (status.Int() == KErrNone) { if (aResponse().IsValidDeviceName()) { success = ETrue; } else { iReporter.Error(_L("Failed to connect")); } Đào Quý Thái An – Trần Thị Mỹ Hạnh 200 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa } else { iReporter.Error(_L("No device selected")); } not.CancelNotifier(KDeviceSelectionNotifierUid); not.Close(); return success; 7.9. Xây dựng ứng dụng Bluetooth trên Symbian OS với Series 60 SDK Ứng dụng Bluetooth trên Symbian OS cũng được tạo ra như bất kì một ứng dụng nào khác được xây dựng với Symbian C++. Bộ công cụ phát triển ứng dụng Series 60 SDK và Series 80 Developer Platform 2.0 SDK cung cấp một tập các hàm Bluetooth APIs cho việc xây dựng các ứng dụng Bluetooth với Symbian C++, và một bộ giả lập thiết bị để test ứng dụng. Chúng ta có thể test ứng dụng với các trường hợp sau : 1 : Tìm kiếm thiết bị Bluetooth xung quanh. 2 : Truy vấn các dịch vụ Bluetooth được hỗ trợ. 3 : Thiết lập một kết nối tới thiết bị khác. 4 : Gửi và nhận dữ liệu. Trong khuân khổ của luận văn, chúng em chỉ xin giới thiệu cách xây dựng ứng dụng Bluetooth với bộ công cụ phát triển ứng dụng Series 60 SDK. 7.9.1. Sự khác nhau về Bluetooth trên thiết bị ảo và thiết bị thật. Môi trường phát triển ứng dụng ( bộ giả lập thiết bị trên PC) và môi trường thiết bị thật khác nhau. Thể hiện ở các điểm sau : ∗ Hiệu năng của thiết bị ảo và thiết bị thật khác nhau. ∗ Chồng giao thức Bluetooth và các cài đặt bên dưới của thiết bị ảo và thiết bị thật khác nhau như thể hiện trong hình bên dưới đây. ∗ Thiết bị ảo không nạp tất cả các dịch vụ Bluetooth của nó khi khởi động ,trong khi thiết bị thật nạp thì có. Nếu muốn một thiết bị khác Đào Quý Thái An – Trần Thị Mỹ Hạnh 201 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa muốn yêu cầu kết nối vào máy ảo thì trước đó máy ảo phải khởi tạo các dịch vụ cần thiết. Để làm được điều này xin xem thêm các ví dụ về Bluetooth đi kèm với bộ SDK. Hình 7-6 Sự khác biệt giữa chồng giao thức Bluetooth trên thiết bị thật và trên máy ảo Do đó, ứng dụng trước khi hoàn thành cần phải được test cẩn thận trên một thiết bị thật. 7.9.2. Các yêu cầu về phần cứng và phần mềm cho việc phát triển ứng dụng Bluetooth với Series 60 SDK : * Để có thể phát triển ứng dụng Bluetooth cho series 60, bạn cần phải có một máy tính để bàn sử dụng hệ điều hành Windows 2000 hoặc Windows XP, cùng với bộ Series 60 SDK được cài đặt. Đào Quý Thái An – Trần Thị Mỹ Hạnh 202 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa * Về phần cứng Bluetooth, bộ giả lập hỗ trợ phần cứng Bluetooth với phiên bản của Host Controller Interface (HCI) là BCSP và H4 UART của, với tộc độ baud-rate là 115.2 kbps, giao tiếp thông qua giao diện cổng COM của Windows, vì vậy, chỉ có thể sử dụng các phần cứng Bluetooth tương thích với BCSP và H4 UART mà thôi. Bộ giả lập đã chứa đựng các chồng giao thức Bluetooth , vì vậy, thiết bị Bluetooth không cần thêm bất cứ một phần mềm điều khiển nào nữa. * Thiết bị phần cứng Bluetooth với giao diện USB không được bộ SDK hỗ trợ, vì vậy, để có thể sử dụng USB Bluetooth với máy ảo, cần phải có driver chuyển đổi USB Bluetooth để phù hợp với máy ảo. Hiện nay chỉ có driver của hãng Cyberabi ( www.cyberabi.com ) cho phép sự chuyển đổi đó : • Nếu bạn sử dụng Series 60 SDK v1.2, bạn cần có driver DTL_X . • Nếu bạn sử dụng Series 60 SDK v2.1, bạn cần phải sử dụng driver BH4_X. * Trong luận văn này, chúng em chỉ xin hướng dẫn cách sử dụng với thiết bị phần cứng Bluetooth là USB Bluetooth Dongle. 7.9.3. Cài đặt và cấu hình thiết bị USB Bluetooth. + Để cấu hình Bluetooth USB để có thể giả lập thiết bị Bluetooth với máy ảo, trước hết bạn cần phải có Driver DTL_X hoặc BH4_X của Cyberabi. + Gỡ bỏ tất cả các driver của thiết bị Bluetooth USB đã cài đặt trên máy tính, gỡ thiết bị USB Bluetooth ra khỏi máy tính, khởi động lại máy tính. + Gắn USB Bluetooth vào cổng USB của máy tính. Khi đó máy tính sẽ nhận ra thiết bị Bluetooth USB mới cắm vào và yêu cầu chọn driver cho thiết bị đó. Ta chọn đường dẫn đến thư mục có chứa driver DTL_X hoặc BH4_X. + Sau khi cài driver cho thiết bị Bluetooth xong, một COM port mới là được tạo ra. Đây chính là Bluetooth virtual COM port. Ta sẽ sử dụng COM port này cho máy ảo. Khi đó, trong Device Manager của Windows, ta sẽ thấy được một cổng COM mới tạo ra như sau : Đào Quý Thái An – Trần Thị Mỹ Hạnh 203 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình 7-7 Virtual Bluetooth COM port tạo ra trên máy tính. + Sau khi cổng Bluetooth COM được tạo ra, thực hiện cấu hình Bluetooth cho thiết bị giả lập như sau : Với bộ SDK v1.2 : Mở file ....\ Epoc32\Wins\c\system\data\bt.esk Và thay đổi cấu hình file bt.esk như sau : Hình 7-8 Cấu hình Bluetooth COM port cho thiết bị giả lập Đào Quý Thái An – Trần Thị Mỹ Hạnh 204 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Thay con số ở vị trí port thành con số của Bluetooth port mà ta vừa tạo ra. Lưu ý là con số mà ta nhập vào đây phải nhỏ hơn con số của Bluetooth port một đơn vị, nghĩa là nếu Bluetooth port là COM4 thì trong file bt.esk ta thay port thành 3. Lưu ý là thiết bị giả lập chỉ cho phép sử dụng với các cổng COM từ COM2 tới COM6, nếu sau khi cài driver DTL_X hoặc BH4_X mà tạo ra cổng COMx với x 6 , ta phải thiết lập lại số của cổng cho phù hợp. Bây giờ, thiết bị giả lập đã sẵn sàng cho việc xây dựng và kiểm thử các ứng dụng Bluetooth. Phần 3 XÂY DỰNG ỨNG DỤNG MINH HỌA SỬ DỤNG CÔNG NGHỆ BLUETOOTH Xây dựng chương trình trao đổi phonebook giữa điện thoại di động với máy tính, và với điện thoại di động thông qua Bluetooth. ? Chương 8. Phân tích và thiết kế ứng dụng trao đổi phonebook qua Bluetooth. ? Chương 9. Cài đặt và thử nghiệm. ? Chương 10. Tổng kết Đào Quý Thái An – Trần Thị Mỹ Hạnh 205 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Chương 8 PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG TRAO ĐỔI PHONEBOOK 8.1. Giới thiệu Ứng dụng PbkExchange được xây dựng nhằm hỗ trợ cho việc quản lý và trao đổi danh bạ điện thoại của người dùng điện thoại di động. Người dùng có thể thông Bluetooth để trao đổi danh bạ điện thoại giữa hai điện thoại hoặc để lưu và hoặc phục hồi danh bạ điện thoại bằng cách lưu ra máy tính. Ứng dụng PbkExchange được phát triển cho các điện thoại sử dụng hệ điều hành Symbian trên nền hệ thống Series 60 và đã được cài đặt thử nghiệm thực tế trên điện thoại Nokia 6600, Nokia 3230. Do sử dụng bộ công cụ phát triển ứng dụng là Series 60 SDK v1.2 hỗ trợ các điện thoại thuộc Series 60 trên nền hệ điều hành Symbian 6.1, vì vậy chương trình PbkExchange này cũng có thể chạy trên các loại điện thoại thuộc series 60 khác như Nokia 7610, Nokia 3360, N_Gage... 8.2. Phân tích và xác định yêu cầu Mục đích chính của ứng dụng là thực hiện các kết nối và trao đổi dữ liệu qua Bluetooth, cho phép người dùng trao đổi phonebook (sổ danh bạ trên điện thoại) giữa hai điện thoại di động thuộc Series 60, hoặc trao đổi phonebook giữa điện thoại và máy tính để lưu trữ trên máy tính. Ứng dụng PbkExchange gồm hai phần : phần ứng dụng chạy trên điện thoại và phần ứng dụng chạy trên máy tính. Các yêu cầu của ứng dụng: + Thực hiện các kết nối Bluetooth. + Trao đổi sổ danh bạ giữa điện thoại và máy tính + Trao đổi sổ danh bạ giữa hai điện thoại. + Thực hiện các thao tác quản lý sổ danh bạ : thêm, xóa, sửa các phần tử. Đào Quý Thái An – Trần Thị Mỹ Hạnh 206 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa 8.3. Qui trình kết nối và gửi nhận dữ liệu Trong một phiên kết nối Bluetooth điểm nối điểm giữa hai thiết bị Bluetooth thông qua giao thức Serial port , thường sẽ có một thiết bị khởi tạo Bluetooth trước và thực hiện quảng bá dịch vụ Bluetooth Serial Port tới thiết bị Bluetooth khác, sau đó lắng nghe các yêu cấu kết nối từ thiết bị khác, ta gọi đó là Server, thiết bị còn lại sẽ thực hiện việc tìm kiếm các thiết bị Bluetooth xung quanh, chọn thiết bị cần kết nối và gửi yêu cầu kết nối tới thiết bị là server, ta gọi thiết bị đó là client. Qui trình thực hiện kết nối và truyền nhận dữ liệu giữa hai thiết bị được thể hiện như sơ đồ UML sau : Đào Quý Thái An – Trần Thị Mỹ Hạnh 207 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa : User : Client : Server 2. Ket noi den Sever 3.1. Chon thiet bi 3. Danh sach cac thiet bi Bluetooth tim duoc Cho ket noi 7. Goi du lieu sang server 1. Khoi dong Server 1.1. Mo socket lang nghe, cho ket noi 1.1.1. Quang ba dich vu 2.1. Tim thiet bi 2.1.1. Du lieu phan hoi 3.1.1. Truy van dich vu 3.1.1.1. Du lieu phan hoi 3.1.2. Yeu cau ket noi 4. Hien thi thong bao nhap mat ma ket noi 4.1. Nhap mat ma chap nhan ket noi 5. Chap nhan ket noi 5.1. San sang nhan du lieu 6. San sang nhan du lieu 7.1. Goi du lieu sang server 7.1.1. Nhan va xu li du lieu 8. San sang nhan du lieu 9. San sang nhan du lieu Tuong tu cho viec goi du lieu sang client Hình 8-1 Qui trình kết nối và gửi nhận dữ liệu Đào Quý Thái An – Trần Thị Mỹ Hạnh 208 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa 8.4. Xây dựng phần ứng dụng trên điện thoại * Phần ứng dụng PbkExchange trên điện thoại có hai vai trò : Server và Client : + Khi thực hiện kết nối với máy tính : điện thoại đóng vai trò client : nó sẽ gửi yêu cầu kết nối tới máy tính, và máy tính đóng vai trò Server. + Khi thực hiện kết nối giữa hai điện thoại : một điện thoại sẽ đóng vai trò server : nó sẽ khởi tạo Bluetooth và lắng nghe yêu cầu kết nối từ điện thoại khác, một điện thoại sẽ đóng vai trò client : gửi yêu cầu kết nối tới server. * Các chức năng của phần ứng dụng trên điện thoại : • Cho phép thực hiện các thao tác trên phonebook của điện thoại: thêm xóa, sửa các contact. • Thực hiện khởi tạo và thiết lập các kết nối Bluetooth • Sau khi đã thực hiện kết nối thành công, cả server và client đều có khả năng gửi và nhận dữ liệu : thực hiện việc trao đổi phonebook thông qua Bluetooth. • Xử lý dữ liệu nhận được. Các lớp chính của PbkExchange phần trên điện thoại : Hình 8-2 Sơ đồ lớp của phần ứng dụng trên điện thoại. Đào Quý Thái An – Trần Thị Mỹ Hạnh 209 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa STT Tên lớp Chức năng 1 CPbkExchangeAppUi Đây là lớp xử lý chính của chương trình, là lớp nhận và xử lý các sử kiện từ người dùng, lớp này cũng có nhiệm vụ giao tiếp với các lớp gửi và nhận dữ liệu qua Bluetooth , thao tác với lớp RFile, xử lý dữ liệu nhận được. 2 CMessageClient Thực hiện tìm kiếm thiết bị server, gửi yêu cầu kết nối, quản lý kết nối, nhận và gửi dữ liệu khi đóng vai trò là client. 3 CMessageServer Thực hiện khởi tạo Bluetooth, chấp nhận kết nối và thực hiện các thao tác trao đổi dữ liệu, quản lý kết nối. 4 CPbkExchangeMainView Quản lý các menu và phần giao diện của ứng dụng. 5 CPbkExchangeMainContainer Hỗ trợ cho lớp CPbkExchangeMainView trong việc quản lý giao diện của ứng dụng. 6 CMessageServiceSearcher, CBTServiceSearcher Tìm thiết bị và dịch vụ Bluetooth, lấy Port hỗ trợ CMessageClient thực hiện kết nối 7 MSdpAttributeNotifier, TSdpAttributeParser Hỗ trợ việc lấy, phân tích thuộc tính các record của dịch vụ 8 CMessageServiceAdvertiser Hỗ trợ lớp CMessageServer trong việc quảng bá dịch vụ Bluetooth Serial Port. Hình 8-3 Mô tả chức năng các lớp của phần ứng dụng trên điện thoại. Đào Quý Thái An – Trần Thị Mỹ Hạnh 210 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa 8.4.1. Phần Server Khi một điện thoại đóng vai trò server, nó lắng nghe và chấp nhận kết nối từ client khác : điện thoại đó sẽ phải khởi tạo Bluetooth trước và thực hiện quảng bá dịch vụ Bluetooth Serial Port tới các thiết bị khác. Sơ đồ lớp khi thiết bị đóng vai trò server: Hình 8-4 Sơ đồ lớp của phần ứng dụng trên điện thoại (Server) * Lớp CPbkEchangeAppUi là lớp thể hiện giao diện người dùng của ứng dụng, nó sử dụng một thể hiện của lớp CMessageServer để : + Khởi tạo dịch vụ Bluetooth Serial Port + Cho phép sự kết nối của các thiết bị Bluetooth khác. + Quảng bá dịch vụ Bluetooth Serial Port. + Chấp nhận một kết nối socket. + Thực hiện các thao tác gửi và nhận dữ liệu qua Bluetooth. * Lớp CMessageServer sử dụng một số lớp của hệ điều hành Symbian sau : + Lớp RSocketServ : Để giao tiếp với socket server của thiết bị. + Lớp RSocket : Cung cấp các hàm cho việc tạo socket, đọc và ghi dữ liệu qua socket. Có hai thể hiện của lớp RSocket : • iListeningSocket : lắng nghe các yêu cầu kết nối từ client. • iAcceptSocket : Socket kết nối với client : thực hiện việc truyền và nhận dữ liệu thông qua socket này. Đào Quý Thái An – Trần Thị Mỹ Hạnh 211 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa + Lớp RBTMan và RBTSecuritySettings : tạo ra một phiên làm việc (session) tới Bluetooth Security Manager (BSM), dùng để đăng kí và hủy bỏ các đăng kí các dịch vụ với BSM. Các thiết lập về an toàn của một dịch vụ được chứa trong cấu trúc TBTServiceSecurity. + Lớp CMessageServiceAdvertiser được lớp CMessageServer sử dụng để quảng bá dịch vụ Bluetooth Serial Port. Lớp này sử dụng hai lớp của Symbian là RSdp và RSdpDatabase để tạo một phiên làm việc tới Bluetooth SDP Database. Việc thực hiện quảng bá dịch vụ Bluetooth Serial Port được thực hiện bằng cách tạo một record thích hợp trong SDP Database. * Sơ đồ UML sau thể hiện quá trình quảng bá dịch vụ của server : Hình 8-5 Quảng bá dịch vụ của Server Hàm Mô tả 1 - 2 Người dùng chọn vào menu StartListen trên thiết bị, lúc này hàm HandleCommanL của lớp CPbkExchangeAppUi được gọi, và tiếp đó hàm StartL() của lớp CMessageServer được gọi. Đào Quý Thái An – Trần Thị Mỹ Hạnh 212 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hàm StartL() sẽ làm nhiệm vụ tìm kiếm một port để lắng nghe, thiết lập các chế độ an toàn trên đó, và mở port đó để lắng nghe. StartL() gọi hàm StartAdvertisingL() của lớp CMessageAdvertiser để quảng bá dịch vụ Bluetooth Serial Port tới các thiết bị khác. Biến trạng thái iState của CMessageServer mang giá trị : EWaitingForConnect 3 - 4 5-7 Thiết lập một kết nối với thiết bị client khi nhận được yêu cầu kết nối. Hàm RunL() của CMessageServer được gọi, biến trạng thái iState chuyển từ EWaitingForConnect thành EWaitingForMessage 8-10 Nhận dữ liệu từ Client, hàm RequestData(), và hàm ReceiveOneOrMore() được gọi để nhận dữ liệu khi được gửi tới. Bảng 3-1 Mô tả các hàm quảng bá dịch vụ * Sơ đồ UML sau thể hiện việc nhận dữ liệu từ Client : Hình 8-6 Nhận dữ liệu từ Client Đào Quý Thái An – Trần Thị Mỹ Hạnh 213 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Sau khi đã thực hiện kết nối với client, Server luôn ở trạng thái sẵn sàng nhận dữ liệu từ client. Khi client thực hiện truyền dữ liệu, hàm RequestData() trên server được gọi, và hàm RecvOneOrMore() được gọi để nhận dữ liệu từ socket. Dữ liệu nhận được được truyền qua cho lớp CPbkExchangeAppUi xử lý. * Thực hiện truyền Phonebook tới Client : Hình 8-7 Truyền dữ liệu phonebook tới client 8.4.2. Phần Client Ứng dụng trên điện thoại sẽ đóng vai trò Client khi nó gửi yêu cầu kết nối tới máy tính hoặc tới điện thoại khác. Lúc này, nó sẽ phải thực hiện việc tìm kiếm thiết bị Bluetooth xung quanh, chọn thiết bị kết nối tới và thực hiện kết nối. Sơ đồ lớp thể hiện khi thiết bị đóng vai trò là Client : Đào Quý Thái An – Trần Thị Mỹ Hạnh 214 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình 8-8 Sơ đồ lớp của phần ứng dụng trên điện thoại (Client) * Lớp CPbkExchangeAppUi là lớp thể hiện giao diện người dùng của ứng dụng, nó sử dụng một thể hiện cúa lớp CMessageClient để thực hiện kết nối Bluetooth với Server và thực hiện các trao đổi dữ liệu thông qua Bluetooth với Server. Lớp CMessageClient sử dụng lớp RSocketServ và RSocket để mở một socket để truyền và nhận dữ liệu. Trước khi có thể mở một socket, đối tượng CMessageClient phải thực hiện việc tìm kiếm thiết bị Bluetooth server, truy vấn dịch vụ có trên server xem có cung cấp dịch vụ là Bluetooth Serial Port không và thực hiện kết nối với Server. * Thực hiện tìm kiếm thiết bị: Đào Quý Thái An – Trần Thị Mỹ Hạnh 215 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa : FrameWork : CMessageClient : CMessageServiceSearcher : RNotifier EGettingDevice 1: ConnectL() 2: SelectDeviceByDiscoveryL(..) 3: StartNotifierAndGetResponse(..) Hình 8-9 Sơ đồ tìm kiếm thiết bị Hàm Mô tả 1 – 3 Hàm ConnectL của đối tượng CMessageClient được gọi, nó thiết lập biến trạng trái (iState) là EGettingDevice và gọi hàm SelectDeviceByDiscoveryL của đối tượng CMessageServiceSearcher. Và hàm này gọi hàm StartNotifierAndGetResponse của đối tượng RNotifier để tìm và chọn thiết bị mà nó nhận được. Sau khi người dùng chọn thiết bị xong hàm RunL của đối tượng CMessageClient sẽ được gọi. Bảng 3-2 Mô tả các hàm tìm thiết bị * Thực hiện truy vấn dịch vụ Đào Quý Thái An – Trần Thị Mỹ Hạnh 216 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa 11: Finished(..) : FrameWork : CMessageClient : CMessageServiceSearcher : CSdpAgent EGettingService 1: RunL() 2: FindServiceL(..) 3: SetRecordFilterL(..) 4: NextRecordRequest(..) 5: NextRecordRequestComplete(..) 6: AttributeRequestL(..) 7: AttributeRequestResult() 8: AttributeRequestComplete(..) 9: NextRecordRequest(..) 10: NextRecordRequestComplete(..) 12: RequestComplete(..) Hình 8-10 Sơ đồ UML truy vấn dịch vụ trên thiết bị Hàm Mô tả 1 – 2 Sau khi người dùng chọn thiết bị muốn kết nối thì hàm RunL sẽ được gọi, lúc này biến trạng thái iState là EGettingService, và gọi hàm FindServiceL của đối tượng CMessageServiceSearcher để tìm Serial Port service record trong SDP database của thiết bị muốn kết nối . 3 – 4 FindServiceL thiết lập một bộ lọc để chỉ nhận những Serial Port service record bằng cách gọi hàm SetRecordFilter của đối tượng CSdpAgent. Sau đó NextRecordRequest được gọi để tìm Serial Port record trong SDP database của thiết bị muốn kết nối. 5 – 6 Khi một record được tìm thấy, đối tượng CSdpAgent gọi hàm callback NextRecordRequestComplete, hàm này gọi hàm NextRecordRequestCompleteL của đối tượng Đào Quý Thái An – Trần Thị Mỹ Hạnh 217 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa CMessageServiceSearcher, đến lượt mình hàm này lại gọi hàm AttributeRequestL của đối tượng CSdpAgent để yêu cầu thuộc tính đầu tiên của record. 7 Khi đối tượng CSdpAgent nhận được một thuộc tính nó gọi hàm callback AttributeRequestResult, đến lượt mình hàm này gọi hàm AttributeRequestResultL của đối tượng CMessageServiceSearcher. Một bộ phân tích sẽ phân tích các thuộc tính này. Nếu những thuộc tính này là Protocol Descriptor List, bộ phân tích sẽ lấy channel (port) và gán nó vào biến thành viên iPort của đối tượng CMessageServiceSearcher. 8 – 12 Khi tất cả các thuộc tính được tìm thấy, hàm AttributeRequestCompleteL sẽ được gọi và hàm này sẽ gọi hàm NextRecordRequest trong trường hợp có record Serial Port service khác trong SDP database. Nếu không có thêm record nào thì đối tượng CSdpAgent sẽ gọi hàm NextRecordRequestComplete và cờ EoF sẽ được thiết lập.Tiếp theo, hàm Finished sẽ được gọi và hàm này gọi hàm RequestComplete, hoàn tất hàm này hàm RunL của đối tượng CMessageClient sẽ được gọi. Bảng 3-3 Mô tả các hàm truy vấn dịch vụ 8.5. Xây dựng phần ứng dụng PbkExchange trên máy tính Ứng dụng PbkExchange trên máy tính đóng vai trò Server trong quá trình kết nối và trao đổi dữ liệu. Ứng dụng trên Server sẽ khởi tạo Bluetooth, quảng bá dịch vụ Bluetooth Serial Port tới các thiết bị khác, và chấp nhận kết nối với client khi nhận được yêu cầu kết nối. Khi đã kết nối thành công, quá trình trao đổi dữ liệu có thể được diễn ra. Các bước xây dựng server: 8.5.1. Kết nối vào cổng COM : Thay vì mở Socket để lắng nghe chờ kết nối như trên di động thì trên máy tính ta chỉ cần mở một cổng COM đã được driver của thiết bị định sẵn, là Đào Quý Thái An – Trần Thị Mỹ Hạnh 218 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa cổng COM mà thiết bị Bluetooth sẽ lắng nghe kết nối từ client. Việc này được thực hiện một cách đơn giản như sau: sprintf(sCommPortBuf, "\\\\.\\%s", sCommPort); m_hBluetoothHandle = CreateFile(sCommPortBuf, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, // no security OPEN_EXISTING, 0, // not overlapped I/O NULL); sCommPort là kiểu chuỗi, ví dụ “COM5” m_hBluetoothHandle kiểu HANDLE Hàm CreateFile mở cổng COM với port là 5 và trả về Handle của cổng COM. 8.5.2. Quảng bá dịch vụ Việc quảng bá dịch vụ Bluetooth Serial Port được driver của thiết bị Bluetooth thực hiện, ứng dụng Bluetooth chỉ cần kết nối vào COM port mà driver đã chỉ định sẵn là có thể chấp nhận các yêu cầu kết nối nào từ client. 8.5.3. Chấp nhận kết nối Khi có Client yêu cầu kết nối thì Server sẽ tự động chấp nhận kết nối 8.5.4. Thực hiện truyền và nhận dữ liệu : Việc truyền và nhận dữ liệu của ứng dụng trên máy tính thực ra là việc đọc và ghi dữ liệu ra cổng COM mà ứng dụng kết nối vào. Để làm việc đó, ta sử dụng các hàm đọc và ghi dữ liệu sau : BOOL ReadFile( HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, Đào Quý Thái An – Trần Thị Mỹ Hạnh 219 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa LPOVERLAPPED lpOverlapped ); BOOL WriteFile( HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped ); Tên tham số Mô tả hFile HANDLE của cổng COM đã được mở với hàm CreateFile như trên (m_hBluetoothHandle) lpBuffer Con trỏ trỏ tới buffer chứa dữ liệu để truyền đi hoặc nhận được. nNumberOfBytesToRead, nNumberOfBytesToWrite Số byte dữ liệu sẽ nhận hoặc truyền lpNumberOfBytesRead, Số byte thực tế nhận hoặc truyền đi được. lpNumberOfBytesWrite lpOverlapped Là một con trỏ trỏ tới cấu trúc OVERLAPPED, do cổng COM được mở với hàm CreateFile với tham số thứ 6 bằng 0 ( không sử dụng Overlapped) do đó tham số này bằng NULL. Bảng 3-4 Tham số hàm ReadFile và WriteFile Đào Quý Thái An – Trần Thị Mỹ Hạnh 220 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Chương 9 CÀI ĐẶT VÀ THỬ NGHIỆM 9.1. Cài đặt: ∗ Ứng dụng PbkExchange được xây dựng với môi trường phát triển ứng dụng sau: • Môi trường cài đặt ứng dụng : Windows XP Professional Service park 2 • Môi trường lập trình : Microsoft Visual C++ 6.0 • Bộ cộng cụ phát triển ứng dụng Series 60 SDK v1.2 hỗ trợ Microsoft Visual C++ 6.0 • Công cụ Rational Rose ∗ Phần cứng Bluetooth : • Phần ứng dụng trên máy tính : Bluetooth USB. • Phần ứng dụng trên điện thoại : • Giả lập máy ảo với Bluetooth là USB Bluetooth , và phần mềm DTL_X driver. • Kiểm thử với Nokia 6600, Nokia 3230 9.2. Thử nghiệm Ứng dụng PbkExchange được thử nghiệm trên máy ảo của Series 60 SDK v1.2 và trên điện thoại Nokia 6600 và Nokia 3230 Thử nghiệm trên máy ảo : • Thử nghiệm kết nối với Nokia 6600 : ? Kết nối tốt, khá ổn định ? Gửi nhận dữ liệu tốt. ? Tốc độ xử lý dữ liệu nhanh. • Hiển thị hình ảnh (hình nền) : khá nhanh, gần như tức thời. Thử nghiệm trên điện thoại Nokia 6600, và Nokia 3230 : • Kết nối với PC : o Tốc độ kết nối nhanh, ổn định Đào Quý Thái An – Trần Thị Mỹ Hạnh 221 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa o Gửi nhận dữ liệu tốt. o Tốc độ xử lý dữ liệu chậm hơn máy ảo. • Kết nối giữa hai điện thoai : ? Tốc độ kết nối : khá nhanh, ổn định ? Gửi nhận dữ liệu : tốt. ? Tốc độ xử lý dữ liệu chậm hơn máy ảo • Hiển thị hình ảnh (hình nền) : chậm hơn máy ảo, khoảng 2 giây. Chương trình chạy tốt trên Nokia 6600, Nokia 3230 và được xây dựng bằng bộ Series 60 SDK v1.2, do đó có thể chạy trên các loại điện thoại thuộc Series 60 khác. Chương 10 TỔNG KẾT Với mong muốn tìm hiểu công nghệ, kĩ thuật mới và được sự phân công và hướng dẫn của cô Huỳnh Thụy Bảo Trân, chúng em đã hoàn thành luận văn cử nhân công nghệ thông tin với đề tài “Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa”. Sau khi thực hiện đề tài, chúng em đã đạt được một số kết quả sau : • Tìm hiểu được công nghệ Bluetooth, một công nghệ không dây đang phát triển rất mạnh và có tầm ứng dụng rộng rãi hiện nay, nắm được cách thức hoạt động, các đặc điểm kĩ thuật và khả năng của công nghệ Bluetooth. Thêm vào đó, trong quá trình tìm hiểu về Bluetooth, chúng em cũng nắm được một số kĩ thuật mạng không dây khác. • Tìm hiểu được một hệ điều hành dành cho điện thoại di động thông minh phổ biến nhất hiện nay, đó là hệ điều hành Symbian, biết được sơ lược về cấu trúc của hệ điều hành Symbian, và cách xây dựng ứng dụng trên Symbian. Hiện nay, Symbian đang ngày càng phát triển mạnh mẽ và mở ra một môi trường lập trình mới đầy tiềm năng cho các lập trình viên : lập trình ứng dụng cho điện thoại thông minh. Đào Quý Thái An – Trần Thị Mỹ Hạnh 222 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa • Để minh họa cho việc sử dụng công nghệ Bluetooth, chúng em đã xây dựng được một ứng dụng thực hiện việc trao đổi phonebook giữa hai điện thoại di động Series 60 , và trao đổi phonebook giữa điện thoại di động Series 60 và máy tính. Qua đó, chúng em nắm được việc xây dựng ứng dụng sử dụng giao tiếp Bluetooth giữa các thiết bị là điện thoại Symbian và máy tính. Mặc dù đã cố gắng hết sức, nhưng do thời gian có hạn, và việc tìm hiểu công nghệ mới cũng gặp phải nhiều khó khăn do không có nhiều tài liệu và thời gian tìm hiểu, vì vậy, ứng dụng của chúng em chỉ mang tính minh họa cho việc sử dụng công nghệ mà thôi. PHỤ LỤC A : Một số thuật ngữ sử dụng trong luận văn • ISM (Industrial, Scientific, Medical): dãy tầng 2.40- 2.48 GHz, dãy băng tầng không cần đăng ký được dành riêng để dùng cho các thiết bị không dây trong công nghiệp, khoa học, y tế. • SIG (Special Interest Group): nhóm nghiên cứu SIG chính thức được thành lập với mục đích phát triển công nghệ Bluetooth trên thị trường viễn thông. Bất kỳ công ty nào có kế hoạch sử dụng công nghệ Bluetooth đều có thể tham gia vào. • CSR (Cambridge Silicon Radio): một nơi nghiên cứu chế tạo chip Bluetooth. • CES (Consumer Electronics Show): hội nghị về các sản phẩm điện tử tổ chức ở Las Vegas, Mỹ. • OBEX (OBject EXchange protocol): chuẩn đồng bộ hóa dữ liệu cho PDA. • MAC (Media Access Control): điều khiển truy cậo truyền thông. • AMA (Active Member Address ) : địa chỉ 3 bit dành cho thiết bị đang hoạt động trong piconet. • PMA (Packed Member Address) : con số 8 bits để phân biệt các packed Slave với nhau và có tối đa 255 thiết bị ở trạng thái này trong 1 Piconet Đào Quý Thái An – Trần Thị Mỹ Hạnh 223 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa • ACL (Asynchronous connectionless) : phi kết nối bất đồng bộ, dành cho truyền dữ liệu. • SCO (Synchronous connection-oriented): kết nối đồng bộ có định hướng. • CRC (Cyclic Redundancy Check): gói kiểm lỗi theo chu kỳ. • FCC( Federal Communications Commission): điều lệ quy định việc sử dụng sóng radio trên thế giới. • FDMA (Frequency Division Multiple Access): đa truy cập phân chia theo tầng số. • TDMA (Time Division Multiple Access): đa truy cập phân chia theo thời gian. • CDMA (Code Division Multiple Access): đa truy cập phân chia theo mã. • DS-CDMA (Direct sequence - Code Division Multiple Access): chuỗi quản lý CDMA. • TS (timeslot) : khe thời gian. • FEC (Forward Error Correction) : sửa lỗi trước. • LMP (Link Manament Protocol) : giao thức quản lý kết nối. • Device Access Code (DAC): mã truy cập thiết bị. • Channel Access Code (CAC): mã truy cập kênh truyền. • Inquiry Access Code (IAC): mã truy cập quá trình inquiry. • HCI (Host Controller Interface): giao diện điều khiển máy chủ. • SDP (Service Discovery Protocol): giao thức tìm kiếm dịch vụ. • PDU (protocol data unit): một định dạng gói tin trong SDP. • UUID (Universal Unique Indentifier): số định danh duy nhất dành cho mỗi dịch vụ. • A2DP (Advanced Audio Distribution Profile) • AVRCP (Audio/Video Remote Control Profile) • BIP (Basic Imaging Profile) • BPP(Basic Printing Profile) • CIP(Common ISDN Access Profile) • CTP (Cordless Telephony Profile) • DUN (Dial-up Networking Profile) • FAX (Fax Profile) Đào Quý Thái An – Trần Thị Mỹ Hạnh 224 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa • FTP (File Transfer Profile) • GAVDP (General Audio/Video Distribution Profile) • GAP (Generic Access Profile) • GOEP (Generic Object Exchange Profile) • HFP (Hands Free Profile) • HCRP (Hard Copy Cable Replacement Profile) • HSP (Headset Profile) • HID (Human Interface Device Profile) • ICP (Intercom Profile) • OPP (Object Push Profile) • PAN (Personal Area Networking Profile) • SPP (Serial Port Profile) • SDAP (Service Discovery Application Profile) • SAP (SIM Access Profile) • SYNCH (Synchronisation Profile) • VDP (Video Distribution Profile) • HFP 1.5 (Handsfree Profile 1.5) • UDI (Unrestricted Digital Information) • WAP (Wireless application Protocol over BT) • ESDP (Extended Service discovery profile) • LPP (Local Positioning Profile) • VCP (Video Conferencing Profile) • DID (Device ID) • PPP (Point-To-Point Protocol) • IEEE (Institute of Electrical and Electronics Engineers) • AP (access point) • CSMA/CA (Carrier Sense Multiple Access với Collision Avoidance) • IrDA (Infrared Data Association) • WLAN (Wireless LAN) • SSID (System Set Identifer) • BD_ADDR (Bluetooth device address hoặc MAC address) • AU RAND: thông điệp mời ngẫu nhiên 128 bit Đào Quý Thái An – Trần Thị Mỹ Hạnh 225 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa • RNG (Random Number Generator): quy trình tạo số ngẫu nhiên • FHS: Frequency Hop Synchronization: đồng bộ nhảy tần số. • LAP: Lower Address Part: phần địa chỉ 24 bit thấp trong BD_ADDR • UAP: Upper Address Part: phần địa chỉ 8 bit cao trong BD_ADDR • NAP field: non-significant address part: phần địa chỉ 16 bit không quan trọng trong BD_ADDR • DoS (Denial of Service): từ chối dịch vụ • PCMCIA (Personal Computer Memory Card International Association): tổ chức quốc tế về bộ nhớ trong máy tính cá nhân. • MMS messages: là một loại tin nhắn đa phương tiện được trao đổi giữa các điện thoại Symbian và những điện thoại khác có hỗ trợ MMS. • Claimant: thiết bị yêu cầu • Verifier: thiết bị xác minh • IMEI (International Mobile Equipment Identity) • AT (Attention) command set: tập lệnh AT, một tiêu chuẩn đối với phần mềm điều khiển modem do hãng Hayes Microcomputer Products soạn thảo và được đưa ra lần đầu tiên dùng với modem Smartmodems. • PSM (Protocol/Service Multiplexer ports): cổng đa thành phần dành cho dịch vụ hoặc giao thức. • AFH (Adaptive Frequency Hopping): phương pháp chống nhiễu tốt hơn bằng cách nhảy tầng số. • eSCO (extended Synchronous Connections): kết nối đồng bộ mở rộng. • RSSI (Received Signal Strength Indicator): thông báo độ mạnh của tín hiệu nhận được. • API (Application Programming Interface): API là tập các chức năng được cung cấp bởi một hệ thống và tập hợp các API này thể hiện chức năng của hệ thống đó. • Cleanup stack: Một ngăn xếp đặc biệt lưu giữ các biến tự động (biến cục bộ) là các con trỏ trỏ đến vùng nhớ heap để có thể giải phóng các vùng nhớ này khi hàm chứa biến tự động bị thoát do lỗi môi trường • Descriptor : Kiểu dữ liệu trên Symbian, có thể được dùng để biểu diễn chuỗi hoặc dữ liệu nhị phân. Đào Quý Thái An – Trần Thị Mỹ Hạnh 226 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa • EPOC (Electronic Pocket Communication): Thế hệ cũ của hệ điều hành Symbian. Epoc vẫn còn được sử dụng trong một số phần trên hệ điều hành Symbian như trên Emulator hay cấu trúc thư mục. • J2ME (Java 2 Platform, Mirco Edition): Bản phân phối của nền hệ thống Java nhắm đến các thiết bị gia dụng, thiết bị truyền thông nhỏ. Công nghệ J2ME gồm máy ảo Java và tập các API được thiết kế cho môi trường trên các thiết bị này. • Leave: Khả năng ngắt hoạt động tại hàm nơi đó xảy ra lỗi môi trường và chuyển đến phần xử lý lỗi. Các hàm có thể leave có tên hàm kết thúc bằng chữ cái L. • Nền hệ thống (Platform): Một tập công nghệ được xem như là nền tảng cho các ứng dụng thế giới thực hoặc cho các nền hệ thống cao hơn. Hệ điều hành Symbian là nền hệ thống cho hệ thống giao diện như Series 60 hay UIQ và sự kết hợp Symbian và hệ thống giao diện tạo nền hệ thống cho ứng dụng Symbian. • UID (Unique Identifier) - Định danh: số xác định duy nhất cho một loại chương trình hay phân biệt gữa các ứng dụng trong hệ điều hành Symbian. Các giá trị định danh này là duy nhất trên toàn thiết bị dùng hệ điều hành Symbian. PHỤ LỤC B : Hướng dẫn sử dụng chương trình PbkExchange 1. Sử dụng ứng dụng PbkExchange trên điện thoại : Giao diện chính của ứng dụng trên điện thoại : Đào Quý Thái An – Trần Thị Mỹ Hạnh 227 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình B - 1 Giao diện ứng dụng trên điện thoại. • Khi thực hiện trao đổi phonebook giữa hai điện thoại, một điện thoại phải đóng vai trò Server : khởi tạo và quảng bá dịch vụ Bluetooth tới các thiết bị khác, một điện thoại đóng vai trò Client: gửi yêu cầu kết nối tới server. • Khi thực hiện trao đổi phonebook với máy tính, điện thoại đóng vai trò client : gửi yêu cầu kết nối tới máy tính. * Sử dụng Server : Để sử dụng chương trình, trước hết dịch vụ Bluetooth trên thiết bị phải được bật lên và thiết lập ở chế độ mà các thiết bị Bluetooth khác có thể tìm thấy được. Trên menu chính của chương trình chọn vào Start Listen để khởi tạo server, khi đó, dịch vụ Bluetooth Serial Port sẽ được khởi tạo và quảng bá dịch vụ tới các thiết bị khác. Đào Quý Thái An – Trần Thị Mỹ Hạnh 228 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình B - 2 Khởi tạo điện thoại là server Sau đó, Server sẽ ở trạng thái lắng nghe yêu cầu kết nối từ các điện thoại khác, khi đó menu của ứng dụng sẽ chuyển thành : Hình B - 3 Trạng thái lắng nghe Ở đây, người dùng có thể đưa ứng dụng thoát khỏi trạng thái lắng nghe kết nối bằng cách chọn vào mục “Stop Listen”. Khi có một điện thoại khác gửi yêu cầu kết nối tới, nếu thiết bị đó chưa được cấp phép truy cập vào server, một thông báo sẽ hiện lên yêu cầu người dùng xác nhận sự truy cập : Đào Quý Thái An – Trần Thị Mỹ Hạnh 229 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình B - 4 Xác nhận yêu cầu kết nối Khi người dùng đồng ý kết nối, việc kết nối sẽ được thực hiện. Nếu kết nối thành công, việc trao đổi dữ liệu đã sẵn sàng được thực hiện. Khi đó, menu của ứng dụng sẽ chuyển thành : Hình B - 5 Menu sau khi kết nối thành công Người dùng có thể chọn thực hiện các chế độ trao đổi phonebook là : truyền toàn bộ phonebook tới máy được kết nối (chọn mục : Send PhoneBook) hoặc chọn chế độ là chọn các contact sẽ truyền (chọn mục : Select Send Item). Khi người dùng chọn mục Select Send Item, một dialog sẽ hiện ra cho phép người dùng chọn các contact sẽ truyền. Việc truyền dữ liệu sẽ diễn ra sau khi người dùng nhấn OK. Đào Quý Thái An – Trần Thị Mỹ Hạnh 230 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình B - 6 Lựa chọn các contact để truyền Khi nhận được dữ liệu từ máy kết nối tới, một thông báo sẽ hiện ra cho người dùng xác nhận xem có thực hiện thêm các contact mới nhận vào phonebook hay không. Việc thêm các contact vào phonebook sẽ diễn ra nếu người dùng chọn Yes, nếu chọn No, dữ liệu nhận được sẽ bị hủy bỏ. Hình B - 7 Sử dụng ứng dụng PbkExchange Để chấm dứt kết nối, người dùng chọn vào mục “Disconnect” trên menu, khi đó, ứng dụng sẽ thực hiện chấm dứt kết nối và chuyển về menu ban đầu như lúc mới khởi tạo. * Sử dụng Client: Sau khi khởi tạo, tại menu của ứng dụng, người dùng chọn vào mục “Connect To Device” : Đào Quý Thái An – Trần Thị Mỹ Hạnh 231 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình B - 8 Khởi tạo điện thoại là client Khi đó, nếu Bluetooth chưa được bật lên, một thông báo sẽ xuất hiện xác nhận xem người dùng có muốn bật Bluetooth lên không. Nếu Bluetooth được bật lên, tiếp đó, ứng dụng sẽ thực hiện việc tìm kiếm thiết bị Bluetooth xung quanh, người dùng sẽ chọn thiết bị để thực hiện kết nối. Hình B - 9 Lựa chọn thiết bị để kết nối Khi đã kết nối thành công, việc trao đổi phonebook được thực hiện giống như đối với Server. 2. Sử dụng ứng dụng PbkExchange trên máy tính : Giao diện của ứng dụng trên điện thoại như sau : Đào Quý Thái An – Trần Thị Mỹ Hạnh 232 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình B - 10 Giao diện ứng dụng PbkExchange trên máy tính. Để có thể kết nối với điện thoại, người dùng phải chọn đúng cổng COM mà driver của USB Bluetooth chỉ định để lắng nghe kết nối tứ điện thoại. Các cổng COM có trên máy được liệt kê trong Combo box để cho người dùng chọn, hoặc người dùng có thể nhập vào bằng bàn phím cổng COM để lắng nghe với định dạng : COMx( với x là số hiệu cổng, ví dụ : COM1, COM2 ...). Khi đã chọn đúng cổng, người dùng nhấn vào nút nhấn Listen để kết nối vào cổng COM đó, khi đó, Driver của USB Bluetooth sẽ tự động thiết lập và quảng bá dịch vụ Bluetooth Serial Port và lắng nghe các yêu cầu kết nối từ điện thoại. Hình B - 11 Combo Box lựa chọn cổng COM Dữ liệu về phonebook được lưu trong file có đường dẫn trong textbox “Data File”. Hình B - 12 File dữ liệu Đào Quý Thái An – Trần Thị Mỹ Hạnh 233 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Các contact của phonebook hiện hành (đang xử lý) được thể hiện trong Listbox : Hình B - 13 Listbox chứa phonebook hiện hành Khung chứa sau thể hiện thông tin vắn tắt về contact đang được chọn trong listbox trên : Hình B - 14 Thông tin sơ lược của một contact Người dùng có thể xem thông tin chi tiết của contact này bằng cách nhấn vào nút Detail, hoặc double-click vào contact trên listbox. Sau khi đã kết nối với điện thoại thành công, người dùng có thể thực hiện truyền dữ liệu sang điện thoại, có thể truyền tất cả các contact có trong listbox hoặc chọn các contact sẽ truyền. Nút nhấn “Send Pbk to phone” sẽ thực hiện truyền toàn bộ phonebook qua điễn thoại, nút “Send Selected Items” sẽ thực hiện truyền các contact được chọn trên listbox qua điện thoại. Đào Quý Thái An – Trần Thị Mỹ Hạnh 234 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Việc truyền dữ liệu chỉ được thực hiện khi có một điện thoại kết nối thành công với máy tính. Ngoài ra, chương trình còn cho phép người dùng tạo ra các contact trên máy tính để truyền qua điện thoại. Khi nhấn vào nút “New Contact”, một dialog sẽ hiện ra cho phép nhập các thông tin của một contact mới : Hình B - 15 Dialog NewContact Một số chức năng khác của ứng dụng như : lưu file, nạp file, xóa contact ra khỏi phonebook, hiển thị một vài thông tin liên quan đến chương trình trong textbox “log” như có kết nối thành công hay không, cổng COM có sẵn sàng hay không, các thông tin về quá trình trao đổi dữ liệu. Hình B - 16 Textbox Log Đào Quý Thái An – Trần Thị Mỹ Hạnh 235 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa PHỤ LỤC C : Xây dựng ứng dụng HelloWorld trên Symbian với Series 60 SDK v1.2 Trong phần này, chúng ta sẽ xây dựng một ứng dụng HelloWorld xuất ra màn hình một lời chào HelloWorld nhằm minh họa cho việc xây dựng ứng dụng với Series 60 SDK và tạo file cài đặt (.sis) của ứng dụng. 1. Cài dặt các chương trình cần thiết : • Microsoft Visual C++ 6.0 ( cần cài thêm service pack, ít nhất là service pack 3) • Cài đặt môi trường thực thi Java, ở đây, do dùng bộ SDK v1.2 nên ta dùng Java Runtime Environment 1.3.1 để phù hợp với các công cụ của bộ SDK. • Cài đặt Perl (Perl được dùng để chạy các Tool cho Symbian như biên dịch, tạo file .sis hay các Tool tiện ích khác...) • Cài đặt bộ Series 60 SDK v1.2. • Cài đặt Application Wizard và MmpClick đi kèm theo bộ SDK theo hướng dẫn cài nằm ở hai thư mục tương ứng là: \Symbian\6.1\Series60\Series60Tools\applicationwizard và \Symbian\6.1\Series60\Series60Tools\mmpclick 2. Tạo Project Sau khi cài đặt thành công bộ SDK và các công cụ như Application Wizard và MmpClick, ta có thể tạo một project mới cho ứng dụng trên Symbian một cách dễ dàng trong Visual C++ 6.0. Trong Visual C++ 6.0 : • Chọn : File-> New • Chọn Series 60 AppWizard v1.9 Đào Quý Thái An – Trần Thị Mỹ Hạnh 236 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa • Nhập tên Project và nơi tạo project, nhấn next để tiếp tục. Hình C - 1 Tạo Project symbian mới trên visual C++ Tiếp đó, ta để nguyên các thiết lập mặc định, nhấn Finish để kết thúc Wizard, khi đó, một màn hình sẽ xuất hiện thông báo các thông tin về ứng dụng sẽ tạo : Đào Quý Thái An – Trần Thị Mỹ Hạnh 237 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Hình C - 2 Thông tin project mới tạo ra Nhấn OK để xác nhận, khi đó, một project mới xây dựng ứng dụng cho Symbian đã được tạo ra. 3. Cấu trúc thư mục của ứng dụng HelloWorld Sau khi kết thúc Wizard tạo ứng dụng, một thư mục mới của ứng dụng được tạo ra có cấu trúc như sau : Hình C - 3 Cấu trúc thư mục của ứng dụng HelloWorld • Thư mục group :Thư mục dự án, chứa file dự án: HelloWorld.mmp, bld.inf. • Thư mục inc : chứa các file Header của các lớp và chứa các file khai báo tài nguyên. • Thư mục src : là thư mục mã nguần, chứa các file cài đặt của chương trình. • Thư mục data : Thư mục dữ liệu: chứa dữ liệu cần cho chương trình ứng dụng. • Thư mục aif : Thư mục thông tin ứng dụng: chứa file tài nguyên .rss để tạo file .aif và các hình ảnh, tài nguyên phục vụ cho ứng dụng. Tập hợp các hình này được lưu trữ trong một file .mbm (multi bitmap). • Thư mục install : chứa các file .pkg, các thành phần cài đặt bổ sung cho ứng dụng như hình nền, file dữ liệu.... Đào Quý Thái An – Trần Thị Mỹ Hạnh 238 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa 4. Mở một project đã có : Để mở một project đã có, ta vào thư mục group của project, click phải vào file .mmp, chọn Create VC Workspace : Hình C - 4 Mở một project đã có Khi đó, project sẽ được tạo một workspace để có thể mở trong Visual C, và để mở project, ta click phải vào file .mmp và chọn “Open VC Workspace” Hình C - 5 Mở một project đã có 5. Xây dựng và biên dịch ứng dụng Ứng dụng có thể được xây dựng và kiểm lỗi ngay trong môi trường VC như các ứng dụng Visual C khác, để có thể biên dịch ứng dụng, có thể chọn từ menu Build hoặc nhấn F7. Để chạy ứng dụng, chọn Execute từ menu Build hoặc nhấn F5, khi đó visual C sẽ yêu cầu chọn đến file thực thi của ứng dụng, ở đây, ta chọn đường dẫn tới máy ảo của Series 60 : Đào Quý Thái An – Trần Thị Mỹ Hạnh 239 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa [nơi cài đặt SDK]\Epoc32\Release\wins\udeb\epoc.exe : Hình C - 6 Chạy ứng dụng HelloWorld Khi đó, máy ảo của Series 60 sẽ được chạy, ta sử dụng các phím di chuyển để chuyển tới ứng dụng mới tạo và chọn mở ứng dụng : Hình C - 7 Ứng dụng HelloWorld Khi đó, chúng ta đã hoàn thành ứng dụng HelloWorld. 6. Tạo file cài đặt cho ứng dụng HelloWorld: Ứng dụng sau khi kiểm thử thành công trên thiết bị ảo, để có thể cài đặt ứng dụng trên điện thoại thật, chúng ta phải tạo file cài đặt .sis cho ứng dụng. Đào Quý Thái An – Trần Thị Mỹ Hạnh 240 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Để tạo file cài đặt cho ứng dụng, chúng ta có thể tạo từ dòng lệnh bằng cách sử dụng lệnh makesis của Symbian, hoặc sử dụng công cụ mmpclick của bộ SDK như sau : + Trước hết phải biên dịch ứng dụng với thiết lập dành cho hệ thống AMRI như sau: Trên thanh công cụ của EPOC, chọn mục “Epoc Package File Utility”, chọn : target? ARMI, và biên dịch lại ứng dụng bằng cách lick vào mục “Epoc Build Utility” trên thanh công cụ của EPOC. Hình C - 8 Biên dịch ứng dụng cho hệ thống ARMI Hoặc có thể biên dịch cho hệ thống ARMI bằng cách click phải vào file .mmp và chọn mục “Build for armi” như sau : Hình C - 9 Biên dịch ứng dụng cho hệ thống ARMI Đào Quý Thái An – Trần Thị Mỹ Hạnh 241 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa Khi đó, một màn hình console sẽ xuất hiện cho biết tình trạng biên dịch và thông báo lỗi nếu có của ứng dụng cho hệ thống ARMI. + Sau khi đã biên dịch ứng dụng dành cho hệ thống ARMI, ta sử dụng công cụ Sisar của bộ SDK để tạo file cài đặt cho ứng dụng như sau: • Mở Sisar : C:\Symbian\6.1\Shared\EPOC32\Tools\sisar\sisar.jar. • Chọn File->New Project và thiết lập các cấu hình cho project Sisar mới : ? Từ Tool? Import PKG file : chọn tới file HelloWorld.pkg trong thư mục install của ứng dụng. ? Trong Tab : Configuration, chọn chỉ định đến thư mục để lưu project và file .sis sẽ tạo ra. Hình C - 10 Tạo file cài đặt • Khi đó, để tạo file .sis, chọn : Tool?Build SIS file, sau đó, một file .sis sẽ được tạo ra trong thư mục project chỉ định ở trên. Đào Quý Thái An – Trần Thị Mỹ Hạnh 242 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa 7. Cài đặt ứng dụng trên thiết bị thật: Sau khi tạo được file .sis, ứng dụng đã sẵn sàng được cài đặt trên điện thoại thật. Để cài đặt ứng dụng có thể sử dụng chức năng cài đặt trên PC của bộ PC Suit hoặc truyền file .sis vào điện thoại (bằng Bluetooth , hồng ngoại, hoặc thông qua Cable) và sử dụng chức năng cài đặt ứng dụng có trên điện thoại. Tài liệu tham khảo Tài liệu viết: [ 1] Đặng Minh Thắng, Chu Nguyên Tú, Xây dựng hệ thống điều khiển máy tính từ xa sử dụng công nghệ Bluetooth, Luận văn cử nhân tin học, Đại học Khoa học Tự nhiên TP.Hồ Chí Minh, 2004. [ 2] Jan Beutel, Oliver Kasten, Matthias Ringwald, Frank Siegemund, Lothar Thiele, Bluetooth Smart Nodes for Mobile Ad-hoc Networks, Swiss National Science Foundation, 2003 [ 3] Nupur Mittal, Bluetooth Technology Models and Future, Exforsys Inc, 2005 [ 4] Charlie White, Bluetooth: Past, Present and Future, CEN talks with Mike Foley, Executive Director, Bluetooth SIG, Digital Media Online, 2005 [ 5] Peter Judge, Why Bluetooth version 2 matters, Techworld, 2005 [ 6] Forum Nokia – Bluetooth Technology Overview – Nokia, 2003 [ 7] David Kammer, Gordon McNutt, Brian Senese, Jennifer Bray, The Short Range Interconnect Solution Application Developer’s Guide, Synpress , 2002. [ 8] Atmel Corporation– The Bluetooth™ Wireless Technology White Paper,2000 [ 9] Sil Janssens, Preliminary study:BLUETOOTH SECURITY, 2004 [ 10] Jahanzeb Khan, Anis Khwaja, Building Secure Wireless Networks with 802.11, Wiley Publishing, Inc., Indianapolis, Indiana, 2003 Đào Quý Thái An – Trần Thị Mỹ Hạnh 243 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa [ 11] Steven Vittitoe, Bluetooth Security, SANS Institute 2004, [ 12] By Michelle Man, BLUETOOTH AND WI-FI, Socket Communications, Inc.,2002 [ 13] Pico Communications, A Comparison of Bluetooth™ and Wi-Fi™ (802.11b), Pico Communications, 2001. [ 14] Dr. Peter Driessen, Bluetooth Evaluation Project, BlueSuit Research, 2001. [ 15] Eric Holland, Understanding Your Wireless Options, Sensors online, 2004 [ 16] Bluetooth– Specification of the Bluetooth System, Bluetooth, 2004. [ 17] Forum Nokia – Developer Platform 1.0 for Series 60: Getting Started with C++ Application Development - Nokia, 2003 [ 18] Forum Nokia – Series 60 Application Framework Handbook - Nokia, 2002 [ 19] Forum Nokia – Introduction to Series 60 Applications for C++ Developers - Nokia, 2002 [ 20] Forum Nokia – Setting Up and Using Bluetooth Hardware with Development Tools - Nokia, 2004 [ 21] Forum Nokia – Designing Bluetooth Applications in C++- Nokia, 2004 [ 22] Nokia – Series 60 SDK Help – Nokia Series 60 SDK 1.2 [ 23] Forum Nokia – Using Contact APIs – Nokia, 2004 Website: [ 24] Symbian, [ 25] Forum Nokia, [ 26] Palo wireless, Đào Quý Thái An – Trần Thị Mỹ Hạnh 244 Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa [ 27] [ 28] [ 29] [ 30 [ 31] The Codeproject, [ 32] The Codeguru, [ 33] SourceForge, [ 34] Experts Exchange, [ 35] The NewLC, [ 36] Forum GSM , www.gsm.com.vn/forum/ [ 37] Series 60, www.Series60.com Đào Quý Thái An – Trần Thị Mỹ Hạnh 245

Các file đính kèm theo tài liệu này:

  • pdfCNTT1032.pdf
Tài liệu liên quan