altos: Use 0x80 to indicate valid state value in the GPS location packet
[fw/altos] / src / kernel / ao_telemetry.h
index 237a35aba2a15401dc1c93695b1ae65aa1d7f47c..050bbf726a09c7d338ae2e31306336c26b760204 100644 (file)
@@ -93,6 +93,8 @@ struct ao_telemetry_configuration {
 #define AO_GPS_MODE_MANUAL             'M'
 #define AO_GPS_MODE_SIMULATED          'S'
 
+#define AO_GPS_STATE_VALID             0x80
+
 struct ao_telemetry_location {
        uint16_t        serial;         /*  0 */
        uint16_t        tick;           /*  2 */
@@ -115,7 +117,7 @@ struct ao_telemetry_location {
        uint16_t        ground_speed;   /* 26 cm/s */
        int16_t         climb_rate;     /* 28 cm/s */
        uint8_t         course;         /* 30 degrees / 2 */
-       uint8_t         unused[1];      /* 31 */
+       uint8_t         state;          /* 31 flight state */
        /* 32 */
 };
 
@@ -154,7 +156,7 @@ struct ao_telemetry_companion {
        uint16_t                                companion_data[AO_COMPANION_MAX_CHANNELS];      /*  8 */
        /* 32 */
 };
-       
+
 #define AO_TELEMETRY_MEGA_SENSOR       0x08
 
 struct ao_telemetry_mega_sensor {
@@ -181,7 +183,7 @@ struct ao_telemetry_mega_sensor {
        int16_t         mag_z;          /* 30 */
        /* 32 */
 };
-       
+
 #define AO_TELEMETRY_MEGA_DATA         0x09
 
 struct ao_telemetry_mega_data {
@@ -231,7 +233,7 @@ struct ao_telemetry_metrum_sensor {
        uint8_t         pad[6];         /* 26 */
        /* 32 */
 };
-       
+
 #define AO_TELEMETRY_METRUM_DATA       0x0B
 
 struct ao_telemetry_metrum_data {