.1.zip>中是使用「windows embedded source tools for bluetooth」開發的例項程式。
bluetooth的應用十分廣泛,基於bluetooth的通訊程式開發主要有以下幾個步驟:
服務端* 設定本裝置為可發現。
* 公開服務給其他bluetooth裝置訪問。
* 接受其他bluetooth裝置的鏈結。
* 與鏈結上的bluetooth裝置進行通訊。
客戶端* 發現周邊bluetooth裝置。
* 主動與被發現的裝置發起連線。
* 與鏈結上的bluetooth裝置進行通訊。
在.net compact framework下進行bluetooth開發有幾個可選解決方案
* 可以p/invoke直接呼叫bluetooth的api(btdrt.dll)
* 使用ms的windows embedded source tools for bluetooth
* 使用32feet.net庫
windows embedded source tools for bluetooth提供的api總結如下:
bluetoothradio.cs
分析:public
enum bluetoothradiomode : int
;api:
bool dispose() 設定藍芽裝置執行被發現或讀取當前藍芽裝置是否允許被發現
bluetoothradiomode bluetoothradiomode() 設定或去讀當前藍芽狀態
bluetoothdevicecollection paireddevices() 獲取配對裝置集
class bluetoothradio :bluetoothradio() 初始化藍芽系統構造類
bluetoothendpoint.cs
分析:class bluetoothendpoint 藍芽端點構造類。
構造時包含deviceaddress ,serviceguid,port三個值。
bluetoothservice.cs
分析:class bluetoothservice:bluetoothservice(guid serviceguid) 藍芽服務端構造類,執行該構造類的應該是藍芽通訊中的主裝置。
void start() 啟動服務
void stop() 停止服務
bool started 獲取服務狀態,啟動或停止
bool connectionpending 指示是否有乙個客戶端等待連線到本服務上。
networkstream acceptconnection() 接受乙個連線,執行該函式後,該函式會掛起直到乙個客戶端連線上來。
guid serviceguid 返回本服務的guid
standardservices.cs
分析:class standardservices:standardservices()
標準的藍芽服務列表的guid
guid serialportserviceguid 返回串列埠服務對應的guid
registry.cs
分析:class registry 封裝的登錄檔操作類。
safenativemethods.cs
分析:class safenativemethods 構造類。
匯入以下類庫的api:
const
string bthutil_dll = "bthutil.dll";
const
string btdrt_dll = "btdrt.dll";
const
string winsock_dll = "ws2.dll";
const
string core_dll = "coredll.dll";
bluetoothdevicecollection.cs
分析:class bluetoothdevicecollection 藍芽裝置集類,實際為乙個arraylist();
實測程式例子:
伺服器端:
private
void
setradiomode()
}private
void
startservice()
}// clear and close stream
ns.flush();
ns.close();
}//////
//////
//////
//////
//////
//////
//////
int main()
客戶端:
private
void
paireddevices()
connectservice(devices[0] as bluetoothdevice);
}private
void
connectservice(bluetoothdevice device)
system.threading.thread.sleep(500);
}// close network stream
ns.close();
}int main()
特別說明:
windows embedded source tools for bluetooth不支援自發現功能,所以在客戶端的裝置首先要和服務端的裝置進行配對,所謂配對就是把對端的資訊寫入登錄檔裡面。paireddevices()取出配對資訊,其實就是從登錄檔裡面取資訊,windows embedded source tools for bluetooth這個功能也寫得不好,如果在wince下使用需要修改bluetoothradio.cs檔案的paireddevices屬性。
//const string bt_device_key_name = "software\\microsoft\\bluetooth\\device";
const
string bt_device_key_name = "software\\microsoft\\bluetooth\\device\\pan"; //wince 5
**4在wince下,登錄檔的位置取決於配對裝置的型別,見下圖。
圖1不同型別的配對裝置放在不同的目錄下。
但是在windows mobile下,所有配對資訊存放於software\\microsoft\\bluetooth\\device下。
圖2從上面的例子看windows embedded source tools for bluetooth的功能不是很完整,沒有自動發現功能,也就是通訊雙方在通訊之前需要配對成功,因此這樣很不方便。而且windows embedded source tools for bluetooth只是支援 microsoft windows stack,不支援broadcom stack,後面文章會介紹另外乙個的開源庫32feet.net。這個庫支援自發現功能,同時部分支援broadcom stack。
拷貝工具包
常用工具包封裝.懶得引各種雜七八的包,輕量級包.cglib還是需要的 scope provided 1.0.0 copyutils beancopier封裝.提供簡單的單一複製與list複製.不支援自定義建構函式的類的複製.abc abc copyutil copysigle abc class o...
PyTorch開源物體檢測工具包
mmdetection是乙個基於pytorch的開源物體檢測工具包。該工具包採用模組化設計,支援多種流行的物體檢測和例項分割演算法,並且可以靈活地進行拓展,在速度和視訊記憶體消耗上也具有優勢。目前已經支援單階段檢測器如ssd retinanet fcos fsaf,兩階段檢測器如fasterr cn...
包安裝Python識別驗證碼的開源工具 包安裝
本篇文章個人在青島喝咖啡的時候突然想到的.這兩天就有想寫幾篇關於包安裝的文章,所以回家到之後就奮筆疾書的寫出來發布了 各位 蜘蛛俠 們大家可能在抓取面頁中的 驗證碼而銘心鏤骨,關於這點我想我前目可能能幫助下大家,在python中找到最接近與 殺手別級 的 工具 源於 開源,好東西不敢獨享 調下大家的...