在 Chrome 上的 Web Serial API 中获取连接设备的名称
Posted
技术标签:
【中文标题】在 Chrome 上的 Web Serial API 中获取连接设备的名称【英文标题】:Get name of connected device in Web Serial API on Chrome 【发布时间】:2021-06-30 12:16:46 【问题描述】:根据Chrome Platform Status,自 Chrome V89 以来,Web Serial API 现在处于发布状态。
我在一个通用串行通信应用程序上工作,它允许连接到用户选择的串行端口。在let port = await navigator.serial.requestPort()
之后,用户从 chrome 提供的列表中选择一个端口。此列表包含设备的名称。将所选端口与port.open(conSettings)
连接没有问题。
但是我怎样才能使用 Web Serial API 获取所选端口/设备的名称(从显示的列表中)?这是显示“已连接到...”之类的状态所必需的。没有这个,如果您有多个打开不同端口的选项卡会很混乱。
【问题讨论】:
我不认为你可以,在这一点上。SerialPort.getInfo()
对于 USB 端口返回 usbProductId
和 usbVendorId
,而对于内置端口则没有(在我的 Win10 机器上)。也许这些数据将来会可用:github.com/WICG/serial/issues/128#issuecomment-795870509
感谢@Johnny Mopp。这是同一个帖子,我在最后几分钟偶然发现...
【参考方案1】:
我在 2021 年 3 月 10 日从 reillyeon(这是一位用于 USB 和串行的 Google chromium 软件工程师)找到了this post。他说计划在getInfo()
的返回中添加一个ID,该ID 可用于记住并稍后重新连接到仍在使用的设备。
在this other post 的结尾他写道,他计划“引入一个随机标识符”,而不是“USB 产品名称或序列号字符串”,因为“对指纹的担忧”。
所以看起来,此时什么都没有,也不打算返回设备名。但是当这个实现时,可以组合保存这个ID使用用户提供的设备名称。
无论如何,我的问题是:当用户仍然被请求并允许访问设备时,指纹是一个问题吗?
【讨论】:
以上是关于在 Chrome 上的 Web Serial API 中获取连接设备的名称的主要内容,如果未能解决你的问题,请参考以下文章
Google Chrome Web Serial API:如何配置 Modbus RTU 的参数?
Google Chrome Web Serial API:如何使用十六进制代码寻址 Modbus 设备?
Flutter Web - 如何在桌面上的 Chrome 中测试 Flutter Web 应用程序打开?
Arduino IDE for ESP8266教程 创建WIFI AP模式