| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- var serialPort = null;
- async function SerialConnect() {
- serialPort = await navigator.serial.requestPort();
- // ports = await navigator.serial.getPorts();
- try {
- await serialPort.open({
- baudRate: "115200",
- dataBits: "8",
- stopBits: "1",
- parity: "none",
- flowControl: "none"
- });
- HintWindow("Connected", 3000);
- console.log("Connected");
- ReadUntilClosed();
- } catch (error) {
- if (String(error).indexOf("The port is already open") != -1)
- HintWindow("Port has opened", 3000);
- else
- HintWindow("Open port fail", 3000);
- console.log(error);
- }
- }
- async function ReadUntilClosed() {
- while (serialPort.readable) {
- const serialReader = serialPort.readable.getReader();
- try {
- while (true) {
- const { value, done } = await serialReader.read();
- if (done) {
- // serialReader.releaseLock();
- break;
- }
- if (value) {
- // console.log(value);
- for (let i in value)
- UserDataProcess(value[i]);
- }
- }
- } catch (error) {
- }
- finally {
- serialReader.releaseLock();
- }
- }
- await serialPort.close();
- }
- async function SerialSend(uint8Array) {
- // console.log("#SerialSend", uint8Array);
- console.log("#SerialSend", arrayBuffer2Hex(uint8Array));
- if (serialPort) {
- const writer = serialPort.writable.getWriter();
- await writer.write(uint8Array);
- writer.releaseLock();
- }
- }
- function arrayBuffer2Hex(buffer) {
- const hexArr = Array.prototype.map.call(
- new Uint8Array(buffer),
- function (bit) {
- return "0x" + (('00' + bit.toString(16).toUpperCase()).slice(-2))
- }
- )
- return hexArr.join(', ')
- }
|