diff --git a/Tracking/Packet.cs b/Tracking/Packet.cs index b4b6a48..249ff64 100644 --- a/Tracking/Packet.cs +++ b/Tracking/Packet.cs @@ -9,10 +9,12 @@ namespace EFBTracker.Tracking public class Packet { public string Type { get; set; } - public float[]? Data { get; set; } + public int Id { get; set; } + public float[] Data { get; set; } = new float[4]; - public Packet(string type, float[] data){ + public Packet(string type, int id, float[] data){ Type = type; + Id = id; Data = data; } @@ -44,7 +46,7 @@ namespace EFBTracker.Tracking } //Generate new packet object and add to list - packets.Add(new Packet(header, values)); + packets.Add(new Packet(header, id, values)); } return packets.ToArray(); } diff --git a/Tracking/SimPosition.cs b/Tracking/SimPosition.cs index 7b7e714..7302b1e 100644 --- a/Tracking/SimPosition.cs +++ b/Tracking/SimPosition.cs @@ -14,9 +14,11 @@ namespace EFBTracker.Tracking public SimPosition(Packet[] data){ if (data[0].Data != null) { - Latitude = data[0].Data[0]; - Longitude = data[1].Data[0]; - Altitude = Convert.ToInt32(data[2].Data[0]); + //Use Linq to search through the packets for a given id and use that data + Latitude = (data.Where(x => x.Id == 22).Select(x => x.Data[0]).ToArray())[0]; + Longitude = (data.Where(x => x.Id == 23).Select(x => x.Data[0]).ToArray())[0]; + Altitude = Convert.ToInt32((data.Where(x => x.Id == 24).Select(x => x.Data[0]).ToArray())[0]); + } }