fix(telemetry): Inconsistent/wrong GPS distance calculation #4442
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fixes #4437
PR #4250 introduced a mechanism to allow a value widget to detect a change in GPS position. This was realized by storing a hash value in the
value
variable of class TelemetryItem. Unfortunatelyvalue
is defined in a union together with a placeholder fordistFromEarthAxis
.By writing the hash for the changed lat/lon to
value
the calculateddistFromEarthAxis
is overwritten. In case a calculated telemetry sensor "distance" is defined this leads to a wrong calculation of the distance between craft and home point.Changes:
distFromEarthAxis
to classTelemetryItem
's gps struct to prevent overwritingdistFromEarthAxis
. This should not affect RAM usage due to the way the gps struct is embedded in a union for other types of data (cells
struct is still larger).distFromEarthAxis
topilotDistFromEarthAxis
to align variable name withpilotLatitude
andpilotLongitude
Tested using the procedure described in #4437