X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fdrivers%2Fao_lco.h;h=c9fc1230a5732e311253c7ea07510c3614931dd1;hp=f931872b5b0ac14fcb61a35d2b7b2dc3fbc181fa;hb=1741039eb3633b3f010ac7fc9e6a055d02aa0a15;hpb=43d1cfd0d1458c2d4c333155902be28bfe17b6ee diff --git a/src/drivers/ao_lco.h b/src/drivers/ao_lco.h index f931872b..c9fc1230 100644 --- a/src/drivers/ao_lco.h +++ b/src/drivers/ao_lco.h @@ -38,7 +38,7 @@ extern uint8_t ao_lco_debug; extern uint8_t ao_lco_drag_race; /* true when drag race mode enabled */ #endif -extern uint8_t ao_lco_pad; /* Currently selected pad */ +extern int8_t ao_lco_pad; /* Currently selected pad */ extern int16_t ao_lco_box; /* Currently selected box */ extern uint8_t ao_lco_armed; /* armed mode active */ @@ -74,6 +74,8 @@ extern struct ao_pad_query ao_pad_query; /* Last received QUERY from pad */ # endif #endif #define AO_LCO_PAD_VOLTAGE 0 /* Pad number to show box voltage */ +#define AO_LCO_PAD_RSSI -1 /* Pad number to show box RSSI */ +#define AO_LCO_PAD_FIRST AO_LCO_PAD_RSSI static inline bool ao_lco_box_pseudo(int16_t box) @@ -104,6 +106,19 @@ ao_lco_box_pseudo(int16_t box) } } +static inline bool +ao_lco_pad_pseudo(int8_t pad) +{ + switch (pad) { + case AO_LCO_PAD_VOLTAGE: + return true; + case AO_LCO_PAD_RSSI: + return true; + default: + return false; + } +} + extern int16_t ao_lco_min_box, ao_lco_max_box; #define AO_LCO_MASK_SIZE(n) (((n) + 7) >> 3) @@ -112,6 +127,11 @@ extern int16_t ao_lco_min_box, ao_lco_max_box; extern uint8_t ao_lco_box_mask[AO_LCO_MASK_SIZE(AO_PAD_MAX_BOXES)]; +#define AO_LCO_VALID_LAST 1 +#define AO_LCO_VALID_EVER 2 + +extern uint8_t ao_lco_valid[AO_PAD_MAX_BOXES]; /* AO_LCO_VALID bits per box */ + /* * Shared functions */ @@ -123,13 +143,13 @@ void ao_lco_update(void); uint8_t -ao_lco_pad_present(int16_t box, uint8_t pad); +ao_lco_pad_present(int16_t box, int8_t pad); -uint8_t +int8_t ao_lco_pad_first(int16_t box); void -ao_lco_set_pad(uint8_t new_pad); +ao_lco_set_pad(int8_t new_pad); void ao_lco_step_pad(int8_t dir); @@ -158,7 +178,7 @@ ao_lco_search(void); void ao_lco_monitor(void); -extern uint8_t ao_lco_drag_beep_count; +extern int8_t ao_lco_drag_beep_count; /* enable drag race mode */ void @@ -178,7 +198,7 @@ ao_lco_drag_warn_check(AO_TICK_TYPE now, AO_TICK_TYPE delay); /* Request 'beeps' additional drag race beeps */ void -ao_lco_drag_add_beeps(uint8_t beeps); +ao_lco_drag_add_beeps(int8_t beeps); /* task function for beeping while arm is active */ void