serializePayload method
Call to serialize only the payload, no header, returns a int with a serialized size
Implementation
@override
int serializePayload(
imc.LeaderState? message, ByteData byteData, int offset) {
if (message == null) return 0;
var byteOffset = offset;
// field groupName
var groupNameEncoded = utf8.encode(message.groupName);
var groupNameSSize = groupNameEncoded.length;
byteData.setUint16(byteOffset, groupNameSSize, imc.endianSer);
byteOffset += 2;
for (var b in groupNameEncoded) {
byteData.setUint8(byteOffset++, b);
}
// field op
byteData.setUint8(byteOffset, message.op.value);
byteOffset += 1;
// field lat
byteData.setFloat64(byteOffset, message.lat, imc.endianSer);
byteOffset += 8;
// field lon
byteData.setFloat64(byteOffset, message.lon, imc.endianSer);
byteOffset += 8;
// field height
byteData.setFloat32(byteOffset, message.height, imc.endianSer);
byteOffset += 4;
// field x
byteData.setFloat32(byteOffset, message.x, imc.endianSer);
byteOffset += 4;
// field y
byteData.setFloat32(byteOffset, message.y, imc.endianSer);
byteOffset += 4;
// field z
byteData.setFloat32(byteOffset, message.z, imc.endianSer);
byteOffset += 4;
// field phi
byteData.setFloat32(byteOffset, message.phi, imc.endianSer);
byteOffset += 4;
// field theta
byteData.setFloat32(byteOffset, message.theta, imc.endianSer);
byteOffset += 4;
// field psi
byteData.setFloat32(byteOffset, message.psi, imc.endianSer);
byteOffset += 4;
// field vx
byteData.setFloat32(byteOffset, message.vx, imc.endianSer);
byteOffset += 4;
// field vy
byteData.setFloat32(byteOffset, message.vy, imc.endianSer);
byteOffset += 4;
// field vz
byteData.setFloat32(byteOffset, message.vz, imc.endianSer);
byteOffset += 4;
// field p
byteData.setFloat32(byteOffset, message.p, imc.endianSer);
byteOffset += 4;
// field q
byteData.setFloat32(byteOffset, message.q, imc.endianSer);
byteOffset += 4;
// field r
byteData.setFloat32(byteOffset, message.r, imc.endianSer);
byteOffset += 4;
// field svx
byteData.setFloat32(byteOffset, message.svx, imc.endianSer);
byteOffset += 4;
// field svy
byteData.setFloat32(byteOffset, message.svy, imc.endianSer);
byteOffset += 4;
// field svz
byteData.setFloat32(byteOffset, message.svz, imc.endianSer);
byteOffset += 4;
return byteOffset - offset;
}