diff --git a/ExtLibs/ArduPilot/CurrentState.cs b/ExtLibs/ArduPilot/CurrentState.cs index b3401219a9..89b80fdc3b 100644 --- a/ExtLibs/ArduPilot/CurrentState.cs +++ b/ExtLibs/ArduPilot/CurrentState.cs @@ -1139,7 +1139,8 @@ public int toh [DisplayFieldName("distTraveled.Field")] [DisplayText("Dist Traveled (dist)")][GroupText("Position")] public float distTraveled { get; set; } - + public string distTravelledUnit = CurrentState.DistanceUnit; // added by Mir 30112024 + [DisplayText("Time in Air (sec)")][GroupText("Position")] public float timeSinceArmInAir { get; set; } [DisplayFieldName("timeInAir.Field")] @@ -4417,6 +4418,18 @@ public void UpdateCurrentSettings(Action bs, bool updatenow, !mavinterface.logreadmode) distTraveled = 0; + // added by Mir 30112024 + if (distTravelledUnit != CurrentState.DistanceUnit) // did distance unit change? + { + distTravelledUnit = CurrentState.DistanceUnit; // set the new unit + if(distTravelledUnit == "m") // changed to meters (was feets) + distTraveled = (float)(distTraveled / 3.28084); //Fix disttravelled + else // changed to feets (was meters) + distTraveled = (float)(distTraveled * 3.28084); //Fix disttravelled + + } // end of my added + + distTraveled += (float)lastpos.GetDistance(new PointLatLngAlt(lat, lng, 0, "")) * multiplierdist; lastpos = new PointLatLngAlt(lat, lng, 0, "");