Reputation: 109
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();".
Upvotes: 0
Views: 1326
Reputation: 6093
Unless the serial port encounters an error you will always be able to read more data and so done
is never set to true
. If your program has read all the data it intends to then it should stop calling read()
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 calling read()
to pull it out of the buffer.
Upvotes: 1