Modbus Vault v1.0
Loading...
Searching...
No Matches
event_bus.h
Go to the documentation of this file.
1
14#ifndef EVENT_BUS_H
15#define EVENT_BUS_H
16
17#include "esp_err.h"
18
19#include <stddef.h>
20#include <stdint.h>
21
22#define EVENT_BUS_TASK_NAME ("EVENT_BUS")
23#define EVENT_BUS_TASK_STACK_DEPTH (2024U)
24#define EVENT_BUS_TASK_PRIORITY (3U)
25#define EVENT_BUS_TASK_CPU_AFFINITY (0U)
26#define EVENT_BUS_TASK_NOTIFY_STOP_BIT (1U << 0U)
27#define EVENT_BUS_TASK_NOTIFY_event_available_BIT (1U << 1U)
35
39typedef struct {
41 union {
42 uint32_t data;
43 void *data_ptr;
44 } payload;
45 size_t size;
46 int64_t timestamp_us;
48
49typedef void (*event_bus_cb_t) (const event_bus_t *event, void *ctx);
62esp_err_t event_bus_init (size_t queue_size);
63
73bool event_bus_publish (const event_bus_t *event_ptr);
74
84int8_t event_bus_subscribe (event_bus_event_t type, event_bus_cb_t cb, void *ctx);
85
93bool event_bus_unsubscribe (int8_t slot);
94
98void event_bus_deinit (void);
99
100#endif
void(* event_bus_cb_t)(const event_bus_t *event, void *ctx)
Definition event_bus.h:49
int8_t event_bus_subscribe(event_bus_event_t type, event_bus_cb_t cb, void *ctx)
Subscribe to event.
Definition event_bus.c:166
bool event_bus_unsubscribe(int8_t slot)
Unsubscribe from event.
Definition event_bus.c:185
void event_bus_deinit(void)
deinitialize event bus
Definition event_bus.c:198
esp_err_t event_bus_init(size_t queue_size)
Initialize event bus.
Definition event_bus.c:111
event_bus_event_t
Event bus event type enum.
Definition event_bus.h:32
@ EVENT_BUS_EVENT_ERROR
Definition event_bus.h:33
bool event_bus_publish(const event_bus_t *event_ptr)
Publish an event.
Definition event_bus.c:146
Event bus type structure.
Definition event_bus.h:39
size_t size
Definition event_bus.h:45
int64_t timestamp_us
Definition event_bus.h:46
event_bus_event_t type
Definition event_bus.h:40
void * data_ptr
Definition event_bus.h:43
uint32_t data
Definition event_bus.h:42