deserializePayload method

  1. @override
int deserializePayload(
  1. VehicleStateBuilder builder,
  2. ByteData byteData,
  3. Endian endianness,
  4. 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;
}