deserializePayload method

  1. @override
int deserializePayload(
  1. RelativeStateBuilder 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.RelativeStateBuilder builder, ByteData byteData,
    Endian endianness, int offset) {
  var byteOffset = offset;

  // field sId
  var sIdSSize = byteData.getUint16(byteOffset, endianness);
  byteOffset += 2;
  var sIdDData = List.filled(sIdSSize, 0);
  for (var i = 0; i < sIdSSize; i++) {
    sIdDData[i] = byteData.getUint8(byteOffset++);
  }
  var sIdDecoded = utf8.decode(sIdDData);
  builder.sId = sIdDecoded;
  // field dist
  builder.dist = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field err
  builder.err = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field ctrlImp
  builder.ctrlImp = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field relDirX
  builder.relDirX = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field relDirY
  builder.relDirY = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field relDirZ
  builder.relDirZ = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field errX
  builder.errX = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field errY
  builder.errY = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field errZ
  builder.errZ = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field rfErrX
  builder.rfErrX = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field rfErrY
  builder.rfErrY = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field rfErrZ
  builder.rfErrZ = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field rfErrVx
  builder.rfErrVx = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field rfErrVy
  builder.rfErrVy = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field rfErrVz
  builder.rfErrVz = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field ssX
  builder.ssX = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field ssY
  builder.ssY = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field ssZ
  builder.ssZ = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field virtErrX
  builder.virtErrX = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field virtErrY
  builder.virtErrY = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;
  // field virtErrZ
  builder.virtErrZ = byteData.getFloat32(byteOffset, endianness);
  byteOffset += 4;

  return byteOffset - offset;
}