serializeHeader function

int serializeHeader(
  1. ImcMessage message,
  2. ByteData byteData
)

Implementation

int serializeHeader(ImcMessage message, ByteData byteData) {
  var byteOffset = 0;

  byteData.setUint16(byteOffset, message.sync, endianSer);
  byteOffset += 2;
  byteData.setUint16(byteOffset, message.msgId, endianSer);
  byteOffset += 2;
  byteData.setUint16(byteOffset, 0, endianSer); // Temp size
  byteOffset += 2;
  if (message.timestamp == null) {
    // This should not be null, but may happened due to the constructor default value
    print('Timestamp null found for message ${message.abbrev}');
  }
  byteData.setFloat64(
      byteOffset,
      (message.timestamp ?? DateTime.now()).millisecondsSinceEpoch / 1E3,
      endianSer);
  byteOffset += 8;
  byteData.setUint16(byteOffset, message.src, endianSer);
  byteOffset += 2;
  byteData.setUint8(byteOffset, message.srcEnt);
  byteOffset += 1;
  byteData.setUint16(byteOffset, message.dst, endianSer);
  byteOffset += 2;
  byteData.setUint8(byteOffset, message.dstEnt);
  byteOffset += 1;

  return byteOffset;
}