41 lines
1.0 KiB
Dart
41 lines
1.0 KiB
Dart
// ignore_for_file: constant_identifier_names
|
|
|
|
import 'parser.dart';
|
|
import 'sentence.dart';
|
|
|
|
const TypeABM = "ABM";
|
|
|
|
class ABM {
|
|
int numFragments;
|
|
int fragmentNumber;
|
|
int messageID;
|
|
String mmsi;
|
|
String channel;
|
|
int vdlMessageNumber;
|
|
List<int>
|
|
payload; // Assuming the byte array is represented as a list of integers
|
|
|
|
ABM({
|
|
required this.numFragments,
|
|
required this.fragmentNumber,
|
|
required this.messageID,
|
|
required this.mmsi,
|
|
required this.channel,
|
|
required this.vdlMessageNumber,
|
|
required this.payload,
|
|
});
|
|
static ABM newABM(BaseSentence s) {
|
|
var p = Parser(s);
|
|
return ABM(
|
|
numFragments: p.int64(0, 'number of fragments'),
|
|
fragmentNumber: p.int64(1, 'fragment number'),
|
|
messageID: p.int64(2, 'message ID'),
|
|
mmsi: p.string(3, 'MMSI'),
|
|
channel: p.string(4, 'channel'),
|
|
vdlMessageNumber: p.int64(5, 'VDL message number'),
|
|
payload: p.sixBitASCIIArmour(
|
|
6, p.int64(7, 'number of padding bits'), 'payload'),
|
|
);
|
|
}
|
|
}
|