public override string ToString() { string output = $"MMSI: {MMSI} Type: {MessageType} "; switch (MessageType) { case 1: case 2: case 3: output += PositionReport?.ToString(); break; case 4: output += BaseStationReport?.ToString(); break; case 5: output += VoygageReport?.ToString(); break; default: output += "unsupported messagetype"; break; } return(output); }
public static AisMessage DecodeAisString(string armoredString) { var aisMsg = new AisMessage(); string binary = DecodeVDXArmoredString(armoredString); aisMsg.MessageType = Convert.ToInt32(binary.Substring(0, 6), 2); aisMsg.RepeatIndicator = Convert.ToInt32(binary.Substring(6, 2), 2); aisMsg.MMSI = Convert.ToInt32(binary.Substring(8, 30), 2); switch (aisMsg.MessageType) { case 1: case 2: case 3: aisMsg.PositionReport = PositionReport.CreateFromBinary(binary); break; case 4: aisMsg.BaseStationReport = BaseStationReport.CreateFromBinary(binary); break; case 5: aisMsg.VoygageReport = VoyageReport.CreateFromBinary(binary); break; } return(aisMsg); }