簡體   English   中英

來自 web 串行 api 的數據是亂碼

[英]Data coming from web serial api is garbled

使用 webserial 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 也改變了它們的大小寫。 它們現在是 dataBits 和 stopBits。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM