diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/product/ao_tracker.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/product/ao_tracker.c b/src/product/ao_tracker.c index c1c3366c..9666528b 100644 --- a/src/product/ao_tracker.c +++ b/src/product/ao_tracker.c @@ -41,6 +41,31 @@ ao_usb_connected(void) #define STARTUP_AVERAGE 5 static void +ao_tracker_start_flight(void) +{ + struct ao_log_mega log; + ao_log_start(); + log.type = AO_LOG_FLIGHT; + log.tick = ao_time(); +#if HAS_ACCEL + log.u.flight.ground_accel = ao_ground_accel; +#endif +#if HAS_GYRO + log.u.flight.ground_accel_along = ao_ground_accel_along; + log.u.flight.ground_accel_across = ao_ground_accel_across; + log.u.flight.ground_accel_through = ao_ground_accel_through; + log.u.flight.ground_roll = ao_ground_roll; + log.u.flight.ground_pitch = ao_ground_pitch; + log.u.flight.ground_yaw = ao_ground_yaw; +#endif +#if HAS_FLIGHT + log.u.flight.ground_pres = ao_ground_pres; +#endif + log.u.flight.flight = ao_flight_number; + ao_log_mega(&log); +} + +static void ao_tracker(void) { uint16_t telem_rate = AO_SEC_TO_TICKS(1), new_telem_rate; @@ -112,10 +137,10 @@ ao_tracker(void) ao_flight_state = ao_flight_drogue; ao_wakeup(&ao_flight_state); ao_log_start(); + ao_tracker_start_flight(); } break; case ao_flight_drogue: - /* Modulate data rates based on speed (in cm/s) */ if (ao_gps_data.climb_rate < 0) speed = -ao_gps_data.climb_rate; |