Để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.
253 trang |
Chia sẻ: haianh_nguyen | Lượt xem: 1524 | Lượt tải: 0
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:
- CNTT1032.pdf