void adsb_UpdatePlanePosition(object sender, EventArgs e)
{
lock (adsblock)
{
var adsb = ((MissionPlanner.Utilities.adsb.PointLatLngAltHdg)sender);
var id = adsb.Tag;
if (MainV2.instance.adsbPlanes.ContainsKey(id))
{
// update existing
((adsb.PointLatLngAltHdg) instance.adsbPlanes[id]).Lat = adsb.Lat;
((adsb.PointLatLngAltHdg) instance.adsbPlanes[id]).Lng = adsb.Lng;
((adsb.PointLatLngAltHdg) instance.adsbPlanes[id]).Alt = adsb.Alt;
((adsb.PointLatLngAltHdg) instance.adsbPlanes[id]).Heading = adsb.Heading;
((adsb.PointLatLngAltHdg) instance.adsbPlanes[id]).Time = DateTime.Now;
((adsb.PointLatLngAltHdg) instance.adsbPlanes[id]).CallSign = adsb.CallSign;
}
else
{
// create new plane
MainV2.instance.adsbPlanes[id] =
new adsb.PointLatLngAltHdg(adsb.Lat, adsb.Lng,
adsb.Alt, adsb.Heading, id,
DateTime.Now) {CallSign = adsb.CallSign};
}
}
}