feed method
Implementation
List<Uint8List> feed(Uint8List chunk) {
final out = <Uint8List>[];
for (var i = 0; i < chunk.length; i++) {
final b = chunk[i];
if (!_in) {
if (b == stx) {
_in = true;
_esc = false;
_payload.clear();
}
continue;
}
if (_esc) {
_payload.add(b);
_esc = false;
continue;
}
if (b == dle) {
_esc = true;
continue;
}
if (b == etx) {
if (includeTrailingControl && i + 1 < chunk.length) {
final n = chunk[i + 1];
if (n < 0x20) {
_payload.add(n);
i++;
}
}
out.add(Uint8List.fromList(_payload));
_payload.clear();
_in = false;
_esc = false;
continue;
}
_payload.add(b);
}
return out;
}