无线,无网络环境上位机与下位机连接方式比较常见的就是蓝牙与串口,这里记录回顾一下这段时间蓝牙开发方面的记录。
蓝牙分为BLE蓝牙与经典蓝牙,两者主频都是2.4GHz,传输距离,范围,吞吐量可以自己网上详细查找,这里不详细展出,
1.蓝牙传输必然得有传输协议,最常用的协议就是TLV协议。
T——tag 标签
L——length 长度
V——value 值
这里的TLV只是最基本的结构,有些情况还会存在TLV嵌套,一个良好的协议结构肯定不止这些,必然需要包头包尾,校验位,常见的校验为CRC校验,CRC又分CRC8,CRC16等等 。
2.蓝牙连接都是以蓝牙MAC地址为主的。
3.蓝牙3.0以下都是经典蓝牙,3.0以上都是BLE蓝牙
经典蓝牙
经典蓝牙现在已经有点退环境了,现在主流都是BLE蓝牙,更有甚则双模(同时支持BLE与经典) ,经典蓝牙连接时支持PIN配对,连接方输入的PIN码与被连方预置的PIN不一致将无法配对。
C# 经典蓝牙开发使用InThehand库
源码地址:GitHub - inthehand/32feet: Personal Area Networking for .NET
API地址:Namespaces
1.搜索蓝牙有异步与同步之分,同步不管什么环境没记错需要搜索8-10s才会返回所有的设备列表,异步交互就会更友好一些,搜索到一个返回一个。
BLE蓝牙
BLE蓝牙也可叫低功耗蓝牙,是目前主流的蓝牙连接模式,目前最新好像版本迭代到5.2了,其中每个不同版本都有不同的特点,比如说4.2主打省电,5.0主打物联网。BLE数据传输一定要有注意一个特点,那就是它的一次传输字节最大为——244字节,这是重点需要圈起来的那种,设计协议一定需要考虑。
C#BLE蓝牙开发调用windows提供的nuget包Windows.Devices.Bluetooth,作为微软提供的类库,那必然是很强大的
官网:Bluetooth Low Energy sample - Code Samples | Microsoft Learn
1.BLE蓝牙连接不支持设置PIN码,想要实现类似这种校验的话可以考虑应答机制。
2.一次最多传输244字节!!!
标签:PIN,C#,蓝牙,开发,经典,BLE,连接 From: https://www.cnblogs.com/Zjl-NanKe/p/17361718.html