serializePayload method

  1. @override
int serializePayload(
  1. DesiredPath? message,
  2. ByteData byteData,
  3. int offset
)
override

Call to serialize only the payload, no header, returns a int with a serialized size

Implementation

@override
int serializePayload(
    imc.DesiredPath? message, ByteData byteData, int offset) {
  if (message == null) return 0;

  var byteOffset = offset;

  // field pathRef
  byteData.setUint32(byteOffset, message.pathRef, imc.endianSer);
  byteOffset += 4;
  // field startLat
  byteData.setFloat64(byteOffset, message.startLat, imc.endianSer);
  byteOffset += 8;
  // field startLon
  byteData.setFloat64(byteOffset, message.startLon, imc.endianSer);
  byteOffset += 8;
  // field startZ
  byteData.setFloat32(byteOffset, message.startZ, imc.endianSer);
  byteOffset += 4;
  // field startZUnits
  byteData.setUint8(byteOffset, message.startZUnits.value);
  byteOffset += 1;
  // field endLat
  byteData.setFloat64(byteOffset, message.endLat, imc.endianSer);
  byteOffset += 8;
  // field endLon
  byteData.setFloat64(byteOffset, message.endLon, imc.endianSer);
  byteOffset += 8;
  // field endZ
  byteData.setFloat32(byteOffset, message.endZ, imc.endianSer);
  byteOffset += 4;
  // field endZUnits
  byteData.setUint8(byteOffset, message.endZUnits.value);
  byteOffset += 1;
  // field speed
  byteData.setFloat32(byteOffset, message.speed, imc.endianSer);
  byteOffset += 4;
  // field speedUnits
  byteData.setUint8(byteOffset, message.speedUnits.value);
  byteOffset += 1;
  // field lradius
  byteData.setFloat32(byteOffset, message.lradius, imc.endianSer);
  byteOffset += 4;
  // field flags
  byteData.setUint8(byteOffset, message.flags.value);
  byteOffset += 1;

  return byteOffset - offset;
}