deserializePayload method
int
deserializePayload(
- VehicleStateBuilder builder,
- ByteData byteData,
- Endian endianness,
- int offset,
override
Call to deserialize only the payload, no header. The Builder is to allow passing the message to build into. returns a int with a serialized size
Implementation
@override
int deserializePayload(imc.VehicleStateBuilder builder, ByteData byteData,
Endian endianness, int offset) {
var byteOffset = offset;
// field opMode
builder.opMode = imc.VehicleStateEnumOpMode(byteData.getUint8(byteOffset));
byteOffset += 1;
// field errorCount
builder.errorCount = byteData.getUint8(byteOffset);
byteOffset += 1;
// field errorEnts
var errorEntsSSize = byteData.getUint16(byteOffset, endianness);
byteOffset += 2;
var errorEntsDData = List.filled(errorEntsSSize, 0);
for (var i = 0; i < errorEntsSSize; i++) {
errorEntsDData[i] = byteData.getUint8(byteOffset++);
}
var errorEntsDecoded = utf8.decode(errorEntsDData);
builder.errorEnts = errorEntsDecoded;
// field maneuverType
builder.maneuverType = byteData.getUint16(byteOffset, endianness);
byteOffset += 2;
// field maneuverStime
builder.maneuverStime = byteData.getFloat64(byteOffset, endianness);
byteOffset += 8;
// field maneuverEta
builder.maneuverEta = byteData.getUint16(byteOffset, endianness);
byteOffset += 2;
// field controlLoops
builder.controlLoops =
imc.CLoopsMaskBitfield(byteData.getUint32(byteOffset, endianness));
byteOffset += 4;
// field flags
builder.flags =
imc.VehicleStateBitfieldFlags(byteData.getUint8(byteOffset));
byteOffset += 1;
// field lastError
var lastErrorSSize = byteData.getUint16(byteOffset, endianness);
byteOffset += 2;
var lastErrorDData = List.filled(lastErrorSSize, 0);
for (var i = 0; i < lastErrorSSize; i++) {
lastErrorDData[i] = byteData.getUint8(byteOffset++);
}
var lastErrorDecoded = utf8.decode(lastErrorDData);
builder.lastError = lastErrorDecoded;
// field lastErrorTime
builder.lastErrorTime = byteData.getFloat64(byteOffset, endianness);
byteOffset += 8;
return byteOffset - offset;
}