Handle negative values in grab_fields()

This commit is contained in:
AirBreak69 2018-06-13 02:09:54 +02:00 committed by GitHub
parent 84ee9c624c
commit 45bf0ac4ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 3 deletions

View File

@ -641,7 +641,8 @@ static uint32_t grab_fields(char *src, uint8_t mult)
{ // convert string to uint32
uint32_t i;
uint32_t tmp = 0;
for (i = 0; src[i] != 0; i++) {
int isneg = src[0] == '-';
for (i = isneg; src[i] != 0; i++) {
if (src[i] == '.') {
i++;
if (mult == 0)
@ -655,6 +656,8 @@ static uint32_t grab_fields(char *src, uint8_t mult)
if (i >= 15)
return 0; // out of bounds
}
if (isneg)
return -tmp; // handle negative altitudes
return tmp;
}
@ -734,8 +737,6 @@ static bool gpsNewFrameNMEA(char c)
break;
case 9:
gps_Msg.altitude = grab_fields(string, 0); // altitude in meters added by Mis
if (string[0] == '-')
gps_Msg.altitude = -gps_Msg.altitude; // handle negative altitudes
break;
}
break;