X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fdrivers%2Fao_pad.c;h=2592a084261bec25640f0820dfc018c579f44486;hp=7e139c7808d1504f09f375e2e39245aab9fa7197;hb=88e279b15b3d2357f142e58d20d73c24bf2561eb;hpb=c6e57291d91f1f6c4de5c54a5cfd3eef66d9f830 diff --git a/src/drivers/ao_pad.c b/src/drivers/ao_pad.c index 7e139c78..2592a084 100644 --- a/src/drivers/ao_pad.c +++ b/src/drivers/ao_pad.c @@ -50,7 +50,7 @@ static void ao_siren(uint8_t v) { #ifdef AO_SIREN - ao_gpio_set(AO_SIREN_PORT, AO_SIREN_PIN, AO_SIREN, v); + ao_gpio_set(AO_SIREN_PORT, AO_SIREN_PIN, v); #else #if HAS_BEEP ao_beep(v ? AO_BEEP_MID : 0); @@ -64,7 +64,7 @@ static void ao_strobe(uint8_t v) { #ifdef AO_STROBE - ao_gpio_set(AO_STROBE_PORT, AO_STROBE_PIN, AO_STROBE, v); + ao_gpio_set(AO_STROBE_PORT, AO_STROBE_PIN, v); #else (void) v; #endif @@ -176,7 +176,7 @@ ao_pad_run(void) * AO_PAD_R_IGNITER_SENSE_GND Resistors from igniter sense ADC inputs to ground */ -int16_t +static int16_t ao_pad_decivolt(int16_t adc, int16_t r_plus, int16_t r_minus) { int32_t mul = (int32_t) AO_ADC_REFERENCE_DV * (r_plus + r_minus); @@ -378,7 +378,7 @@ ao_pad(void) while (ao_pad_disabled) ao_sleep(&ao_pad_disabled); ret = ao_radio_cmac_recv(&command, sizeof (command), 0); - PRINTD ("cmac_recv %d %d\n", ret, ao_radio_cmac_rssi); + PRINTD ("receive packet status %d rssi %d\n", ret, ao_radio_cmac_rssi); if (ret != AO_RADIO_CMAC_OK) continue; ao_pad_packet_time = ao_time(); @@ -406,6 +406,10 @@ ao_pad(void) PRINTD ("time difference too large %d\n", time_difference); break; } + if (query.arm_status != AO_PAD_ARM_STATUS_ARMED) { + PRINTD ("box not armed locally\n"); + break; + } PRINTD ("armed\n"); ao_pad_armed = command.channels; ao_pad_arm_time = ao_time(); @@ -472,7 +476,7 @@ ao_pad(void) } } -void +static void ao_pad_test(void) { uint8_t c; @@ -501,7 +505,7 @@ ao_pad_test(void) } } -void +static void ao_pad_manual(void) { uint8_t ignite; @@ -509,16 +513,14 @@ ao_pad_manual(void) ao_cmd_white(); if (!ao_match_word("DoIt")) return; - ao_cmd_decimal(); + ignite = 1 << ao_cmd_decimal(); if (ao_cmd_status != ao_cmd_success) return; - ignite = 1 << ao_cmd_lex_i; - ao_cmd_decimal(); + repeat = ao_cmd_decimal(); if (ao_cmd_status != ao_cmd_success) { repeat = 1; ao_cmd_status = ao_cmd_success; - } else - repeat = ao_cmd_lex_i; + } while (repeat-- > 0) { ao_pad_ignite = ignite; ao_wakeup(&ao_pad_ignite); @@ -531,12 +533,12 @@ static struct ao_task ao_pad_ignite_task; static struct ao_task ao_pad_monitor_task; #if DEBUG -void +static void ao_pad_set_debug(void) { - ao_cmd_decimal(); + uint16_t r = ao_cmd_decimal(); if (ao_cmd_status == ao_cmd_success) - ao_pad_debug = ao_cmd_lex_i != 0; + ao_pad_debug = r != 0; } @@ -544,14 +546,12 @@ static void ao_pad_alarm_debug(void) { uint8_t which, value; - ao_cmd_decimal(); + which = ao_cmd_decimal(); if (ao_cmd_status != ao_cmd_success) return; - which = ao_cmd_lex_i; - ao_cmd_decimal(); + value = ao_cmd_decimal(); if (ao_cmd_status != ao_cmd_success) return; - value = ao_cmd_lex_i; printf ("Set %s to %d\n", which ? "siren" : "strobe", value); if (which) ao_siren(value); @@ -593,34 +593,34 @@ ao_pad_init(void) } #endif #if AO_PAD_NUM > 0 - ao_enable_output(AO_PAD_0_PORT, AO_PAD_PIN_0, AO_PAD_0, 0); + ao_enable_output(AO_PAD_0_PORT, AO_PAD_PIN_0, 0); #endif #if AO_PAD_NUM > 1 - ao_enable_output(AO_PAD_1_PORT, AO_PAD_PIN_1, AO_PAD_1, 0); + ao_enable_output(AO_PAD_1_PORT, AO_PAD_PIN_1, 0); #endif #if AO_PAD_NUM > 2 - ao_enable_output(AO_PAD_2_PORT, AO_PAD_PIN_2, AO_PAD_2, 0); + ao_enable_output(AO_PAD_2_PORT, AO_PAD_PIN_2, 0); #endif #if AO_PAD_NUM > 3 - ao_enable_output(AO_PAD_3_PORT, AO_PAD_PIN_3, AO_PAD_3, 0); + ao_enable_output(AO_PAD_3_PORT, AO_PAD_PIN_3, 0); #endif #if AO_PAD_NUM > 4 - ao_enable_output(AO_PAD_4_PORT, AO_PAD_PIN_4, AO_PAD_4, 0); + ao_enable_output(AO_PAD_4_PORT, AO_PAD_PIN_4, 0); #endif #if AO_PAD_NUM > 5 - ao_enable_output(AO_PAD_5_PORT, AO_PAD_PIN_5, AO_PAD_5, 0); + ao_enable_output(AO_PAD_5_PORT, AO_PAD_PIN_5, 0); #endif #if AO_PAD_NUM > 5 - ao_enable_output(AO_PAD_6_PORT, AO_PAD_PIN_6, AO_PAD_6, 0); + ao_enable_output(AO_PAD_6_PORT, AO_PAD_PIN_6, 0); #endif #if AO_PAD_NUM > 7 - ao_enable_output(AO_PAD_7_PORT, AO_PAD_PIN_7, AO_PAD_7, 0); + ao_enable_output(AO_PAD_7_PORT, AO_PAD_PIN_7, 0); #endif #ifdef AO_STROBE - ao_enable_output(AO_STROBE_PORT, AO_STROBE_PIN, AO_STROBE, 0); + ao_enable_output(AO_STROBE_PORT, AO_STROBE_PIN, 0); #endif #ifdef AO_SIREN - ao_enable_output(AO_SIREN_PORT, AO_SIREN_PIN, AO_SIREN, 0); + ao_enable_output(AO_SIREN_PORT, AO_SIREN_PIN, 0); #endif ao_cmd_register(&ao_pad_cmds[0]); ao_add_task(&ao_pad_task, ao_pad, "pad listener");