Google Chrome Web Serial API:如何使用十六进制代码寻址 Modbus 设备?
Posted
技术标签:
【中文标题】Google Chrome Web Serial API:如何使用十六进制代码寻址 Modbus 设备?【英文标题】:Google Chrome Web Serial API: How do I address a Modbus device with a hex code? 【发布时间】:2022-01-03 19:55:54 【问题描述】:我打算通过 Google Chrome 中内置的 Web Serial API 使用 Modbus 来寻址设备。我想用十六进制代码寻址我的设备。下面的截图证明我的设备可以使用这样的工具成功寻址。 因此,该接口使用以下十六进制值寻址:01 03 00 01 00 02 95 CB
我现在的问题是。 Tutorial 仅显示如何将接口寻址为 Uint8Array 或 Text。如何使用 HEX 代码寻址接口?
感谢您的帮助
【问题讨论】:
不太了解您的问题;Uint8Array
是一个 8 位无符号整数数组;你如何设置这个(使用十六进制、十进制、八进制等)与最终结果无关。例如Uint8Array([0x01, 0x03, 0x00, 0x01, 0x00, 0x02, 0x95, 0xCB])
.
【参考方案1】:
如https://developer.mozilla.org/en-US/docs/Web/javascript/Reference/Global_Objects/Uint8Array 中所示,Uint8Array
类型数组表示一个 8 位无符号整数数组。
在 JavaScript 中,0x
用于指示所有后续字符应解释为十六进制(以 16 为基数的数字系统)。
因此,您只需要以下内容:
const writer = port.writable.getWriter();
const data = new Uint8Array([0x01, 0x03, 0x00, 0x01, 0x00, 0x02, 0x95, 0xCB]);
await writer.write(data);
【讨论】:
以上是关于Google Chrome Web Serial API:如何使用十六进制代码寻址 Modbus 设备?的主要内容,如果未能解决你的问题,请参考以下文章
在 Chrome 上的 Web Serial API 中获取连接设备的名称
什么是“必须处理用户手势才能显示权限请求”。 Chrome Web Serial API 中的错误消息?
Install Google Chrome Web Browser on Ubuntu 18.04
在 Chrome 中打开 Sans Google Web 字体渲染
Google Web 字体无法在 iOS 版 Chrome 中加载
Flutter Web:google_sign_in_web:适用于桌面和 iOS。在 Android Chrome 上失败