bluetooth-lowenergy - chrome.serial API 能否确保数据完整性?

标签 bluetooth-lowenergy google-chrome-app hid uart data-integrity

我试图了解在我的通信协议(protocol)中包含某种 CRC 或校验和对我来说是否多余。如果任何人都可以与 chrome.serial 和其他 chrome 硬件通信 API 进行对话(例如 chrome.hidchrome.bluetoothLowEnergy、 ...)

最佳答案

串行通信只是一种传输位的方式,其存在的主要原因是它一次传输一位,因此只能在单个通信链路上工作,例如简单的电话线。没有内置的 CRC 或校验和或任何东西。

有许多基于串行通信的系统试图解决通信通常在嘈杂的环境中进行的事实。回到通过电话线调制解调器的时代,您可能必须面对这样一个事实:家里的其他人可能会接听电话线上的另一个分机,并在您的下载中注入(inject)一堆噪音。因此,像 XMODEM 这样的协议(protocol)被发明了,将串行通信包装在一个更强大的框架中。 (然后,当 XMODEM 被证明不可靠时,我们转向 YMODEM 和 ZMODEM。)

根据您正在谈论的内容(例如,通过 25 厘米长的电线连接到 USB 串行端口的 Arduino 等设备),您可能会发现将工作投入到数据校验和中并不值得麻烦,因为干扰的可能性很低,而且后果也微不足道。另一方面,如果您正在与激光武器的 Controller 对话,您可能需要确保您发送的命令是接收到的命令。

我对你提到的其他系统一无所知,但我已经足够老了,早在 80 年代就花了很多时间进行串行通信(现在又对使用 chrome.serial 的设备进行了同样的操作,去搞清楚)。

关于bluetooth-lowenergy - chrome.serial API 能否确保数据完整性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27910200/

相关文章:

macos - 我应该使用 IOKit 或 DriverKIt(或 HIDDriverKit)为 macOS 中的 USB 或蓝牙多点触控设备编写驱动程序吗?

android - 联系信标 : Inconsistent and unreliable results when determining beacon distance

javascript - 无法在 Chrome 应用程序中加载 AWS SDK

css - 如何在 Chrome 打包应用程序中使用自定义/外部字体图标

iOS 通过 Gatt 忽略 HID 消费者页面的输入报告

Android:使用 HID 滑动

bluetooth-lowenergy - C 语言的轻量级蓝牙 LE 库

meteor - 如何使用 Meteor 和 Cordova BLE 插件连接到 BLE 设备

c++ - 如何使用 Bluez5.50 通过 BLE 连接加密数据

javascript - 如何在浏览器/文档之外绘制图形?