24#ifndef DETERMINISTICESPASYNCWEBSERVER_SOUTHBOUND_H
25#define DETERMINISTICESPASYNCWEBSERVER_SOUTHBOUND_H
31#if DETWS_ENABLE_SOUTHBOUND
39 static constexpr int SB_OK = 0;
40 static constexpr int SB_ERR_NOT_FOUND = -1;
41 static constexpr int SB_ERR_UNSUPPORTED = -2;
42 static constexpr int SB_ERR_ARG = -3;
43 static constexpr int SB_ERR_FULL = -4;
44 static constexpr int SB_ERR_DUP = -5;
55struct SouthboundDriver
58 int (*read)(
void *ctx, uint32_t point, int32_t *value_out);
59 int (*write)(
void *ctx, uint32_t point, int32_t value);
60 int (*read_block)(
void *ctx, uint32_t first, int32_t *out,
size_t n);
61 int (*write_block)(
void *ctx, uint32_t first,
const int32_t *in,
size_t n);
69int detws_southbound_register(
const SouthboundDriver *drv);
72void detws_southbound_clear(
void);
75size_t detws_southbound_count(
void);
78const SouthboundDriver *detws_southbound_find(
const char *name);
81int detws_southbound_read(
const char *name, uint32_t point, int32_t *value_out);
84int detws_southbound_write(
const char *name, uint32_t point, int32_t value);
87int detws_southbound_read_block(
const char *name, uint32_t first, int32_t *out,
size_t n);
90int detws_southbound_write_block(
const char *name, uint32_t first,
const int32_t *in,
size_t n);
User-facing configuration for DeterministicESPAsyncWebServer.