fix for wrong DFM position for negative lat/lon (untested)

pull/71/head^2
Hansi, dl9rdz 2021-02-20 10:27:50 +01:00
rodzic 7db0e8ff11
commit 30b7b35339
2 zmienionych plików z 3 dodań i 3 usunięć

Wyświetl plik

@ -1,4 +1,4 @@
const char *version_name = "rdzTTGOsonde"; const char *version_name = "rdzTTGOsonde";
const char *version_id = "devel20210213"; const char *version_id = "devel20210220";
const int SPIFFS_MAJOR=2; const int SPIFFS_MAJOR=2;
const int SPIFFS_MINOR=10; const int SPIFFS_MINOR=10;

Wyświetl plik

@ -412,7 +412,7 @@ void DFM::decodeDAT(uint8_t *dat)
case 2: case 2:
{ {
float lat, vh; float lat, vh;
lat = ((uint32_t)dat[0]<<24) + ((uint32_t)dat[1]<<16) + ((uint32_t)dat[2]<<8) + ((uint32_t)dat[3]); lat = (int32_t)(((uint32_t)dat[0]<<24) + ((uint32_t)dat[1]<<16) + ((uint32_t)dat[2]<<8) + ((uint32_t)dat[3]));
vh = ((uint16_t)dat[4]<<8) + dat[5]; vh = ((uint16_t)dat[4]<<8) + dat[5];
Serial.print("GPS-lat: "); Serial.print(lat*0.0000001); Serial.print("GPS-lat: "); Serial.print(lat*0.0000001);
Serial.print(", hor-V: "); Serial.print(vh*0.01); Serial.print(", hor-V: "); Serial.print(vh*0.01);
@ -424,7 +424,7 @@ void DFM::decodeDAT(uint8_t *dat)
case 3: case 3:
{ {
float lon, dir; float lon, dir;
lon = ((uint32_t)dat[0]<<24) + ((uint32_t)dat[1]<<16) + ((uint32_t)dat[2]<<8) + (uint32_t)dat[3]; lon = (int32_t)(((uint32_t)dat[0]<<24) + ((uint32_t)dat[1]<<16) + ((uint32_t)dat[2]<<8) + (uint32_t)dat[3]);
dir = ((uint16_t)dat[4]<<8) + dat[5]; dir = ((uint16_t)dat[4]<<8) + dat[5];
Serial.print("GPS-lon: "); Serial.print(lon*0.0000001); Serial.print("GPS-lon: "); Serial.print(lon*0.0000001);
Serial.print(", dir: "); Serial.print(dir*0.01); Serial.print(", dir: "); Serial.print(dir*0.01);