bluetooth-lowenergy - 如何使用网络蓝牙将存在 CRC 的命令正确发送到特征?
问题描述
我收到了要发送到 BLE 设备的命令,它应该如下所示:
<code>{data}<CRC>
WEB-Bluetooth 是否支持这种类型的命令?如果是怎么寄?
我尝试过但失败的是,例如。命令应该是“R”,“数据”是可选的。所以我的步骤: 1. 将 'R' 转换为 ASCII 码 2. 对于 CRC,我从这个链接http://www.sunshine2k.de/coding/javascript/crc/crc_js.html 'Result CRC value' 最终转换为二进制收到 2 个字节。所以我把它传递给特征:
someCahracteristic.writeValue(new Uint8Array([22, 22, 22]));
# Numbers for this example are random
尝试为每个可用特征设置侦听器“characteristicvaluechanged”,但未收到响应。
有什么帮助吗?
PS另一个我的数据接收东西很好用。但是根据设备文档,有效的命令格式不同。问题仅在于这种格式的命令
<code>{data}<CRC>
解决方案
从 Web 蓝牙的角度来看,CRC 值只是正在写入的特征值的一部分,因此应该支持这一点。
仔细检查计算 CRC 的步骤。“R”的 ASCII 值为 0x52。您的设备是否需要 CRC-8?CRC-16?如果 CRC 是多字节的,它是否期望它是 little-endian?大端?
推荐阅读
- python - OpenCV 从背景中提取具有额外对比度的形状
- c# - 向 IWebElement 添加事件处理程序或侦听器?
- laravel - 我希望项目属于它们相关的类别
- c# - 启动后执行异步代码,一旦 API 用于请求
- arrays - 在 C 中返回任意长度的 char 数组?
- javascript - 在 d3.js 地图中显示悬停值的问题
- go - 如何获取 Go Delve 调试器(dlv)“显示”命令以显示切片或映射的所有值
- c++ - 是否可以使用其基类构造函数创建派生类的指针而不修改派生类的布局?
- python - 在 numpy 库中苦苦挣扎 where()
- python - 如何让python docx只写斜体