Web Serial Api 浏览器打开串口发送指令读写IC卡 |
|||
发布者:广州荣士电子有限公司 发布时间: 2024-6-25 | |||
一、判断浏览器是否支持 web Serial Api
二、Web浏览器选择连接已配对的串口
async function SelectSerial(){ 三、打开串口并设置参数 async function OpenSerial(){if (port==null){ alert('请先选择要操作的串口号!'); return; }else{ var baudSelected = parseInt(document.getElementById("select_btn").value); await port.open({baudRate: baudSelected, }); listenReceived(); alert('串口打开成功!'); } } 四、监听串口数据 async function listenReceived(){if (reading){ console.log("On reading."); return; } reading=true; while (port.readable && reading) { reader = port.readable.getReader(); try { while (true) { const { value, done } = await reader.read(); if (done) {break; } updateInputData(value); } } catch (e) { alert(e); } finally { reader.releaseLock(); } } await port.close(); // 关闭串口 port = null; alert("串口已关闭!"); } 五、关闭已打开的串口 async function CloseSerial(){if ((port == null) || (!port.writable)) { alert("请选择并打开与发卡器相连的串口!"); return; } if (reading) { reading = false; reader?.cancel(); } } 六、向串口发送数据 async function SendData(){if ((port == null) || (!port.writable)) { alert("请选择并打开与发卡器相连的串口!"); return; } var beepdelay=parseInt(document.getElementById("beepdelay").value); const outputData = new Uint8Array(5); outputData[0]=0x03; outputData[1]=0x0f; outputData[2]=beepdelay % 256; outputData[3]=beepdelay / 256; outputData[4]=outputData[1] ^ outputData[2] ^outputData[3]; const writer = port.writable.getWriter(); await writer.write(outputData); // 发送数据 writer.releaseLock(); } |
|||
上一篇:NTAG424 DNA安全加密动态NFC | 下一篇:C++支持多个客户端同时连接的TCP服务端 | ||