我想用C#/ Visual Studio 2010構建一個windows應用程序,它將執行以下功能(按順序):對於藍牙操作,我使用32feet .Net庫功能。32feet.net:如何通過BluetoothClient連接到特定的COM端口
查找藍牙設備並將它們列出在列表/組合框中供用戶選擇。 (我想允許用戶選擇多個設備,因此不適用於
SelectBluetoothDeviceDialog
類選項。)。我可以通過BluetoothClient.DiscoverDevices()
獲得設備列表,但它不是異步操作。如果可能的話,我想去異步操作。我讀了關於BluetoothComponent
類與事件DiscoverDevicesProgress
和DiscoverDevicesComplete
和方法DiscoverDevicesAsync
,但不能得到它的工作。如果可能的話,請分享一個示例代碼。用戶從列表中選擇設備並單擊「配對」按鈕。到目前爲止,我可以通過
BluetoothSecurity.PairRequest
成功配對設備。這裏沒有問題。用戶現在從「配對」列表中選擇一個/多個設備並單擊「連接」。在這裏,我嘗試使用
BeginConnect
(用於異步操作)和Connected
類的BluetoothClient
類的方法連接到設備,但遇到異常。
System.Net.Sockets.SocketsException:{ 「一個無效的參數 供給000319002CC6:0000110100001000800000805f9b34fb」}。
上述例外中的數字是我使用BluetoothService.SerialPort
通過的Connected
方法所需的GUID號碼。這會失敗,因爲我的設備希望在COM7端口連接。我不知道如何在特定的COM端口連接/配對設備? 32feet.Net庫函數甚至可能嗎?如果是這樣,請提供代碼示例。
參考文獻注意:我已經閱讀並試圖實現在StackOverflow中下面的文章中解釋的代碼。但是,由於我的要求(允許用戶在COM端口配對並連接到多個設備),我無法運行相同的代碼。但是,它確實有助於理解這個概念。 32feet.net howto discover nearby bluetooth devices async in c#
請求您提供處理這種情況的最佳方法。如果我嘗試使用32feet.Net以外的其他庫/函數,請告訴我。
我的最終目標是同時向連接的設備讀寫數據。所以,截至目前,我只是試圖通過藍牙連接到特定的COM端口。
問候, Rumit
=========================== 編輯:答案爲1更新的信息:
我收到了應該連接到TOSHIBA VIRTUAL BT COM端口的bluetooh設備(補丁)。我很抱歉,如果東芝的信息對於更好地回答這個問題是必要的。我是與港口溝通的新手。到目前爲止,我知道我需要使用COM7。我有一個使用C++構建的應用程序,它通過bluetooh連接到COM7上的相同補丁。但是,我沒有源代碼,並且我被要求在C#中實現相同的實用程序。從你的回覆中,我可以假設C++應用程序可能會使用Windows Sockets 2嗎?
此外,我可以看到一個選項來指定BluetoothEndClient
中的端口(整數值)值,但這也不起作用。所以,我認爲端口不是COM,是其他類型的端口。
問候, Rumit
我已經更新了我原來的職位以獲得更多信息。讓我知道這是否有幫助。另外,關於錯誤代碼,我隨機收到兩個錯誤:10058:Socket被關閉錯誤(可能是由於無效的端口)和10022。 – 2013-03-13 17:39:40
我發現我可以使用WCL庫。但是,在這一點上,我沒有看到指定COM端口的選項。萬一你能提供任何使用WCL的幫助,請告訴我。 – 2013-03-13 22:50:11