예제 #1
0
        private void ValoresExtendidos(SyrusPacket p)
        {
            string[] items = this.mensaje.Split(';');
            for (int i = 1; i < items.Length; i++)
            {
                string[] partes = items[i].Split('=');
                if (partes.Length > 1)
                {
                    switch (partes[0])
                    {
                    case "ID": p.ID = partes[1]; break;

                    case "AC": p.Aceleracion = ToInt(partes[1]); break;

                    case "AL": p.Altitud = ToInt(partes[1]); break;

                    case "BL": p.Voltaje = ToInt(partes[1]); break;

                    case "CF": p.CellInfo = partes[1]; break;

                    case "CVxx": break;

                    case "DOP": p.PrecisionGPS = partes[1]; break;

                    case "IO": p.InputsOutputs = partes[1]; break;

                    case "IP": p.DireccionIP = partes[1]; break;

                    case "SV": p.Satelites = partes[1]; break;

                    case "VO": p.Odometro = partes[1]; break;
                    }
                }
            }
        }
예제 #2
0
        public static SyrusPacket Decode(string msg)
        {
            if (!msg.StartsWith("REV"))
            {
                return(new SyrusPacket());
            }

            SyrusDecoder dec = new SyrusDecoder(msg);
            SyrusPacket  p   = new SyrusPacket()
            {
                EventIndex      = dec.EventIndex,
                Fecha           = dec.Fecha,
                Hora            = dec.Hora,
                Latitud         = dec.Latitud,
                Longitud        = dec.Longitud,
                Velocidad       = dec.Velocidad,
                Rumbo           = dec.Rumbo,
                PositionFixData = dec.PositionFixData,
                AgeData         = dec.AgeData
            };

            dec.ValoresExtendidos(p);

            return(p);
        }
예제 #3
0
        public static List <SyrusPacket> DecodeMessage(byte[] datos)
        {
            SyrusProcessor proc  = new SyrusProcessor();
            string         texto = Encoding.ASCII.GetString(datos);
            List <string>  lista = LeeMensajes(texto);

            foreach (string msg in lista)
            {
                SyrusPacket p = SyrusDecoder.Decode(msg);
                if (p.OK)
                {
                    proc.mensajes.Add(p);
                }
            }

            return(proc.mensajes);
        }