+ ao_wakeup(&ao_pad_query);
+}
+
+static void
+ao_lco_box_set_present(uint8_t box)
+{
+ if (box >= AO_PAD_MAX_BOXES)
+ return;
+ ao_lco_box_mask[MASK_ID(box)] |= 1 << MASK_SHIFT(box);
+}
+
+static void
+ao_lco_search(void)
+{
+ uint16_t tick_offset;
+ int8_t r;
+
+ ao_lco_min_box = 0xff;
+ ao_lco_max_box = 0x00;
+ for (ao_lco_box = 0; ao_lco_box < AO_PAD_MAX_BOXES; ao_lco_box++) {
+ if ((ao_lco_box % 10) == 0)
+ ao_lco_set_box();
+ r = ao_lco_query(ao_lco_box, &ao_pad_query, &ao_lco_tick_offset);
+ if (r == AO_RADIO_CMAC_OK) {
+ if (ao_lco_box < ao_lco_min_box)
+ ao_lco_min_box = ao_lco_box;
+ if (ao_lco_box > ao_lco_max_box)
+ ao_lco_max_box = ao_lco_box;
+ ao_lco_box_set_present(ao_lco_box);
+ }
+ }
+ if (ao_lco_min_box <= ao_lco_max_box)
+ ao_lco_box = ao_lco_min_box;