首页 > 编程语言 >C# 蓝牙开发你必须知道

C# 蓝牙开发你必须知道

时间:2023-04-28 11:55:19浏览次数:39  
标签:PIN C# 蓝牙 开发 经典 BLE 连接

        无线,无网络环境上位机与下位机连接方式比较常见的就是蓝牙与串口,这里记录回顾一下这段时间蓝牙开发方面的记录。

        蓝牙分为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

相关文章

  • Centos7安装Redis
    一、安装gcc依赖由于redis是用C语言开发,安装之前必先确认是否安装gcc环境(gcc-v),如果没有安装,执行以下命令进行安装 [root@localhostlocal]#yuminstall-ygcc  二、下载并解压安装包[root@localhostlocal]#wgethttp://download.redis.io/releases/redis-5.0.......
  • Vue3+typescript如何给元素添加一个Ctrl+s的事件,用于保存文件?
    如下代码,建议用这个,e.keyCode已经过时,后面都是用e.key:string.onMounted(()=>{window.addEventListener('keydown',(e)=>{if(e.ctrlKey&&e.key==='s'){//检查是否按下了Ctrl+Se.preventDefault();//阻止默认行为(保存网页)con......
  • 去除vscode顶部栏
    效果:(更高的屏幕占比) 1编辑:/Applications/VisualStudioCode.app/Contents/Resources/app/out/vs/code/electron-main/main.js2找到这行代码newI.BrowserWindow(Ne)改成newI.BrowserWindow({...Ne,frame:false})3设置nativetabs,nativetitle 重启vsco......
  • 聊聊开关和CPU之间故事
    目录开关电报和继电器门电路材料学的发展继电器与哈佛Mark1号真空管与巨人一号晶体管与IBM608计算机2大特性:计算能力和记忆能力作者:小牛呼噜噜|https://xiaoniuhululu.github.io大家好,我是呼噜噜,在先前的一篇文章计算机中数值和字符串怎么用二进制表示?中,我们知道了计算机为......
  • Linux common clock framework(3)_实现逻辑分析
    1.前言前面两篇clockframework的分析文章,分别从clockconsumer和clockprovider的角度,介绍了Linuxkernel怎么管理系统的clock资源,以及devicedriver怎么使用clock资源。本文将深入到clockframework的内部,分析相关的实现逻辑。注:本文使用的kernel版本为linux-3.10.29。虽然最......
  • java 语言与 C语言端 AES (ECB)
    注:java为no-padding注释掉了padding部分(byte数组初始化时为0x00)c为padding0x00(byte数组初始化时为0x00)代码出自网上代码地址githubhttps://github.com/mountwater/AES-128-ECB-java_and_cJAVA代码//CopyrightPopaTiberiu2011//f......
  • Spring 3.x MVC 入门1 -- 图解MVC整体流程
    Springmvc的生命周期开始使用springmvc之前,我们必须需要了解下SPRINGMVC的流程,如下图: 在看下图之前的一些说明:(下面介绍的HandlerMapping,HandlerAdapter,HandlerExceptionResovler,ViewResolver都有个order属性,因为这些接口每一个都可以注册多个实现,order代表他们的执行顺序......
  • LCD、OLED、Mini LED、Micro LED和Smart MNT
    LCD、OLED、MiniLED、MicroLED和SmartMNT是当前比较热门的电视显示技术,它们有如下具体区别:LCDLCD(LiquidCrystalDisplay)是液晶显示技术的英文缩写,它是目前应用最广泛的平面显示技术之一。LCD显示技术的基本原理是:利用两片玻璃基板之间的液晶材料随电压变化而产生光学......
  • 认识HTML5的WebSocket
    在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocketAPI。WebSocket提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看HTML5的WebSocketAPI:它可用于客户端、服务器......
  • Web开发神器,最智能的Javascript IDE——WebStorm
    我的开发很大一部分是和Javascript打交道,很久以来,我一直在Spket、Aptana、VisualStudio、IntelliJIDEA、notepad++、vim等选择中徘徊,因为发现他们都很好,但都缺少我想要的……直到我开始使用WebStorm。 什么是我对JavascriptIDE选择的标准?1、快速智能的代码提示(全项目的)和补全2......