Skip to content

Commit a60dbe6

Browse files
committed
Allow for negative GPS speed and altitude values
1 parent 0cce1d3 commit a60dbe6

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

command_interface.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ void command_interface_process_byte(char incoming)
263263
}
264264
else if(strncmp(command_input_buffer, "version", 7) == 0)
265265
{
266-
sprintf((char *)command_response_buffer, "version,0.10.0,beta");
266+
sprintf((char *)command_response_buffer, "version,0.10.1,beta");
267267
m_ble_tx_logbuffer(command_response_buffer, strlen((const char *)command_response_buffer));
268268
}
269269
else if(strncmp(command_input_buffer, "getcfg", 6) == 0)

datatypes.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ typedef struct {
9393
time_t dt;
9494
uint8_t satellites;
9595
//NOTE: 8 bit padding
96-
uint16_t altitude; // Div/10
97-
uint16_t speed; // Div/10
96+
int16_t altitude; // Div/10
97+
int16_t speed; // Div/10
9898
//NOTE: 16 bit padding
9999
int32_t latitude; // Div/100000
100100
int32_t longitude; // Div/100000

main.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1753,8 +1753,8 @@ static void logging_timer_handler(void *p_context) {
17531753
// Or we have drifted too far from the last record we must write a full GPS message
17541754
(
17551755
currentTime - log_message_gps.dt > 255 ||
1756-
fabs(hgps.altitude) * 10 - log_message_gps.altitude > 127 ||
1757-
fabs(hgps.speed) * 10 - log_message_gps.speed > 127 ||
1756+
hgps.altitude * 10 - log_message_gps.altitude > 127 ||
1757+
hgps.speed * 10 - log_message_gps.speed > 127 ||
17581758
fabs(hgps.latitude) * 10000 - abs(log_message_gps.latitude) > 32767 ||
17591759
fabs(hgps.longitude) * 10000 - abs(log_message_gps.longitude) > 32767
17601760
)
@@ -1763,8 +1763,8 @@ static void logging_timer_handler(void *p_context) {
17631763
//TODO: duplicated code
17641764
log_message_gps.dt = currentTime;
17651765
log_message_gps.satellites = hgps.sats_in_view;
1766-
log_message_gps.altitude = fabs(hgps.altitude) * 10;
1767-
log_message_gps.speed = fabs(hgps.speed) * 10;
1766+
log_message_gps.altitude = hgps.altitude * 10;
1767+
log_message_gps.speed = hgps.speed * 10;
17681768
log_message_gps.latitude = hgps.latitude * 100000;
17691769
log_message_gps.longitude = hgps.longitude * 100000;
17701770

@@ -1776,17 +1776,17 @@ static void logging_timer_handler(void *p_context) {
17761776
// Update delta message
17771777
log_message_gps_delta.dt = currentTime - log_message_gps.dt;
17781778
log_message_gps_delta.satellites = hgps.sats_in_view - log_message_gps.satellites;
1779-
log_message_gps_delta.altitude = fabs(hgps.altitude) * 10 - log_message_gps.altitude;
1780-
log_message_gps_delta.speed = fabs(hgps.speed) * 10 - log_message_gps.speed;
1779+
log_message_gps_delta.altitude = (int16_t)(hgps.altitude * 10) - log_message_gps.altitude;
1780+
log_message_gps_delta.speed = (int16_t)(hgps.speed * 10) - log_message_gps.speed;
17811781
log_message_gps_delta.latitude = (int32_t)(hgps.latitude * 100000) - log_message_gps.latitude;
17821782
log_message_gps_delta.longitude = (int32_t)(hgps.longitude * 100000) - log_message_gps.longitude;
17831783

17841784
// Update full message
17851785
//TODO: duplicated code
17861786
log_message_gps.dt = currentTime;
17871787
log_message_gps.satellites = hgps.sats_in_view;
1788-
log_message_gps.altitude = fabs(hgps.altitude) * 10;
1789-
log_message_gps.speed = fabs(hgps.speed) * 10;
1788+
log_message_gps.altitude = hgps.altitude * 10;
1789+
log_message_gps.speed = hgps.speed * 10;
17901790
log_message_gps.latitude = hgps.latitude * 100000;
17911791
log_message_gps.longitude = hgps.longitude * 100000;
17921792

0 commit comments

Comments
 (0)