Mam urządzenie mogące przesyłać dane przez WebUSB. W zasadzie opanowałem z nim komunikację. Znalazłem i zastosowałem taki kod odpowiedzialny za obieranie danych:
serial.Port.prototype.connect = function(dwDTERate, bCharFormat, bParityType, bDataBits) {
let readLoop = () => {
this.device_.transferIn(this.endpointIn_, 64).then(result => {
this.onReceive(result.data);
readLoop();
}, error => {
this.onReceiveError(error);
});
};
Zdarzenia onReceive są prawidłowo generowane po odebraniu paczki danych. Jeśli jednak strumień danych jest większy a aplikacja w przeglądarce coś wykonuje zdarza się, że jakaś paczka z danymi zginie. Czy dobrze kombinuję, że przeglądarka nie buforuje danych i muszę funkcję transferIn wywoływać tak często aby zdążyć pobrać wszystkie nadchodzące pakiety ?
Sugerowanym rozwiązaniem przyspieszającym tą operację jest ponoć równoległe wywoływanie dwóch takich funkcji. Jeśli jest to prawda to jak to w praktyce zrobić ?