Example #1
0
        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);
        }
Example #2
0
        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);
        }