encodeSystemMessage function
List<int>
encodeSystemMessage(
{ - required Location operatorLocation,
- required double operatorAltitude,
- required int areaCount,
- required int areaRadius,
- required double areaCeiling,
- required double areaFloor,
})
Implementation
List<int> encodeSystemMessage({
required Location operatorLocation,
required double operatorAltitude,
required int areaCount,
required int areaRadius,
required double areaCeiling,
required double areaFloor,
}) {
// second byte also contains UA classification flag
final secondByte =
(ClassificationType.europeanUnion.value << 2) +
OperatorLocationType.takeOff.value;
return mergeFieldsToMessage([
encodeField(encodeFirstByte, MessageType.system),
[secondByte],
encodeField(encodeCoordinate, operatorLocation.latitude),
encodeField(encodeCoordinate, operatorLocation.longitude),
encodeField(encodeAreaCount, areaCount),
encodeField(encodeAreaRadius, areaRadius),
encodeField(encodeAltitude, areaCeiling),
encodeField(encodeAltitude, areaFloor),
encodeField(
encodeEUClassification,
const UAClassificationEurope(
uaCategoryEurope: UACategoryEurope.EUOpen,
uaClassEurope: UAClassEurope.EUClass_0,
),
),
encodeField(encodeAltitude, operatorAltitude),
encodeField(encodeODIDEpochTimestamp, DateTime.now()),
[0x00], // filler byte
]);
}