Add device-dashboard

This commit is contained in:
cpq committed 2026-04-18 13:07:08 +01:00
1 parent 5e01ae0c93
commit e304a27b0d
23 files changed
+1208 -1

No files matched your search

@@ -0,0 +1,46 @@
// SPDX-FileCopyrightText: 2026 Cesanta Software Limited
// SPDX-License-Identifier: GPL-2.0-only or commercial
#include "mongoose.h"
#if MG_ARCH == MG_ARCH_UNIX || MG_ARCH == MG_ARCH_WIN32
#define HTTP_ADDR "http://0.0.0.0:8000"
#else
#define HTTP_ADDR "http://0.0.0.0:80"
#endif
static const char *s_version = "1.2.3";
static bool s_led1 = true; // Mock LED
static void led1_get(union mg_val *val) {
val->b = s_led1;
}
static void led1_set(const union mg_val *val) {
s_led1 = val->b;
}
static void firmware_version_get(union mg_val *val) {
val->s = mg_str(s_version);
}
// Modify this. This represents device's state to the dashboard
static struct mg_field fields[] = {
{"led1", MG_VAL_BOOL, led1_get, led1_set},
{"firmware_version", MG_VAL_STR, firmware_version_get, NULL},
{NULL, 0, 0, 0},
};
void run_mongoose(void) {
struct mg_mgr mgr;
struct mg_dash dash = {fields};
mg_mgr_init(&mgr);
mg_http_listen(&mgr, HTTP_ADDR, mg_dash_ev_handler, &dash);
for (;;) {
mg_mgr_poll(&mgr, 10);
}
}
int main(void) {
run_mongoose();
return 0;
}