S-PORT GPS parsing was wrong: latitude and longitude were exchanged with each other
Telemetry simulator latitude and longitude were exchanged with each other (reverted from commit e7f6d321dd)
This commit is contained in:
@@ -496,11 +496,11 @@ TelemetrySimulator::GPSEmulator::GPSEmulator()
|
||||
uint32_t TelemetrySimulator::GPSEmulator::encodeLatLon(double latLon, bool isLat)
|
||||
{
|
||||
uint32_t data = (uint32_t)((latLon < 0 ? -latLon : latLon) * 60 * 10000) & 0x3FFFFFFF;
|
||||
if (isLat) {
|
||||
data |= (1 << 31);
|
||||
if (isLat == false) {
|
||||
data |= 0x80000000;
|
||||
}
|
||||
if (latLon < 0) {
|
||||
data |= (1 << 30);
|
||||
data |= 0x40000000;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -173,9 +173,9 @@ void sportProcessTelemetryPacket(uint8_t * packet)
|
||||
value = -value;
|
||||
value = (value * 5) / 3; // min/10000 => deg/1000000
|
||||
if (data & (1 << 31))
|
||||
sportProcessTelemetryPacket(id, 0, instance, value, UNIT_GPS_LATITUDE);
|
||||
else
|
||||
sportProcessTelemetryPacket(id, 0, instance, value, UNIT_GPS_LONGITUDE);
|
||||
else
|
||||
sportProcessTelemetryPacket(id, 0, instance, value, UNIT_GPS_LATITUDE);
|
||||
}
|
||||
else if (id >= RBOX_BATT1_FIRST_ID && id <= RBOX_BATT2_LAST_ID) {
|
||||
sportProcessTelemetryPacket(id, 0, instance, data & 0xffff);
|
||||
|
||||
Reference in New Issue
Block a user