我可以使用我的 Web 应用程序通过 Modbus 寻址设备。在这种情况下,寻址意味着发送 Modbus 命令并接收响应。
但是,如果不关闭浏览器并重新启动页面,我将无法重复该过程。
我现在的具体问题是如何调整代码以永久重新发送相同的 modbus 命令?因此,您将按下按钮,而不是在控制台中出现单个响应,而是在响应出现后出现另一个响应并出现另一个响应......
谢谢你的帮助。
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>examplepage</title>
<script>
async function start()
{
// Prompt user to select any serial port.
const port = await navigator.serial.requestPort();
// Wait for the serial port to open.
await port.open({ baudRate: 9600, dataBits: 8, stopBits: 2, ParityType: "none"});
//Übermittle Anfrage um Inhalt von Register anzufordern
const writer = port.writable.getWriter();
//const data = new Uint8Array([0x01, 0x03, 0x00, 0x01, 0x00, 0x02, 0x95, 0xCB]); // request for register
const data = new Uint8Array([0x01, 0x03, 0x00, 0x37, 0x00, 0x02, 0x75, 0xC5]);
await writer.write(data);
// Allow the serial port to be closed later.
writer.releaseLock();
// empfangen
const reader = port.readable.getReader();
// Listen to data coming from the serial device.
while (true) {
const { value, done } = await reader.read();
if (done) {
// Allow the serial port to be closed later.
reader.releaseLock();
break;
}
// value is a Uint8Array.
console.log(value);
}
}
if ("serial" in navigator) {
alert("Your browser supports Web Serial API!");
}
else {alert("Your browser does not support Web Serial API, the latest version of Google Chrome is recommended!");};
</script>
</head>
<body>
<button onclick="start()">Click me</button>
</body>
</html>