serializePayload method
Call to serialize only the payload, no header, returns a int with a serialized size
Implementation
@override
int serializePayload(
imc.RelativeState? message, ByteData byteData, int offset) {
if (message == null) return 0;
var byteOffset = offset;
// field sId
var sIdEncoded = utf8.encode(message.sId);
var sIdSSize = sIdEncoded.length;
byteData.setUint16(byteOffset, sIdSSize, imc.endianSer);
byteOffset += 2;
for (var b in sIdEncoded) {
byteData.setUint8(byteOffset++, b);
}
// field dist
byteData.setFloat32(byteOffset, message.dist, imc.endianSer);
byteOffset += 4;
// field err
byteData.setFloat32(byteOffset, message.err, imc.endianSer);
byteOffset += 4;
// field ctrlImp
byteData.setFloat32(byteOffset, message.ctrlImp, imc.endianSer);
byteOffset += 4;
// field relDirX
byteData.setFloat32(byteOffset, message.relDirX, imc.endianSer);
byteOffset += 4;
// field relDirY
byteData.setFloat32(byteOffset, message.relDirY, imc.endianSer);
byteOffset += 4;
// field relDirZ
byteData.setFloat32(byteOffset, message.relDirZ, imc.endianSer);
byteOffset += 4;
// field errX
byteData.setFloat32(byteOffset, message.errX, imc.endianSer);
byteOffset += 4;
// field errY
byteData.setFloat32(byteOffset, message.errY, imc.endianSer);
byteOffset += 4;
// field errZ
byteData.setFloat32(byteOffset, message.errZ, imc.endianSer);
byteOffset += 4;
// field rfErrX
byteData.setFloat32(byteOffset, message.rfErrX, imc.endianSer);
byteOffset += 4;
// field rfErrY
byteData.setFloat32(byteOffset, message.rfErrY, imc.endianSer);
byteOffset += 4;
// field rfErrZ
byteData.setFloat32(byteOffset, message.rfErrZ, imc.endianSer);
byteOffset += 4;
// field rfErrVx
byteData.setFloat32(byteOffset, message.rfErrVx, imc.endianSer);
byteOffset += 4;
// field rfErrVy
byteData.setFloat32(byteOffset, message.rfErrVy, imc.endianSer);
byteOffset += 4;
// field rfErrVz
byteData.setFloat32(byteOffset, message.rfErrVz, imc.endianSer);
byteOffset += 4;
// field ssX
byteData.setFloat32(byteOffset, message.ssX, imc.endianSer);
byteOffset += 4;
// field ssY
byteData.setFloat32(byteOffset, message.ssY, imc.endianSer);
byteOffset += 4;
// field ssZ
byteData.setFloat32(byteOffset, message.ssZ, imc.endianSer);
byteOffset += 4;
// field virtErrX
byteData.setFloat32(byteOffset, message.virtErrX, imc.endianSer);
byteOffset += 4;
// field virtErrY
byteData.setFloat32(byteOffset, message.virtErrY, imc.endianSer);
byteOffset += 4;
// field virtErrZ
byteData.setFloat32(byteOffset, message.virtErrZ, imc.endianSer);
byteOffset += 4;
return byteOffset - offset;
}