Tejas Chauhan
Tejas Chauhan

Reputation: 109

web serial api readable stream code not work well

 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

Answers (1)

Reilly Grant
Reilly Grant

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

Related Questions