toBytes method

Uint8List toBytes()

Implementation

Uint8List toBytes() {
  //structure:
  //magic ID (4 bytes)
  //device index (4 bytes)
  //command ID (4 bytes)
  //data length (4 bytes)
  // data in pkg (variable)

  final buffer = Uint8List(kHeaderLength + restOfPkt.lengthInBytes);
  buffer.setRange(0, 4, ascii.encode(kHeaderMagic));
  final byteDataView = ByteData.view(buffer.buffer);
  byteDataView.setUint32(4, deviceIndex, Endian.little);
  byteDataView.setUint32(8, commandId, Endian.little);
  byteDataView.setUint32(12, restOfPkt.length, Endian.little);
  buffer.setRange(
    kHeaderLength,
    kHeaderLength + restOfPkt.lengthInBytes,
    restOfPkt,
  );
  return buffer;
}