/* test these values with real igniters */
#define AO_IGNITER_OPEN 1000
#define AO_IGNITER_CLOSED 7000
-#define AO_IGNITER_FIRE_TIME AO_MS_TO_TICKS(500)
+#define AO_IGNITER_FIRE_TIME AO_MS_TO_TICKS(50)
#define AO_IGNITER_CHARGE_TIME AO_MS_TO_TICKS(2000)
struct ao_ignition {
__xdata enum ao_ignter igniter;
__xdata enum ao_igniter_status status;
+ ao_config_get();
for (;;) {
ao_sleep(&ao_ignition);
for (igniter = ao_igniter_drogue; igniter <= ao_igniter_main; igniter++) {
if (ao_ignition[igniter].request && !ao_ignition[igniter].fired) {
+ if (igniter == ao_igniter_drogue && ao_config.apogee_delay)
+ ao_delay(AO_SEC_TO_TICKS(ao_config.apogee_delay));
+
ao_igniter_fire(igniter);
ao_delay(AO_IGNITER_CHARGE_TIME);
status = ao_igniter_status(igniter);
}
}
-static uint8_t
-ao_match_word(__code char *word)
-{
- while (*word) {
- if (ao_cmd_lex_c != *word) {
- ao_cmd_status = ao_cmd_syntax_error;
- return 0;
- }
- word++;
- ao_cmd_lex();
- }
- return 1;
-}
-
void
ao_ignite_manual(void)
{