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