C# 蓝牙开发你必须知道
无线,无网络环境上位机与下位机连接方式比较常见的就是蓝牙与串口,这里记录回顾一下这段时间蓝牙开发方面的记录。
蓝牙分为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字节!!!
C# 蓝牙开发你必须知道的更多相关文章
- 浅谈Bluetooth蓝牙开发
前言:项目用到蓝牙开发,具体蓝牙获取硬件传感器中的数据. 因为没有蓝牙开发的相关经验,决定先了解一些蓝牙开发的知识,再去看之前同事写的蓝牙相关代码. ------------------------- ...
- Windows Phone 8.1低功耗蓝牙开发-Nokia Treasure Tag
1. 引言 上一篇文章<Windows 8.1 低功耗蓝牙开发>讲述了如何在Windows 8.1平台上创建低功耗蓝牙应用,并且以TI的Sensor Tag为例,给出了代码步骤和演示.其实 ...
- Qt on Android 蓝牙开发
版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载. 最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本 ...
- iOS蓝牙开发(二)蓝牙相关基础知识
原文链接: http://liuyanwei.jumppo.com/2015/07/17/ios-BLE-1.html iOS蓝牙开发(一)蓝牙相关基础知识: 蓝牙常见名称和缩写 MFI ====== ...
- iOS-BLE蓝牙开发持续更新
文/煜寒了(简书作者)原文链接:http://www.jianshu.com/p/84b5b834b942著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 在写这个博客之前,空余时间抽看 ...
- iOS-BLE蓝牙开发
Demo地址:WEBlueToothManager 在写这个博客之前,空余时间抽看了近一个月的文档和Demo,系统给的解释很详细,接口也比较实用,唯独有一点,对于设备 的唯一标示,网上众说纷纭,在这里 ...
- Android 蓝牙开发(整理大全)
Android蓝牙开发 鉴于国内Android蓝牙开发的例子很少,以及蓝牙开发也比较少用到,所以找的资料不是很全. (一): 由于Android蓝牙的通信都需要用到UUID,如果由手机发起搜索,当搜索 ...
- iOS 蓝牙开发资料记录
一.蓝牙基础认识: 1.iOS蓝牙开发: iOS蓝牙开发:蓝牙连接和数据读写 iOS蓝牙后台运行 iOS关于app连接已配对设备的问题(ancs协议的锅) iOS蓝牙空中 ...
- Android 开发 蓝牙开发
前言 蓝牙开发其实分2个部分,一个是正常蓝牙功能的开发(比如Android蓝牙的互相连接.读取蓝牙列表.文件传输.蓝牙耳机等等).另外一个是BLE蓝牙开发(属于低功耗蓝牙设备,设备大多是血糖仪.蓝牙手 ...
- Android 蓝牙开发
今天给大家带来蓝牙开发的基础,主要展示的是程序搜到蓝牙会通过list展示出来,并实时排序,远近与信号强弱 首先我们要有次jar包 watermark/2/text/aHR0cDovL2Jsb2cuY3 ...
随机推荐
- 网络编程:阻塞I/O和进程模型
父进程和子进程 进程是程序执行的最小单位,一个进程有完整的地址空间.程序计数器等,如果想创建一个新的进程,使用函数 fork 就可以 pid_t fork(void) 返回:在子进程中为0,在父进程中 ...
- 从Tushare获取历史行情数据
从Tushare获取历史行情数据,分为两种,一种是后复权(daily_hfq)数据,一种是不复权(daily)数据,获取到的数据存储在MongoDB数据库中,每个集合(collection)中,数据字 ...
- RPC实战与核心原理之熔断限流
熔断限流 服务端的自我保护 策略 在 RPC 调用中服务端的自我保护策略就是限流 如何实现 方式有很多,比如最简单的计数器,还有可以做到平滑限流的滑动窗口.漏斗算法以及令牌桶算法等等.其中令牌桶算法最 ...
- 中国象棋小游戏(C版)
中国象棋小游戏(C版) 说明: #include<graphics.h> 一个在 C/C++ 中用于图形编程的头文件,主要用于创建和操作图形界面.具有绘制图形.设置颜色.鼠标和键盘时间处理 ...
- AI写程序: 多线程网络扫描网段ip工具
IP Scanner - 多线程网络扫描工具 项目简介 IP Scanner 是一个基于 Python 开发的网络扫描工具,它能够快速扫描指定网段内的活动 IP 地址.该工具采用多线程技术提高扫描效率 ...
- CAE科普!电池仿真的必要性
在当前高油价与低排放的双重挑战下,新能源汽车以其动力电池驱动的特性成为了低碳环保.节能减排的必然选择.然而,电池系统性能的好坏直接关系到新能源电动汽车的行驶里程和使用便利性,其中充电时间.效率.能量密 ...
- SolidWorks Flexnet Serve 正在启动...
SolidWorks Flexnet Serve 正在启动... 解决方案 设置->主页->电脑名称改成英文 电脑重启 具体流程 事情是这样,当我在安装solidworks2022时候发现 ...
- Java源码分析系列笔记-12.BlockingQueue
目录 1. 是什么 2. 使用场景 3. 如何使用 4. 各种BlockingQueue详解以及对比 5. ArrayBlockingQueue 5.1. 是什么 5.2. 如何使用 5.2.1. 方 ...
- 【闲话 No.1】* 求解??
大概是在中考之前,做过一个奇怪的梦: (梦中)一觉醒来,至公楼前面的空地上突然长出(字面意思)一个非常高级的酒店,huge 突发奇想带着我们去那里全天集训. 每天大概:起床跑去操场进行神秘仪式,然后回 ...
- C# Model(模型) 转 Hashtable
灵感来源:https://blog.csdn.net/anonymous_qsh/article/details/78596695 public static Hashtable ObjectToMa ...