uint16_t tick;
uint16_t serial;
uint16_t flight;
+ int16_t accel;
+ int16_t speed;
+ int16_t height;
+ int16_t motor_number;
};
struct ao_companion_setup {
__pdata enum ao_flight_state ao_flight_state; /* current flight state */
__pdata uint16_t ao_boost_tick; /* time of launch detect */
-#if AO_PYRO_NUM
__pdata uint16_t ao_motor_number; /* number of motors burned so far */
-#endif
/*
* track min/max data over a long interval to detect
#else
ao_flight_state = ao_flight_coast;
#endif
-#if AO_PYRO_NUM
++ao_motor_number;
-#endif
ao_wakeup(DATA_TO_XDATA(&ao_flight_state));
}
break;
extern __pdata enum ao_flight_state ao_flight_state;
extern __pdata uint16_t ao_boost_tick;
-#if AO_PYRO_NUM
extern __pdata uint16_t ao_motor_number;
-#endif
extern __pdata uint16_t ao_launch_time;
extern __pdata uint8_t ao_flight_force_idle;
ao_companion_command.tick = ao_time();
ao_companion_command.serial = ao_serial_number;
ao_companion_command.flight = ao_flight_number;
+ ao_companion_command.accel = ao_accel;
+ ao_companion_command.speed = ao_speed;
+ ao_companion_command.height = ao_height;
+ ao_companion_command.motor_number = ao_motor_number;
ao_spi_send(&ao_companion_command, sizeof (ao_companion_command), AO_COMPANION_SPI_BUS);
}