来自网络连续剧 api 的数据出现乱码

Data coming from web serial api is garbled

使用网络序列从天平检索数据时 api。我得到以下内容

SԬ-000��.96���

我什么时候应该得到 ST,-00027.96 g

我正在使用以下内容打开端口

await port.open({ baudRate: 2400, databits: 7,  stopbits: 1, parity: "none", flowControl: "none"});

并读取数据

const readerData = await this.reader.read();
var datavalue = (new TextDecoder("utf-8")).decode(readerData.value);

如有任何帮助,我们将不胜感激。

我很确定它曾经有效(尽管我可能是错的)。当然 api 最近更改了参数 baudrate 为 baudRate 所以不确定是否同时更改了其他内容。

这不是经过测试的答案,因为我无法读取有实际数据传入的串口。

但是,看读对的字符和读错的字符是一致的。

读取正确的不会设置奇偶校验位(应该有),读取错误的会设置奇偶校验位。

例如: ASCII 中的小写 g 是八进制 147 - 二进制中的 01100111 - 奇数位集 ASCII 中的大写 S 是八进制 123 - 二进制中的 01010011 - 偶数位设置

因此怀疑正在使用不同的字符编码,特别是因为似乎合并了 T 和 , 来给出一个字符。

那么,现在是否在串行设备上设置了奇偶校验,但在读取字符时没有考虑?是否正在寻找某种 16 位编码或...

抱歉,我无法进一步调查。至少尝试读取设置了奇偶校验位而不是不作为启动器。

所以我错过了 api 的其他更改。

databits 和 stopbits 也改变了它们的 capitalisation。 它们现在是 dataBits 和 stopBits。