Ad dpacket it tracing and use Linq to select appropriate packets

This commit is contained in:
Luke Else 2022-02-18 10:31:14 +00:00
parent 2063583714
commit d67d4a8a04
2 changed files with 10 additions and 6 deletions

View File

@ -9,10 +9,12 @@ namespace EFBTracker.Tracking
public class Packet public class Packet
{ {
public string Type { get; set; } 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; Type = type;
Id = id;
Data = data; Data = data;
} }
@ -44,7 +46,7 @@ namespace EFBTracker.Tracking
} }
//Generate new packet object and add to list //Generate new packet object and add to list
packets.Add(new Packet(header, values)); packets.Add(new Packet(header, id, values));
} }
return packets.ToArray(); return packets.ToArray();
} }

View File

@ -14,9 +14,11 @@ namespace EFBTracker.Tracking
public SimPosition(Packet[] data){ public SimPosition(Packet[] data){
if (data[0].Data != null) if (data[0].Data != null)
{ {
Latitude = data[0].Data[0]; //Use Linq to search through the packets for a given id and use that data
Longitude = data[1].Data[0]; Latitude = (data.Where(x => x.Id == 22).Select(x => x.Data[0]).ToArray())[0];
Altitude = Convert.ToInt32(data[2].Data[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]);
} }
} }