From d67d4a8a0442e865378301ce564bb7d7c2fe7a71 Mon Sep 17 00:00:00 2001 From: Luke Else Date: Fri, 18 Feb 2022 10:31:14 +0000 Subject: [PATCH] Ad dpacket it tracing and use Linq to select appropriate packets --- Tracking/Packet.cs | 8 +++++--- Tracking/SimPosition.cs | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) 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]); + } }