Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
runner.h
Go to the documentation of this file.
1
10#ifndef INFUSE_SDK_INCLUDE_INFUSE_ALGORITHM_RUNNER_RUNNER_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_ALGORITHM_RUNNER_RUNNER_H_
12
13#include <stdint.h>
14
15#include <zephyr/toolchain.h>
16#include <zephyr/sys/slist.h>
17#include <zephyr/zbus/zbus.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
30 /* Unique algorithm identifier */
31 uint32_t algorithm_id;
32 /* Primary channel that triggers algorithm run */
33 uint32_t zbus_channel;
34 /* Required runtime state size */
35 uint16_t state_size;
36 /* Algorithm output logging */
37 struct {
39 uint8_t loggers;
41 uint8_t tdf_mask;
43} __packed;
44
58typedef void (*algorithm_run_fn)(const struct zbus_channel *chan, const void *config, void *data);
59
61 /* Function that implements the algorithm */
63 /* Algorithm configuration */
65 /* Algorithm runtime state */
67 /* Internal state: new data on channel */
68 const struct zbus_channel *_changed;
69 /* Internal state: list node object*/
70 sys_snode_t _node;
71};
72
79
89
99
110void algorithm_runner_tdf_log(const struct algorithm_runner_common_config *config, uint8_t tdf_mask,
111 uint16_t tdf_id, uint8_t tdf_len, uint64_t time, const void *data);
112
117#ifdef __cplusplus
118}
119#endif
120
121#endif /* INFUSE_SDK_INCLUDE_INFUSE_ALGORITHM_RUNNER_RUNNER_H_ */
void algorithm_runner_tdf_log(const struct algorithm_runner_common_config *config, uint8_t tdf_mask, uint16_t tdf_id, uint8_t tdf_len, uint64_t time, const void *data)
Log a single TDF as requested by algorithm configuration.
bool algorithm_runner_unregister(struct algorithm_runner_algorithm *algorithm)
Unregister an algorithm from the runner.
void algorithm_runner_register(struct algorithm_runner_algorithm *algorithm)
Register an algorithm with the runner.
void(* algorithm_run_fn)(const struct zbus_channel *chan, const void *config, void *data)
Algorithm implementation.
Definition runner.h:58
void algorithm_runner_init(void)
Initialise the algorithm runner.
Definition runner.h:60
algorithm_run_fn impl
Definition runner.h:62
const struct algorithm_runner_common_config * config
Definition runner.h:64
void * runtime_state
Definition runner.h:66
Definition runner.h:29
struct algorithm_runner_common_config::@5 logging
uint8_t loggers
TDF loggers to log to.
Definition runner.h:39
uint16_t state_size
Definition runner.h:35
uint32_t zbus_channel
Definition runner.h:33
uint32_t algorithm_id
Definition runner.h:31
uint8_t tdf_mask
TDFs to log (bitmask defined by the activity)
Definition runner.h:41