38 .probe_timeout_ms = 3000,
39 .retry_interval_ms = 200,
40 .heartbeat_interval_ms = 1000,
41 .battery_interval_ms = 1000,
42 .battery_max_age_ms = 3000,
45 .callback_budget_ms = 2000,
46 .tick_budget_ms = 6000,
47 .probe_max_attempts = 3,
48 .publication_max_attempts = 1,
49 .session_timeout_ms = 0,
65 .publish_status =
NULL,
73 if (!status || status->probes_complete) {
108 for (
bool on =
true;; on = !on) {
128 .stack_size = 6 * 1024,
battery_t battery_assess(bool valid, uint32_t counts, bool on_usb)
uint32_t board_now_ms(void)
void board_adc_snapshot(board_adc_snapshot_t *snapshot, uint32_t timeout_ms)
bool board_bringup_on_usb(void)
self_test_battery_t board_bringup_read_battery(void *context, uint32_t now_ms, uint32_t budget_ms)
self_test_reply_t board_bringup_probe(void *context, uint16_t device_id, uint8_t attempt, uint32_t now_ms, uint32_t budget_ms)
void board_bringup_power_up(board_bringup_t *b)
void boot_report_build(boot_report_t *r, const self_test_status_t *s, battery_t battery, uint32_t now_ms)
board_bringup_t * bringup_task_board(void)
static board_bringup_t bringup
static void led(GPIO_TypeDef *port, uint16_t pin, bool on)
bringup_report_t g_bringup_report
static void bringup_task(void *argument)
static self_test_t self_test
void bringup_task_start(void)
static std::atomic< bool > running
osThreadId_t osThreadNew(osThreadFunc_t func, void *argument, const osThreadAttr_t *attr)
Create a thread and add it to Active Threads.
@ osPriorityNormal
Priority: normal.
osStatus_t osDelay(uint32_t ticks)
Wait for Timeout (Time Delay).
static const emmc_port_t port
void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)
static const idle_config_t config
flight_state_t app_state(void)
bool self_test_init(self_test_t *t, const self_test_config_t *config, const self_test_port_t *port, void *context, uint32_t now_ms)
void self_test_tick(self_test_t *t, uint32_t now_ms)
const self_test_status_t * self_test_status(const self_test_t *t)
@ SELF_TEST_DEVICE_ETHERNET
@ SELF_TEST_DEVICE_HIGH_G
@ SELF_TEST_DEVICE_BAROMETER
Attributes structure for thread.
static self_test_battery_t battery(void *context, uint32_t now_ms, uint32_t budget_ms)