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; } } } }
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); }
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); }