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
26
38typedef void (*algorithm_run_fn)(const struct zbus_channel *chan);
39
41 /* Unique algorithm identifier */
42 uint32_t algorithm_id;
43 /* Primary channel that triggers algorithm run */
44 uint32_t zbus_channel;
45 /* Function that implements the algorithm */
47} __packed;
48
54#define ALGORITHM_EXPORT(symbol) EXPORT_GROUP_SYMBOL_NAMED(INFUSE_ALG, symbol, algorithm_config);
55
59
60#ifdef __cplusplus
61}
62#endif
63
64#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)
Algorithm implementation.
Definition implementation.h:38
void(* algorithm_run_fn)(const struct zbus_channel *chan, const struct algorithm_runner_common_config *common, const void *args, void *data)
Algorithm implementation.
Definition runner.h:58
Definition implementation.h:40
uint32_t algorithm_id
Definition implementation.h:42
algorithm_run_fn fn
Definition implementation.h:46
uint32_t zbus_channel
Definition implementation.h:44