kia*_*ott 5 javascript google-chrome webusb webapi serialapi
下面的代码可以在我的 Xubuntu 机器上运行,但现在我在 Kubuntu 上,它不再工作了 - 它不会打开端口。
Arduino IDE 工作正常(可以向开发板写入代码),我可以在 Chrome 中选择设备 (Arduino Uno),但当我尝试打开端口时,代码将停止:Uncaught (in promise) DOMException: Failed to open serial port或required member baudRate is undefined将出现。
const filters = [
// Filter on devices with the Arduino Uno USB Vendor/Product IDs.
{ usbVendorId: 0x2341, usbProductId: 0x0043 },
{ usbVendorId: 0x2341, usbProductId: 0x0001 },
];
async function getPortAndStartReading() {
if (!portFound) {
const port = await navigator.serial.requestPort({ filters });
await port.open({ baudRate: 9600 }) //problem here
reader = port.readable.getReader();
outputStream = port.writable
readLoop();
if (port) {
connectionToPortSuccessfulMessage = 'Connection successful'
setPortFound(true)
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试按照此更改串行端口上的权限,所以现在如果我运行groups user我得到user : user adm dialout cdrom sudo dip plugdev lpadmin lxd sambashare,但它仍然无法工作。
我还检查了chrome://device-log是否可以找到任何错误,但我得到的只是有关(物理上)添加或删除 USB 设备的信息。
小智 4
我相信成员名称最近已从“baudrate”更改为“baudRate”。至少在我的例子中,从“波特率”(曾经有效)更改为“波特率”为我解决了这个问题。也许 Kubuntu 使用的是旧版 chrome 版本,需要“波特率”。