Danh mục tài liệu

Tìm hiểu công nghệ bluetooth và viết ứng dụng minh họa (Đào Quý Thái An vs Trần Thị Mỹ Hạnh)- 4

Số trang: 61      Loại file: pdf      Dung lượng: 1.62 MB      Lượt xem: 12      Lượt tải: 0    
Xem trước 7 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Socket L2CAP, “port” sử dụng là Protocol/Service Multiplexer (PSM) , đối với Bluetooth Socket RFCOMM thì “port” sử dụng là server chanel. + Hàm Connect() được sử dụng : void RSocket::Connect(TSockAddr& anAddr, TRequestStatus &aRequest) Tham số : anAddr : địa chỉ socket của thiết bị. aRequetStatus : Chứa mã lỗi trả về. Địa chỉ của socket được thể hiện bởi lớp TBTSockAddr vốn kế thừa từ lớp TSockAddr. Mỗi thiết bị Bluetooth có một địa chỉ 48 bit được thể hiện bởi lớp TBTDevAddr, lớp TBTSockAddr có hàm SetBTAddr() dùng để gán địa chỉ thiết bị Bluetooth cho đối tượng...
Nội dung trích xuất từ tài liệu:
Tìm hiểu công nghệ bluetooth và viết ứng dụng minh họa (Đào Quý Thái An vs Trần Thị Mỹ Hạnh)- 4Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họasocket L2CAP, “port” sử dụng là Protocol/Service Multiplexer (PSM) , đối vớiBluetooth Socket RFCOMM thì “port” sử dụng là server chanel. + Hàm Connect() được sử dụng : void RSocket::Connect(TSockAddr& anAddr, TRequestStatus &aRequest) Tham số : anAddr : địa chỉ socket của thiết bị. aRequetStatus : Chứa mã lỗi trả về. Địa chỉ của socket được thể hiện bởi lớp TBTSockAddr vốn kế thừa từlớp TSockAddr. Mỗi thiết bị Bluetooth có một địa chỉ 48 bit được thể hiện bởilớp TBTDevAddr, lớp TBTSockAddr có hàm SetBTAddr() dùng để gán địa chỉthiết bị Bluetooth cho đối tượng của lớp này và hàm SetPort() để chọn mộtChannel cụ thể.void SetBTAddr(const TBTDevAddr& aRemote);void SetPort(TUint aPort); Mỗi client phải có các thành phần sau:SocketServer (RSocketServ): Dùng để giao tiếp với socket server của thiết bị.SendingSocket: Dùng để kết nối, nhận và gửi dữ liệu đến server socketĐoạn code sau mô tả việc thực hiện kết nối : RSocketServ SocketServer; TInt err; err = SocketServer.Connect(); User::LeaveIfError(err); RSocket SendingSocket; err = SendingSocket.Open(SocketServer, KBTAddrFamily, KSockStream, KRFCOMM); User::LeaveIfError(err); TBTSockAddr addr;Đào Quý Thái An – Trần Thị Mỹ Hạnh 185Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa TRequestStatus status; addr.SetBTAddr(…); addr.SetPort(…); SendingSocket.Connect(addr, status); // Nhận và gửi dữ liệu ở đây .....7.4.4. Trao đổi dữ liệu thông qua Bluetooth socket : Sau khi thiết lập kết nối thành công, việc nhận và gửi dữ liệu vớiBluetooth socket cũng tương tự như với bất kì loại socket nào khác trênSymbian (IrDA socket, Internet socket).* Để nhận dữ liệu ta có thể dùng các hàm Read(), Recv() , hoặcReceiveOneOrMore().: - void Read( TDes8& aDesc,TRequestStatus& aStatus ); - void Recv( TDes8& aDesc, TUint flags, TRequestStatus& aStatus); - void Recv( TDes8& aDesc, TUint flags, TRequestStatus& aStatus, TSockXfrLength& aLen); - void RecvOneOrMore( TDes8& aDesc, TUint flags, TRequestStatus& aStatus, TSockXfrLength& aLen);Trong đó: + TDes8& aDesc : buffer chứa dữ liệu nhận được.+ TRequestStatus& aStatus : Sau khi hàm kết thúc, biến này chứa mã lỗi trả về.Nếu không có lỗi, giá trị của aStatus là KerrNone. + TUint flags : các thông tin về Protocol, I/O.Đào Quý Thái An – Trần Thị Mỹ Hạnh 186Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa + TsockXfrLength& aLen : Chiều dài dữ liệu nhận được.* Để gửi dữ liệu, ta dùng hàm Write(): + void Write(const TDesC8& aDesc, TRequestStatus& aStatus); + void Send(const TDesC8& aDesc, TUint someFlags, TRequestStatus& aStatus); + void Send(const TDesC8& aDesc, TUint someFlags, TRequestStatus& aStatus, TSockXfrLength& aLen); Trong đó: + TDesC8& aDesc : Dữ liệu cần gửi đi. + TResquestStatus& aStatus : Sau khi hàm kết thúc, mã lỗi được trả về qua biền này. + TUint flags : các thông tin về Protocol, I/O. + TsockXfrLength& aLen : Chiều dài dữ liệu gửi đi.7.5. Bluetooth Service Discovery Database: Mỗi dịch vụ Bluetooth được lưu trong một record trong SDP database,nhờ đó, các thiết bị khác có thể biết được trên thiết bị Bluetooth đó có nhữngdịch vụ nào. Bluetooth Service Discovery Database cho phép các dịch vụ trênnội bộ thiết bị có thể đưa các đặc tính của nó vào trong Bluetooth ServiceDatabase, nhờ đó, các thiết bị Bluetooth khác có thể phát hiện được là dịch vụđó được hỗ trợ trên thiết bị đó.7.5.1. Kết nối vào Bluetooth Service Discovery Database : Để có thể sử dụng Service Discovery Database, client phải thực hiện cácbước sau :Đào Quý Thái An – Trần Thị Mỹ Hạnh 187Tìm hiểu công nghệ Bluetooth và viết ứng dụng minh họa + Tạo một phiên làm việc (session) với đối tượng database RSdp và mởmột kết nối + Tạo ra một phiên làm việc con (subsession) tới đối tượng DatabaseRsdpDatabase và mở kết nối. Một client có thể có nhiều phiên ...

Tài liệu được xem nhiều:

Tài liệu có liên quan: