24#ifndef PROTOCORE_DASHBOARD_H
25#define PROTOCORE_DASHBOARD_H
29#if PROTOCORE_ENABLE_DASHBOARD
41 PROTOCORE_WIDGET_VALUE = 0,
42 PROTOCORE_WIDGET_GAUGE,
44 PROTOCORE_WIDGET_SPARKLINE,
45 PROTOCORE_WIDGET_CHART,
47 PROTOCORE_WIDGET_BUTTON,
48 PROTOCORE_WIDGET_TOGGLE,
49 PROTOCORE_WIDGET_SLIDER
50} protocore_widget_type;
53typedef void (*protocore_control_cb)(
const char *key,
float value);
58 protocore_widget_type type;
69 const protocore_widget *widgets;
71} DashboardConfigureArgs;
85} DashboardLayoutJsonArgs;
92} DashboardValuesJsonArgs;
97 protocore_control_cb cb;
98} DashboardOnControlArgs;
107} DashboardParseControlArgs;
113} DashboardDispatchControlArgs;
119 const protocore_widget *widgets;
158 DashboardConfigureArgs configure_args;
159 DashboardSetArgs set_args;
160 DashboardLayoutJsonArgs layout_json_args;
161 DashboardValuesJsonArgs values_json_args;
162 DashboardOnControlArgs on_control_args;
163 DashboardParseControlArgs parse_control_args;
164 DashboardDispatchControlArgs dispatch_control_args;
165 DashboardBeginArgs begin_args;
171extern DashboardVars DashboardV;
176 void (*
const configure)(uint8_t *work);
177 void (*
const set)(uint8_t *work);
178 void (*
const layout_json)(uint8_t *work);
179 void (*
const values_json)(uint8_t *work);
180 void (*
const on_control)(uint8_t *work);
181 void (*
const parse_control)(uint8_t *work);
182 void (*
const dispatch_control)(uint8_t *work);
183 void (*
const begin)(uint8_t *work);
184 void (*
const publish)(uint8_t *work);
189void protocore_dashboard_configure(uint8_t *work);
190void protocore_dashboard_set(uint8_t *work);
191void protocore_dashboard_layout_json(uint8_t *work);
192void protocore_dashboard_values_json(uint8_t *work);
193void protocore_dashboard_on_control(uint8_t *work);
194void protocore_dashboard_parse_control(uint8_t *work);
195void protocore_dashboard_dispatch_control(uint8_t *work);
196void protocore_dashboard_begin(uint8_t *work);
197void protocore_dashboard_publish(uint8_t *work);
203static const DashboardNs Dashboard __attribute__((unused)) = {
204 .configure = protocore_dashboard_configure,
205 .set = protocore_dashboard_set,
206 .layout_json = protocore_dashboard_layout_json,
207 .values_json = protocore_dashboard_values_json,
208 .on_control = protocore_dashboard_on_control,
209 .parse_control = protocore_dashboard_parse_control,
210 .dispatch_control = protocore_dashboard_dispatch_control,
211 .begin = protocore_dashboard_begin,
212 .publish = protocore_dashboard_publish,
224uint8_t *protocore_dashboard_span(
void);
PROTO_ENUM_PACKED
Application protocol spoken on a listener port or connection slot.
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS