mirror of
https://github.com/sergeyyarkov/avr128da48_web-serial-example.git
synced 2026-10-11 18:28:58 +03:00
refactored
This commit is contained in:
parent
1f631cecd0
commit
24660ad531
16
web/app.js
16
web/app.js
@ -11,7 +11,11 @@ class Application {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.serialPortHandler = new SerialPortHandler({ baudRate: 9600 });
|
this.serialPortHandler = new SerialPortHandler(
|
||||||
|
{ baudRate: 9600 },
|
||||||
|
() => console.log('Device connected.'),
|
||||||
|
() => console.log('Device disconnected.')
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DOM Elements
|
* DOM Elements
|
||||||
@ -80,9 +84,8 @@ class Application {
|
|||||||
this.$serialLog.innerHTML += data + '\n';
|
this.$serialLog.innerHTML += data + '\n';
|
||||||
await this.serialPortHandler.write(data + '\n');
|
await this.serialPortHandler.write(data + '\n');
|
||||||
const message = await this.serialPortHandler.read();
|
const message = await this.serialPortHandler.read();
|
||||||
this.$serialLog.textContent += message;
|
this.$serialLog.textContent += message.replaceAll(EOT, '');
|
||||||
this.$serialLog.textContent += '\n';
|
console.log('Message received: \n' + message);
|
||||||
console.log(message);
|
|
||||||
}
|
}
|
||||||
this.$serialLog.scrollTo(0, this.$serialLog.scrollHeight);
|
this.$serialLog.scrollTo(0, this.$serialLog.scrollHeight);
|
||||||
}
|
}
|
||||||
@ -130,13 +133,14 @@ class SerialPortHandler {
|
|||||||
async read() {
|
async read() {
|
||||||
const reader = this.port.readable.getReader();
|
const reader = this.port.readable.getReader();
|
||||||
let chunks = '';
|
let chunks = '';
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
const { value, done } = await reader.read();
|
const { value, done } = await reader.read();
|
||||||
const decoded = this.decoder.decode(value);
|
const decoded = this.decoder.decode(value);
|
||||||
|
|
||||||
chunks += decoded;
|
chunks += decoded;
|
||||||
|
|
||||||
if (done || decoded.includes('\u0004')) {
|
if (done || decoded.includes(EOT)) {
|
||||||
console.log('Reading done.');
|
console.log('Reading done.');
|
||||||
reader.releaseLock();
|
reader.releaseLock();
|
||||||
break;
|
break;
|
||||||
@ -148,7 +152,7 @@ class SerialPortHandler {
|
|||||||
|
|
||||||
#setupListeners() {
|
#setupListeners() {
|
||||||
navigator.serial.addEventListener('connect', this.onConnect);
|
navigator.serial.addEventListener('connect', this.onConnect);
|
||||||
navigator.serial.addEventListener('disconnect', this.onDisconnected);
|
navigator.serial.addEventListener('disconnect', this.onDisconnect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -49,6 +49,7 @@ textarea {
|
|||||||
textarea {
|
textarea {
|
||||||
resize: vertical;
|
resize: vertical;
|
||||||
min-height: 200px;
|
min-height: 200px;
|
||||||
|
line-height: 1.4;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
outline: none;
|
outline: none;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user