Updating HoTT GPS Altitude code to match spec.

Unit test added.
This commit is contained in:
Dominic Clifton 2014-05-28 21:32:13 +01:00
parent 79a90b09ef
commit bbfebc5de9
3 changed files with 27 additions and 2 deletions

View File

@ -171,8 +171,10 @@ void hottPrepareGPSResponse(HOTT_GPS_MSG_t *hottGPSMessage)
hottGPSMessage->home_distance_L = GPS_distanceToHome & 0x00FF;
hottGPSMessage->home_distance_H = GPS_distanceToHome >> 8;
hottGPSMessage->altitude_L = GPS_altitude & 0x00FF;
hottGPSMessage->altitude_H = GPS_altitude >> 8;
uint16_t hottGpsAltitude = (GPS_altitude / 10) + HOTT_GPS_ALTITUDE_OFFSET; // 1 / 0.1f == 10, GPS_altitude of 1 == 0.1m
hottGPSMessage->altitude_L = hottGpsAltitude & 0x00FF;
hottGPSMessage->altitude_H = hottGpsAltitude >> 8;
hottGPSMessage->home_direction = GPS_directionToHome;
}

View File

@ -27,6 +27,8 @@
#define HOTT_EAM_OFFSET_M3S 120
#define HOTT_EAM_OFFSET_TEMPERATURE 20
#define HOTT_GPS_ALTITUDE_OFFSET 500
typedef enum {
HOTT_EAM_ALARM1_FLAG_NONE = 0,
HOTT_EAM_ALARM1_FLAG_MAH = (1 << 0),
@ -476,4 +478,7 @@ void configureHoTTTelemetryPort(void);
void freeHoTTTelemetryPort(void);
uint32_t getHoTTTelemetryProviderBaudRate(void);
void hottPrepareGPSResponse(HOTT_GPS_MSG_t *hottGPSMessage);
#endif /* TELEMETRY_HOTT_H_ */

View File

@ -109,6 +109,22 @@ TEST(TelemetryHottTest, UpdateGPSCoordinates3)
EXPECT_EQ((int16_t)(hottGPSMessage->pos_EW_sec_H << 8 | hottGPSMessage->pos_EW_sec_L), 9999);
}
TEST(TelemetryHottTest, PrepareGPSMessage_Altitude1m)
{
// given
HOTT_GPS_MSG_t *hottGPSMessage = getGPSMessageForTest();
f.GPS_FIX = 1;
uint16_t altitudeInMeters = 1;
GPS_altitude = altitudeInMeters * (1 / 0.1f); // 1 = 0.1m
// when
hottPrepareGPSResponse(hottGPSMessage);
// then
EXPECT_EQ((int16_t)(hottGPSMessage->altitude_H << 8 | hottGPSMessage->altitude_L), 1 + HOTT_GPS_ALTITUDE_OFFSET);
}
// STUBS
@ -166,6 +182,8 @@ serialPort_t *openSerialPort(serialPortFunction_e functionMask, serialReceiveCal
UNUSED(callback);
UNUSED(mode);
UNUSED(inversion);
return NULL;
}
serialPort_t *findOpenSerialPort(uint16_t functionMask) {