|
Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
|
Task Runner task scheduling. More...
#include <stdint.h>#include <stdbool.h>#include <zephyr/toolchain.h>#include <zephyr/sys/atomic.h>#include <infuse/task_runner/tasks/infuse_task_args.h>Go to the source code of this file.
Data Structures | |
| struct | task_schedule_tdf_logging |
| Control TDF logging output of a task. More... | |
| struct | task_schedule_state_conditions |
| Schedule state conditions. More... | |
| struct | task_schedule |
| Schedule for a given task. More... | |
| struct | task_schedule::battery_start_thresholds |
| Battery charge thresholds to start the task. More... | |
| struct | task_schedule::battery_terminate_thresholds |
| Battery charge thresholds to terminate the task. More... | |
| union | task_schedule::periodicity_args |
| Periodicity parameters. More... | |
| struct | task_schedule::periodicity_args::periodicity_periodic |
| struct | task_schedule::periodicity_args::periodicity_lockout |
| struct | task_schedule::periodicity_args::periodicity_after |
| union | task_schedule::task_args |
| Task specific arguments More... | |
| struct | task_schedule_state |
| State for a given task schedule. More... | |
Macros | |
| #define | TR_NOT 0x100 |
| Invert the state. | |
| #define | TASK_STATES_DEFINE(...) |
| Helper for constructing a task_schedule_state_conditions struct. | |
| #define | TASK_RUNNER_LOCKOUT_IGNORE_FIRST BIT(31) |
| Normally the lockout period must elapse after boot before the periodicity check passes. | |
| #define | TASK_SCHEDULE_STATES_DEFINE(name, schedules) |
| Instantiate schedule state array. | |
Typedefs | |
| typedef void(* | task_schedule_event_cb_t) (const struct task_schedule *schedule, enum task_schedule_event event) |
| Callback notifying that an event has occurred on a schedule. | |
Enumerations | |
| enum | task_runner_valid_type { TASK_LOCKED = 0x80 , TASK_VALID_ALWAYS = 1 , TASK_VALID_ACTIVE = 2 , TASK_VALID_INACTIVE = 3 , TASK_VALID_PERMANENTLY_RUNS = 4 } |
| enum | task_runner_periodicity_type { TASK_PERIODICITY_FIXED = 1 , TASK_PERIODICITY_LOCKOUT = 2 , TASK_PERIODICITY_AFTER = 3 } |
| enum | task_schedule_event { TASK_SCHEDULE_STARTED = 0 , TASK_SCHEDULE_TERMINATE_REQUEST = 1 , TASK_SCHEDULE_STOPPED = 2 } |
| Events that can trigger callbacks. More... | |
Functions | |
| bool | task_schedule_validate (const struct task_schedule *schedule) |
| Basic validity checking on task schedules. | |
| bool | task_schedule_should_start (const struct task_schedule *schedule, struct task_schedule_state *state, atomic_t *app_states, uint32_t uptime, uint32_t epoch_time, uint8_t battery) |
| Determine whether a task should start executing. | |
| bool | task_schedule_should_terminate (const struct task_schedule *schedule, struct task_schedule_state *state, atomic_t *app_states, uint32_t uptime, uint32_t epoch_time, uint8_t battery) |
| Determine whether a task should be terminated. | |
Task Runner task scheduling.
SPDX-License-Identifier: FSL-1.1-ALv2