c 讀藍芽資料 C 如何接收藍芽字元資料

2021-10-13 01:27:13 字數 2564 閱讀 8238

公司買了個藍芽吊秤,想將重量傳到系統,我在網上找了一些資料,有以下一段**:

裝置是之前與藍芽匹配了的,可以找到

藍芽guid也是正確的

但在接收資料時,在這句**停住了,也不報其它錯誤

bluetoothclient = bluetoothlistener.acceptbluetoothclient();

應該是不能連線藍芽

不知道有沒有大神做過類似的程式,幫忙指點一二

感激不盡!!

bluetoothlistener bluetoothlistener ;

thread listenthread;

bluetoothclient bluetoothclient = new bluetoothclient();

bool isconnected;

public bool openport()

inthehand.net.bluetooth.bluetoothradio.primaryradio.mode = inthehand.net.bluetooth.radiomode.connectable;

inthehand.net.sockets.bluetoothclient cli = new inthehand.net.sockets.bluetoothclient();

inthehand.net.sockets.bluetoothdeviceinfo devices = cli.discoverdevices();

foreach (inthehand.net.sockets.bluetoothdeviceinfo device in devices) //裝置搜尋

device.update();

device.refresh();

if (device.devicename == "bf10-a")

this.textbox2.text = "裝置已找到";

break;

thread receivethread = new thread(receivedata);

receivethread.start();

return true;

public void receivedata()

#region

tryguid mguid = guid.parse("00001101-0000-1000-8000-00805f9b34fb");

bluetoothlistener = new bluetoothlistener(mguid);

bluetoothlistener.start();

bluetoothclient = bluetoothlistener.acceptbluetoothclient();

isconnected = true;

catch (exception ex)

isconnected = false;

messagebox.show(ex.tostring());

while (isconnected)

string receive = string.empty;

if (bluetoothclient == null)

break;

trystream peerstream = bluetoothclient.getstream();

byte buffer = new byte[6];

peerstream.read(buffer, 0, 6);

receive = encoding.utf8.getstring(buffer).tostring();

textbox1.text = receive;

catch (system.exception)

thread.sleep(100);

#endregion

客戶端有沒有匹配成功?

估計bluetoothlistener.acceptbluetoothclient();  這個會阻塞當前的執行緒。

裝置廠家沒給通訊協議?確定不需要你先傳送什麼請求,裝置就直接不停給你傳資料?

按理說這類裝置應該都是作為從站,只有主站傳送指令才會有響應.

否則如果你買了2個秤,還必須弄兩個帶藍芽的電腦去讀資料?

**裡面有發現其他藍芽裝置的**,但是好像沒有看到藍芽裝置配對的**,傳送接收資料是以連線上兩台裝置為基礎的

摘自bluetoothdeviceinfo bd = new bluetoothdeviceinfo(devices[0].deviceaddress);

bluetoothclient = new bluetoothclient();

guid mguid = guid.parse("fa87c0d0-afac-11de-8a39-0800200c9a66");

bluetoothclient.connect(devices[0].deviceaddress, mguid);//客戶端對位址實現連線,這是乙個阻塞執行緒,需要伺服器端的回應

thread receivethread = new thread(receivedata);

receivethread.start();

也可以參考一下開源專案中關於藍芽連線的介紹

c 讀藍芽資料 通過藍芽接收資料到c 程式

我正在使用thehand庫 32feet.net 我有乙個啟用藍芽的裝置,我想將裝置連線到我的計算機,然後將資料從裝置傳送到計算機 然後我想用我的程式捕獲這些資訊並進行處理 裝置將傳送3個變數 全部3個浮點數 我如何用藍芽捕獲這些資訊?我之前從未在電腦上使用藍芽 但是不知道我在做什麼,所以我不能讓它...

c 讀藍芽資料 C 程式設計連線藍芽裝置,檔案收發

public partial class form1 form bluetoothradio radio null 藍芽介面卡 string sendfilename null 傳送檔名 bluetoothaddress sendaddress null 傳送目的位址 obexlistener li...

Android藍芽接收分包資料

最近在開發乙個安卓和藍芽光譜儀裝置通訊的程式,用的是傳統藍芽,下位機藍芽傳送的光譜資料比較大,分成了15個包傳送。其中14個包大小290個byte,最後1個包大於100個byte,而且一整個資料報由資料頭 資料長度 資料 資料尾這幾個部分組成,所以接受的時候做了乙個判斷,定義了乙個大容量陣列,用笨方...