while (true) {
let { value, done } = await reader.read();
if (done) {
// |reader| has been canceled.
console.log("brack");
break;
}
console.log(value);
console.log()
}
} catch (error) {
// Handle |error|...
} finally {
reader.releaseLock();
console.log("f1");
}
}
when I read data from the serial port, my whole data is perfectly received, but the value of the "done" variable never changes it remains false and the code is stop on this stage " let { value, done } = await the reader.read();".
Unless the serial port encounters an error you will always be able to read more data and so
done
is never set totrue
. If your program has read all the data it intends to then it should stop callingread()
until it wants to receive more data. Note, if the device sends more data than the buffer size specified when opening the port this data may be lost if your application isn't callingread()
to pull it out of the buffer.