C# 如何接收蓝牙字符数据

问题描述

公司买了个蓝牙吊秤,想将重量传到系统,我在网上找了一些资料,有以下一段代码:设备是之前与蓝牙匹配了的,可以找到蓝牙GUID也是正确的但在接收数据时,在这句代码停住了,也不报其它错误bluetoothClient=bluetoothListener.AcceptBluetoothClient();应该是不能连接蓝牙不知道有没有大神做过类似的程序,帮忙指点一二感激不尽!!BluetoothListenerbluetoothListener;ThreadlistenThread;BluetoothClientbluetoothClient=newBluetoothClient();boolisConnected;publicboolOpenPort(){InTheHand.Net.Bluetooth.BluetoothRadio.PrimaryRadio.Mode=InTheHand.Net.Bluetooth.RadioMode.Connectable;InTheHand.Net.Sockets.BluetoothClientcli=newInTheHand.Net.Sockets.BluetoothClient();InTheHand.Net.Sockets.BluetoothDeviceInfo[]devices=cli.DiscoverDevices();foreach(InTheHand.Net.Sockets.BluetoothDeviceInfodeviceindevices)//设备搜寻{device.Update();device.Refresh();if(device.DeviceName=="BF10-A"){this.textBox2.Text="设备已找到";break;}}ThreadReceiveThread=newThread(ReceiveData);ReceiveThread.Start();returntrue;}publicvoidReceiveData(){#regiontry{GuidmGUID=Guid.Parse("00001101-0000-1000-8000-00805f9b34fb");bluetoothListener=newBluetoothListener(mGUID);bluetoothListener.Start();bluetoothClient=bluetoothListener.AcceptBluetoothClient();isConnected=true;}catch(Exceptionex){isConnected=false;MessageBox.Show(ex.ToString());}while(isConnected){stringreceive=string.Empty;if(bluetoothClient==null){break;}try{StreampeerStream=bluetoothClient.GetStream();byte[]buffer=newbyte[6];peerStream.Read(buffer,0,6);receive=Encoding.UTF8.GetString(buffer).ToString();textBox1.Text=receive;}catch(System.Exception){}Thread.Sleep(100);}#endregion}

解决方案

解决方案二:
客户端有没有匹配成功?
解决方案三:
估计bluetoothListener.AcceptBluetoothClient();这个会阻塞当前的线程。要写在线程里面,等有蓝牙客户端连接时,就会触发bluetoothListener.AcceptBluetoothClient();的
解决方案四:
设备厂家没给通信协议?确定不需要你先发送什么请求,设备就直接不停给你传数据?按理说这类设备应该都是作为从站,只有主站发送指令才会有响应.否则如果你买了2个秤,还必须弄两个带蓝牙的电脑去读数据?
解决方案五:
代码里面有发现其他蓝牙设备的代码,但是好像没有看到蓝牙设备配对的代码,发送接收数据是以连接上两台设备为基础的摘自BluetoothDeviceInfobd=newBluetoothDeviceInfo(devices[0].DeviceAddress);bluetoothClient=newBluetoothClient();GuidmGUID=Guid.Parse("fa87c0d0-afac-11de-8a39-0800200c9a66");bluetoothClient.Connect(devices[0].DeviceAddress,mGUID);//客户端对地址实现连接,这是一个阻塞线程,需要服务器端的回应ThreadReceiveThread=newThread(ReceiveData);ReceiveThread.Start();

解决方案六:
也可以参考一下开源项目中关于蓝牙连接的介绍
解决方案七:
引用3楼Z65443344的回复:

设备厂家没给通信协议?确定不需要你先发送什么请求,设备就直接不停给你传数据?按理说这类设备应该都是作为从站,只有主站发送指令才会有响应.否则如果你买了2个秤,还必须弄两个带蓝牙的电脑去读数据?

跟厂家要了一个程序,连接上了就自动接收数据这蓝牙吊秤是自动发送数据的
解决方案八:
那有没有确认设备已经配对,并且连接上了?引用6楼fanslion的回复:

跟厂家要了一个程序,连接上了就自动接收数据这蓝牙吊秤是自动发送数据的

解决方案九:
大哥,你这程序后来是怎么实现的,最近我也在做这个功能,求指教
解决方案十:
不用这样,直接用串口通讯就行啊。http://download.csdn.net/detail/jqj2013/8900495看这个资源,如果是计算机的话,更简单。都不用IntheHand
解决方案十一:
串口监听就行~还是不明白的联系我求356873548

时间: 2024-09-15 01:50:49

C# 如何接收蓝牙字符数据的相关文章

如何将从蓝牙接收到的数据还原为初始波形?

问题描述 如何将从蓝牙接收到的数据还原为初始波形? 蓝牙接收的数据是单片机脉搏波传感器采集到的脉搏波数据,需要在手机上将采集到的信号还原为原始脉搏波波形?请问这个怎么实现,求助各位大神了,能帮到忙的话必有酬谢. 解决方案 蓝牙数据是数字信号不是模拟信号啊.所以去看技术文档,数据中是怎么表示波形的,没说明想都别想. 解决方案二: 蓝牙接收的数据都是数字的,你需要对数字按照所规定的协议解码.一般还需要频谱转换,取决于你的单片机怎么编码数据的. 解决方案三: 那得看从蓝牙传来的数据是如何编码波形的,它

图片-MFC 编程。接收到的数据为什么都是一个字符一个字符的,这么多的字符串结束符,新手求教

问题描述 MFC 编程.接收到的数据为什么都是一个字符一个字符的,这么多的字符串结束符,新手求教 收到的数据个数是对的,但就是实际数据和字符结束符一样一半.怎么会这样啊 解决方案 给出完整代码 ..... 解决方案二: 楼主看下MFC编码,我也遇到过转换宽字符后就没问题了

vc-VC++ 串口接收到大量数据 EDIT控件刷新速度跟不上

问题描述 VC++ 串口接收到大量数据 EDIT控件刷新速度跟不上 当串口接收到大量的数据的时候,EDIT控件做为显示数据,但是EDIT的刷新速度跟不上,在串口停止发送后好长时间,,EDIT的数据才能显示完成 波特率是115200的,有什么办法把刷新速度提上去吗? 解决方案 你要用异步,接收到后,不要处理,先放到内存保留,后台开一个线程,逐条处理,处理完一条就通知界面显示 解决方案二: 可以放在字符串变量中,然后每收到多少数据再更新一次界面. 解决方案三: 收发数据用一个单独的线程,主线程只处理

jrtplib 组播- 【愁的肝疼】jrtplib库不能接收组播数据

问题描述 [愁的肝疼]jrtplib库不能接收组播数据 已经憋了1个多月了吧使用jrtplib 无论如何都不能接收组播的数据 单播数据可首发 组播数据可发送 下载了最新版本的 jrtplib-3.9.1在linux下也成功编译了example 示例运行也没啥问题就是组播数据不能接收 我在example1.cpp里添加了 加入组播的代码 也还是不成功 /* Here's a small IPv4 example: it asks for a portbase and a destination a

XML 取得元素的字符数据

xml|数据     列表9-3 中的script 程序使用每个子元素(TITLE.AUTHOR.BINDING.PAGES 与PRICE)的text 属性,来作为取得元素字符数据的快捷方法.例如,下列的程序代码被用来撷取TITLE元素中的字符数据:title.innerText=Document.documentElement.childNodes(0).text;    text 属性不仅提供了目前节点所代表的元素其文字内容,也提供任何后续元素的文字内容.当元素没有任何子元素时,该属性可以正

不同操作系统下PHP接收HTTP POST数据问题

数据|问题 文档版本 版本创建时间创建人备注1.0.0606.12003-6-6郑           昀第一稿     Implementation Scope: 本文档将说明PHP页面接收HTTP组件POST的数据问题.一般来说,POST过来的二进制数据流,只需要PHP用$HTTP_RAW_POST_DATA就可以接收.但是,我们遇到的情况却不是这样. 继续阅读之前,我们假设您熟悉以下知识:n         PHPn         MSXML2.ServerXMLHTTPn       

mfc-MFC如何将不停接收的串口数据绘制成动态波形图,求绘制代码

问题描述 MFC如何将不停接收的串口数据绘制成动态波形图,求绘制代码 怎么处理数据,绘制区才能动态绘制,没有重影呢,求数据处理代码,急死我了,拜托了 解决方案 这种直接用图形控件,或用c# 解决方案二: 用GDI+来做就可以.然后使用双缓冲绘图,可避免重影 解决方案三: 你说的重影是闪烁么,可以用双缓冲绘图来解决

php-PHP做的后台java做的前台,那么后台是怎样接收前台的数据呢?

问题描述 PHP做的后台java做的前台,那么后台是怎样接收前台的数据呢? 我是学PHP的,公司一个网站java做的前端,让我去做网站的后台,应该怎么做呢?是要用框架吗?PHP做的网站后台接收前台数据大多靠的表单提交,那么接收java做的前台也是通过表单提交接收数据吗?$_POST这种吗?有没有前辈遇到过这种情况的,传授下经验可好,十分感谢!! 解决方案 为什么用java做后台,php开发前台呢 解决方案二: Java做的前端?什么意思?Java也是后端语言啊...... 解决方案三: 后台封装

串口通信-C# 如何过滤串口接收到的数据

问题描述 C# 如何过滤串口接收到的数据 我在已经做了一个串口调试工具 接收GPS接收机上的各项数据 我想过滤调一些不必要的数据 请问怎么在输出前给过滤掉再输入到文本框中 例如:接收到的数据(如下) 我只想输出$GPGGA 然后过滤掉$GNGSA $GPGST $GPGSV $GPGGA,024830.00,2307.3027560,N,11221.9341760,E,7,23,0.6,28.4880,M,-6.652,M,99,AAAA*7C $GNGSA,M,3,23,31,19,03,13