Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
implementation.h
Go to the documentation of this file.
1
9
10#ifndef INFUSE_SDK_INCLUDE_INFUSE_ALGORITHM_RUNNER_LLEXT_IMPLEMENTATION_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_ALGORITHM_RUNNER_LLEXT_IMPLEMENTATION_H_
12
13#include <zephyr/llext/symbol.h>
14
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
27
28struct infuse_algorithm;
29
43typedef void (*algorithm_run_fn)(const struct zbus_channel *chan,
44 const struct infuse_algorithm *algorithm, const void *args);
45
67
73#define ALGORITHM_EXPORT(symbol) EXPORT_GROUP_SYMBOL_NAMED(INFUSE_ALG, symbol, algorithm_config);
74
78
79#ifdef __cplusplus
80}
81#endif
82
83#endif /* INFUSE_SDK_INCLUDE_INFUSE_ALGORITHM_RUNNER_LLEXT_IMPLEMENTATION_H_ */
Application symbols that algorithms can use.
void(* algorithm_run_fn)(const struct zbus_channel *chan, const struct infuse_algorithm *algorithm, const void *args)
Algorithm implementation.
Definition implementation.h:43
Algorithm definition.
Definition implementation.h:47
uint8_t reserved
Currently unused struct padding.
Definition implementation.h:51
uint32_t algorithm_id
Unique algorithm identifier.
Definition implementation.h:55
uint32_t zbus_channel
Primary channel that triggers algorithm run.
Definition implementation.h:57
uint16_t arguments_size
Size of the arguments structure.
Definition implementation.h:61
uint16_t arguments_kv_key
KV Store key holding infuse_algorithm::arguments (If > 0)
Definition implementation.h:63
uint16_t algorithm_version
Algorithm implementation version.
Definition implementation.h:53
uint8_t struct_version
Version of the infuse_algorithm struct.
Definition implementation.h:49
algorithm_run_fn fn
Function that implements the algorithm.
Definition implementation.h:65
void * arguments
Algorithm arguments.
Definition implementation.h:59