程序开源地址为:https://gitee.com/miuser00/blecomm
基本介绍
BLEComm基于Windows10新加入的的BLE通讯API编写完成,可以完成设备搜索、服务及特征读写等基本蓝牙调试功能。支持设备端Indicate和Notify消息推送,支持RSSI蓝牙发射信号强度读取(需要硬件支持),支持数据自动解码,支持隐藏及离线设备检索等蓝牙调试等功能。
BLEComm采用C#编写,基于.Net 4.5.2框架,支持Windows10以上64位操作系统,代码部分采用Mit授权,便于您进行移植。 使用中有任何问题欢迎加群与作者直接交流,QQ群:970858559 目前市面上关于Windows10的BLE相关的介绍文章比较少,再加上Windows10的 BLE API尚不十分完善,程序目前在兼容性和稳定性方面均劣于Android和IOS的表现,对于各类电脑自带的BLE设备也缺乏足够的测试,因此使用中bug难免,希望您愿意同我一并不断完善和改进这个软件,谢谢!
功能简介
软件示意图:
1.设备搜索区
点击搜索按钮可以列出当前射频信号覆盖区域的所有BLE设备,根据国际蓝牙组织规定,每个蓝牙设备都拥有全球唯一的ID,同时设备厂商也提供了更友好的设备名供用户识别,但该名称并不唯一。
设备有可配对,不可配对,已经配对和未配对这两个状态位,配对后的设备访问会更加流畅,即使设备处于节能状态仍能在列表中显示,否则当设备进入节能状态,设备在列表中就会消失,这时可以通过点选 “显示离线设备” 复选框进行显示。
对于有些不想让用户在系统蓝牙配对搜索到的设备,该设备名可能为空,这时可以通过点选“显示隐藏设备”复选框进行显示
部分协议较新的高级蓝牙设备会自主上报接收到的信号强度,这时可以通过点击“读取信号强度”按键更新该字段的数值,该数值通常为负数,约大值说明信号越强,如-60dbm >-90dbm
2.设备状态区
当双击设备列表框中的条目后,该蓝牙设备即被选中出现在这个区域,设备名和设备ID指示了当前选中的设备,状态栏的颜色表示连接的状态,白色为连接中,红色为连接失败,绿色为连接成功,点击配对可以重新连接。
对于尚未配对的蓝牙,由于收发时隙尚未同步,可能需要多次配对才能连接成功,且连接后设备可能因为进入休眠状态而丢失信号连接。这是可以在windows系统中通过绑定配对该设备,这样连接就会变得更加稳定。
3.特征写入和读取
对于BLE设备,每个设备可以有若干个服务,每个服务下又有若干个特征。可以把特征看成是一个带有属性的参数,有的参数可以被读取,有的可以被写入,有的可以同时被读写,还有一些支持推送服务。当读取并选中设备对应的服务和特征后,可以根据特征类型进行访问,如果是特征是可读的,则可以点击Read按钮,如果该服务特征支持推送,则该特征对应的参数的值发生变化,则相应的矩形框会发出蓝色的闪烁,推送分为Indicate和Notify,Indicate是可靠的信息推送,收到后系统会发送确认。Notify是仅推送,数据收到后不确认。收到的数据最终同主动读取的数据一样都会被显示在数据区。
读取(或推送)到的数据分为整数、UTF-8字符串、和Hex字符串,32位整数和UTF-8是最常见的数据类型,对于用户自定义二进制数据或者未被识别的数据将通过Hex方式显示。对于不支持读取操作的服务特征,改部分为灰色。
对于支持写入操作的服务特征,写入按钮是正常的,如果不支持写入,则写入按钮会变为灰色。用户需要按照设备约定的数据类型输入数据,数据类型可以是32位整数,UTF-8字符串,或者直接以形如 “FF FF FF FF” 的Hex字符串写入。
4.Log记录和状态栏
操作过程的具体步骤可以在Log记录区看到,状态栏底部可以下载到说明书和源码。该部分最大长度为2000字节,超出部分会被自动删除。
软硬件兼容性
1 BLEComm使用的API为Windows10新增部分,因此无法支持Windows7/8以及更早的操作系统。最低系统需求为64位版的Windows10
2 蓝牙设备分为经典蓝牙(主要用于蓝牙耳机)和BLE蓝牙,本软件仅支持BLE蓝牙,因此如果您的硬件蓝牙比较老,可能即使电脑支持蓝牙也无法使用本软件,此时可以通过外购USB蓝牙适配器(推荐选择支持蓝牙5.1双模的蓝牙适配器)即可正常使用。
开发者消息
本BLE工具的开发初衷是为了便于笔者进行蓝牙设备的开发。目前笔者正在用上海合宙社区的air101/air103系列Lua单片机和沁恒公司出品的CH573开发硬件项目前期的主要调试设备是手机版本的蓝牙调试助手和微信小程序的蓝牙调试助手,一边写蓝牙编码一边要调试蓝牙,需要在手机和电脑之间切换感觉比较麻烦于是就开发了这个小软件,希望能对您的开发有帮助。
本程序以C#语言,采用Winform方式编写,代码完全开源。编写过程主要参考了微软的 BT_Windows10_Sample,官方例程,对于疑难问题则参考了网上论坛一些大神的回复,在此向他们表示由衷的感谢。
请问能移植到.net core 6.0吗?
问下为何显示不可连接,但是windows是可以连接到蓝牙热点的,用blecomm却不行?是否需要设置权限?