<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于BlueZ協(xié)議棧的嵌入式系統無(wú)線(xiàn)通信實(shí)現

基于BlueZ協(xié)議棧的嵌入式系統無(wú)線(xiàn)通信實(shí)現

作者: 時(shí)間:2010-07-29 來(lái)源:網(wǎng)絡(luò ) 收藏

(1) 生成交叉編譯器,創(chuàng )建交叉編譯環(huán)境
(2) 編譯、配置實(shí)驗開(kāi)發(fā)平臺上的 Linux內核
(3) 安裝 軟件包
(4) 編譯實(shí)驗開(kāi)發(fā)平臺上的Linux內核
(5) 向s3c2410a實(shí)驗平臺移植 通過(guò)上述步驟完成了藍牙的移植后,一個(gè)藍牙應用開(kāi)發(fā)平臺就搭建

本文引用地址:http://dyxdggzs.com/article/151711.htm

4、文件傳輸功能的
如上步驟成功移植藍牙后,一個(gè)完整的藍牙應用開(kāi)發(fā)平臺就已經(jīng)搭建好了,本文將利用BlueZ提供的API函數在RFCOMM層上藍牙文件傳輸的功能,所采用的路徑為:射頻(RF)―基帶與鏈路控制(BBLC)―主機控制接口(HCI)―邏輯鏈路與適配協(xié)議(L2CAP)―串口仿真(RFCOMM)―對象交換協(xié)議(OBEX)。它的分為客戶(hù)端程序和服務(wù)器端程序,流程圖如圖2所示。

2反映了通過(guò)藍牙實(shí)現文件從客戶(hù)端傳輸一個(gè)文件到服務(wù)器的過(guò)程,其中用到的協(xié)議棧中的API函數以及針對藍牙通信的設置如下 : (1)int socket(int domain, int type,int protocol) 通過(guò)這個(gè)函數建立一個(gè)套接字,其中參數 domain說(shuō)明網(wǎng)絡(luò )程序所用的通訊協(xié)議族,本實(shí)驗中我們用的是藍牙官方協(xié)議棧BlueZ,所以我們的 domain取值AF_BLUETOOTH,type
我們采用可靠的面向連接的 SOCK_STREAM,protocol我們采用的代表串口仿真的 BTPROTO_RFCOMM。
(2) int bind(int sockfd, struct sockaddr *my_addr, int addrlen)
這個(gè)函數是服務(wù)器端的函數,實(shí)現的是綁定端口功能。在我們的實(shí)驗中,參數 my_addr代表的我們用的是一個(gè)結構體,表示本地地址信息,它的 rc_family我們取為 AF_BLUETOOTH,它的rc_bdaddr我們取可以和任意主機通信的 INADDR_ANY。

(3) int listen(int sockfd,int backlog)
這個(gè)函數是服務(wù)器端的函數,實(shí)現監聽(tīng)端口功能,它和我們普通Linux下的使用方法完全一樣。

(4) int accept(int sockfd, struct sockaddr *addr,int *addrlen)
這個(gè)函數是服務(wù)器端的函數,完成接受客戶(hù)端的鏈接請求,并建立與客戶(hù)端的鏈接的功能。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>