Firmware SDK
|
Task scheduler. More...
Macros | |
#define | BC_SCHEDULER_MAX_TASKS 32 |
Maximum number of tasks. | |
Typedefs | |
typedef size_t | bc_scheduler_task_id_t |
Task ID assigned by scheduler. | |
Functions | |
void | bc_scheduler_init (void) |
Initialize task scheduler. | |
void | bc_scheduler_run (void) |
Run task scheduler (this call never ends) | |
bc_scheduler_task_id_t | bc_scheduler_register (void(*task)(void *), void *param, bc_tick_t tick) |
Register task in scheduler. More... | |
void | bc_scheduler_unregister (bc_scheduler_task_id_t task_id) |
Unregister specified task. More... | |
bc_scheduler_task_id_t | bc_scheduler_get_current_task_id (void) |
Get task ID of currently executing task. More... | |
bc_tick_t | bc_scheduler_get_spin_tick (void) |
Get current tick of spin in which task has been run. More... | |
void | bc_scheduler_disable_sleep (void) |
Disable sleep mode, implemented as semaphore. | |
void | bc_scheduler_enable_sleep (void) |
Enable sleep mode, implemented as semaphore. | |
void | bc_scheduler_plan_now (bc_scheduler_task_id_t task_id) |
Schedule specified task for immediate execution. More... | |
void | bc_scheduler_plan_absolute (bc_scheduler_task_id_t task_id, bc_tick_t tick) |
Schedule specified task to absolute tick. More... | |
void | bc_scheduler_plan_relative (bc_scheduler_task_id_t task_id, bc_tick_t tick) |
Schedule specified task to tick relative from current spin. More... | |
void | bc_scheduler_plan_from_now (bc_scheduler_task_id_t task_id, bc_tick_t tick) |
Schedule specified task to tick relative from now. More... | |
void | bc_scheduler_plan_current_now (void) |
Schedule current task for immediate execution. | |
void | bc_scheduler_plan_current_absolute (bc_tick_t tick) |
Schedule current task to absolute tick. More... | |
void | bc_scheduler_plan_current_relative (bc_tick_t tick) |
Schedule current task to tick relative from current spin. More... | |
void | bc_scheduler_plan_current_from_now (bc_tick_t tick) |
Schedule current task to tick relative from now. More... | |
Task scheduler.
bc_scheduler_task_id_t bc_scheduler_get_current_task_id | ( | void | ) |
Get task ID of currently executing task.
Definition at line 99 of file bc_scheduler.c.
bc_tick_t bc_scheduler_get_spin_tick | ( | void | ) |
Get current tick of spin in which task has been run.
Definition at line 104 of file bc_scheduler.c.
void bc_scheduler_plan_absolute | ( | bc_scheduler_task_id_t | task_id, |
bc_tick_t | tick | ||
) |
Schedule specified task to absolute tick.
[in] | task_id | Task ID to be scheduled |
[in] | tick | Tick at which the task will be run |
Definition at line 124 of file bc_scheduler.c.
Referenced by bc_analog_sensor_set_update_interval(), bc_button_set_event_handler(), bc_cy8cmbr3102_set_scan_interval(), bc_flood_detector_set_update_interval(), bc_hc_sr04_set_update_interval(), bc_hdc2080_measure(), bc_hdc2080_set_update_interval(), bc_hts221_measure(), bc_hts221_set_update_interval(), bc_lis2dh12_set_update_interval(), bc_lp8_set_update_interval(), bc_module_battery_set_update_interval(), bc_module_infra_grid_measure(), bc_module_infra_grid_set_update_interval(), bc_module_rs485_measure(), bc_module_rs485_set_update_interval(), bc_mpl3115a2_measure(), bc_mpl3115a2_set_update_interval(), bc_opt3001_measure(), bc_opt3001_set_update_interval(), bc_pulse_counter_set_update_interval(), bc_sgp30_set_update_interval(), bc_sgpc3_set_update_interval(), bc_sht20_measure(), bc_sht20_set_update_interval(), bc_sht30_measure(), bc_sht30_set_update_interval(), bc_soil_sensor_set_update_interval(), bc_spirit1_set_rx_timeout(), bc_sps30_set_update_interval(), bc_tmp112_measure(), bc_tmp112_set_update_interval(), bc_uart_async_write(), and bc_zssc3123_set_update_interval().
void bc_scheduler_plan_current_absolute | ( | bc_tick_t | tick | ) |
Schedule current task to absolute tick.
[in] | tick | Tick at which the task will be run |
Definition at line 144 of file bc_scheduler.c.
void bc_scheduler_plan_current_from_now | ( | bc_tick_t | tick | ) |
Schedule current task to tick relative from now.
[in] | tick | Tick at which the task will be run as a relative value from now |
Definition at line 154 of file bc_scheduler.c.
void bc_scheduler_plan_current_relative | ( | bc_tick_t | tick | ) |
Schedule current task to tick relative from current spin.
[in] | tick | Tick at which the task will be run as a relative value from current spin |
Definition at line 149 of file bc_scheduler.c.
void bc_scheduler_plan_from_now | ( | bc_scheduler_task_id_t | task_id, |
bc_tick_t | tick | ||
) |
Schedule specified task to tick relative from now.
[in] | task_id | Task ID to be scheduled |
[in] | tick | Tick at which the task will be run as a relative value from now |
Definition at line 134 of file bc_scheduler.c.
Referenced by bc_led_pulse().
void bc_scheduler_plan_now | ( | bc_scheduler_task_id_t | task_id | ) |
Schedule specified task for immediate execution.
[in] | task_id | Task ID to be scheduled |
Definition at line 119 of file bc_scheduler.c.
Referenced by bc_analog_sensor_measure(), bc_button_set_event_handler(), bc_cmwx1zzabz_join(), bc_cmwx1zzabz_send_message(), bc_cmwx1zzabz_send_message_confirmed(), bc_esp8266_check_ap_availability(), bc_esp8266_connect(), bc_esp8266_send_data(), bc_flood_detector_measure(), bc_led_blink(), bc_led_set_mode(), bc_led_set_pattern(), bc_lis2dh12_measure(), bc_lis2dh12_set_resolution(), bc_lis2dh12_set_scale(), bc_lp8_measure(), bc_module_battery_measure(), bc_pyq1648_set_sensitivity(), bc_sam_m8q_start(), bc_sam_m8q_stop(), bc_soil_sensor_measure(), bc_spirit1_rx(), bc_spirit1_sleep(), bc_spirit1_tx(), bc_sps30_measure(), bc_td1207r_send_rf_frame(), bc_usb_cdc_write(), and bc_zssc3123_measure().
void bc_scheduler_plan_relative | ( | bc_scheduler_task_id_t | task_id, |
bc_tick_t | tick | ||
) |
Schedule specified task to tick relative from current spin.
[in] | task_id | Task ID to be scheduled |
[in] | tick | Tick at which the task will be run as a relative value from current spin |
Definition at line 129 of file bc_scheduler.c.
Referenced by bc_analog_sensor_set_update_interval(), bc_atsha204_read_serial_number(), bc_flood_detector_set_update_interval(), bc_hc_sr04_set_update_interval(), bc_hdc2080_set_update_interval(), bc_hts221_set_update_interval(), bc_lis2dh12_set_update_interval(), bc_lp8_set_update_interval(), bc_ls013b7dh03_update(), bc_module_infra_grid_set_update_interval(), bc_module_rs485_set_update_interval(), bc_mpl3115a2_set_update_interval(), bc_opt3001_set_update_interval(), bc_pulse_counter_set_update_interval(), bc_sgp30_set_update_interval(), bc_sgpc3_set_update_interval(), bc_sht20_set_update_interval(), bc_sht30_set_update_interval(), bc_soil_sensor_set_update_interval(), bc_sps30_set_update_interval(), and bc_tmp112_set_update_interval().
bc_scheduler_task_id_t bc_scheduler_register | ( | void(*)(void *) | task, |
void * | param, | ||
bc_tick_t | tick | ||
) |
Register task in scheduler.
[in] | task | Task function address |
[in] | param | Optional parameter which is passed to task function (can be NULL) |
[in] | tick | Absolute tick when task will be scheduled |
Definition at line 56 of file bc_scheduler.c.
Referenced by bc_adc_init(), bc_analog_sensor_init(), bc_atci_set_uart_active_callback(), bc_atsha204_init(), bc_button_init(), bc_button_init_virtual(), bc_cmwx1zzabz_init(), bc_cy8cmbr3102_init(), bc_dma_init(), bc_eeprom_async_write(), bc_esp8266_init(), bc_flood_detector_init(), bc_hc_sr04_measure(), bc_hdc2080_init(), bc_hts221_init(), bc_led_init(), bc_led_init_virtual(), bc_lis2dh12_init(), bc_lp8_init(), bc_ls013b7dh03_init(), bc_module_battery_init(), bc_module_encoder_init(), bc_module_infra_grid_init(), bc_module_rs485_async_read_start(), bc_module_rs485_async_write(), bc_module_rs485_init(), bc_mpl3115a2_init(), bc_opt3001_init(), bc_pulse_counter_init(), bc_pyq1648_init(), bc_radio_init(), bc_sam_m8q_init(), bc_sgp30_init(), bc_sgpc3_init(), bc_sht20_init(), bc_sht30_init(), bc_soil_sensor_init_multiple(), bc_spi_init(), bc_spirit1_init(), bc_sps30_init(), bc_switch_init(), bc_td1207r_init(), bc_tmp112_init(), bc_uart_async_read_start(), bc_uart_async_write(), bc_usb_cdc_init(), bc_wssfm10r1at_init(), and bc_zssc3123_init().
void bc_scheduler_unregister | ( | bc_scheduler_task_id_t | task_id | ) |
Unregister specified task.
[in] | task_id | Task ID to be unregistered |
Definition at line 80 of file bc_scheduler.c.
Referenced by bc_atci_set_uart_active_callback(), bc_eeprom_async_cancel(), bc_module_encoder_deinit(), bc_module_rs485_async_read_stop(), bc_spirit1_deinit(), bc_tmp112_deinit(), bc_uart_async_read_cancel(), and bc_zssc3123_deinit().