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 ...
随机推荐
- SQL 强化练习 (一)
当然, 说明一下, 所有的内容都是网上搬砖的, 也是用作自己练习用的. 我觉得如何去写 sql 这个思考的过程, 远比最终写出来更重要, 毕竟, 我最近有在公司看到了 2000多行的一个 sql. 我 ...
- 用curl测网速统计访问耗时
在<从基础到高级,带你结合案例深入学习curl命令>中,介绍了curl的使用方法,这里介绍一个用于统计响应耗时的最佳实践,助力老铁们合理设置网络超时时间. 下面介绍一个用于统计访问 ...
- Java catch多重异常捕获
摘要:Java中多重异常捕获机制可以更加简洁.有效地处理多个异常,提高了程序的鲁棒性,是编写高质量代码的重要技巧之一. 小编在<浅谈Java异常处理机制>中梳理了异常处理机制,在< ...
- P5749 [IOI2019] 排列鞋子
算是一种新思路吧. 题目要求我们求最少的对调次数,想到了什么?求逆序对个数,我们只需将原来的 \(S_i\) 数组转化一下,求其逆序对个数即可. 转化规则为:从头开始,对于每个还未被赋值的 \(S_i ...
- 【渗透测试】不怎么水的洞之IP伪造
漏洞原理 有些应用程序有记录用户IP的功能或者限制IP白名单的功能,如果应用程序从请求头字段获取用户IP,可能会被攻击者伪造,来达到欺骗服务器的目的. 案例一 发现操作日志页面有个记录用户IP功能 插 ...
- 《Building REST APIs with Flask》读后感
一. 为什么读这本书? 之所以选择这本书其实是因为最近自己在梳理 JWT 的用法.自己曾参与过的一个项目虽然使用的是 Flask 开发,但是授权使用的 PyJWT,当时以为使用 PyJWT 是行业通用 ...
- Xamarin.Android 设置BaseAdapter 的基础公共类
https://blog.csdn.net/sinat_26562875/article/details/51447785 /// <summary> /// 通用适配器 /// < ...
- C# WinForm 查询时设置DataGridView 的颜色
用:CellPainting 事件去修改颜色不会那么卡 private void dataGridView1_CellPainting(object sender, DataGridViewCellP ...
- 前端开发系列029-基础篇之Canvas绘图(压缩)
写这篇文章的原因是因为今天早上的时候,突然遇到个需求需要等比例调整照片的大小(主要是想把图片等比例的缩小),我在Mac上通过图片处理软件捣鼓的时候发现比较麻烦,就随手百度了一个在线修改图片尺寸的网站, ...
- java 自定义窗口
简介 简单 java 核心编程 code /* * @Author: your name * @Date: 2020-11-08 14:44:58 * @LastEditTime: 2020-11-0 ...