// TypeDSC type of DSC sentence for Digital Selective Calling Information // ignore_for_file: constant_identifier_names import 'sentence.dart'; import 'parser.dart'; const TypeDSC = "DSC"; // AcknowledgementRequestDSC is type for Acknowledge request const AcknowledgementRequestDSC = "R"; // AcknowledgementDSC is type for Acknowledgement const AcknowledgementDSC = "B"; // AcknowledgementNeitherDSC is type for Neither (end of sequence) const AcknowledgementNeitherDSC = "S"; class DSC { String formatSpecifier; String address; String category; String distressCauseOrTeleCommand1; String commandTypeOrTeleCommand2; String positionOrCanal; String timeOrTelephoneNumber; String mmsi; String distressCause; String acknowledgement; String expansionIndicator; DSC({ required this.formatSpecifier, required this.address, required this.category, required this.distressCauseOrTeleCommand1, required this.commandTypeOrTeleCommand2, required this.positionOrCanal, required this.timeOrTelephoneNumber, required this.mmsi, required this.distressCause, required this.acknowledgement, required this.expansionIndicator, }); static DSC newDSC(BaseSentence s) { var p = Parser(s); return DSC( formatSpecifier: p.string(0, "format specifier"), address: p.string(1, "address"), category: p.string(2, "category"), distressCauseOrTeleCommand1: p.string(3, "cause of the distress or first telecommand"), commandTypeOrTeleCommand2: p.string(4, "type of communication or second telecommand"), positionOrCanal: p.string(5, "position or canal"), timeOrTelephoneNumber: p.string(6, "time or telephone"), mmsi: p.string(7, "MMSI"), distressCause: p.string(8, "distress cause"), acknowledgement: p.enumString(9, "acknowledgement", [ AcknowledgementRequestDSC, " $AcknowledgementRequestDSC", AcknowledgementDSC, " $AcknowledgementDSC", AcknowledgementNeitherDSC, " $AcknowledgementNeitherDSC", ]).trim(), expansionIndicator: p.string(10, "expansion indicator"), ); } }