web serial api示例
时间: 2023-07-29 21:07:40 浏览: 167
前端js通过navigator.serial直接连接地磅仪串口显示重量.zip
3星 · 编辑精心推荐
Web Serial API是一个Web API,提供了一种在Web浏览器中通过串行端口连接和通信的方式。以下是一个基本的Web Serial API示例,演示如何与串行设备进行通信。
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Web Serial API Example</title>
</head>
<body>
<button id="connectButton">Connect to Serial Port</button>
<button id="disconnectButton">Disconnect from Serial Port</button>
<textarea id="terminal"></textarea>
<script>
const connectButton = document.querySelector('#connectButton');
const disconnectButton = document.querySelector('#disconnectButton');
const terminal = document.querySelector('#terminal');
let serialPort;
async function connect() {
const filters = [
{ usbVendorId: 0x2341, usbProductId: 0x8036 },
{ usbVendorId: 0x2341, usbProductId: 0x8037 },
{ usbVendorId: 0x2341, usbProductId: 0x804d },
];
serialPort = await navigator.serial.requestPort({ filters });
await serialPort.open({ baudRate: 9600 });
while (serialPort.readable) {
const reader = serialPort.readable.getReader();
try {
while (true) {
const { value, done } = await reader.read();
if (done) {
console.log('[readLoop] DONE', done);
reader.releaseLock();
break;
}
terminal.value += new TextDecoder().decode(value);
}
} catch (error) {
console.log('[readLoop] ERROR', error);
reader.releaseLock();
}
}
}
function disconnect() {
if (serialPort) {
serialPort.close();
serialPort = null;
}
}
connectButton.addEventListener('click', connect);
disconnectButton.addEventListener('click', disconnect);
</script>
</body>
</html>
```
这个示例演示了如何通过Web Serial API连接到一个串行设备,并在文本框中显示接收到的数据。要运行此示例,您需要在支持Web Serial API的浏览器中打开它。注意:Web Serial API在某些浏览器中仍然处于实验阶段,可能需要在设置中启用该功能。
阅读全文