mirror of
https://github.com/alexandrebobkov/ESP-Nodes.git
synced 2025-12-07 20:05:02 +00:00
mongoose
This commit is contained in:
169
ESP-Mongoose_UI/mongoose/mongoose_glue.h
Normal file
169
ESP-Mongoose_UI/mongoose/mongoose_glue.h
Normal file
@@ -0,0 +1,169 @@
|
||||
// SPDX-FileCopyrightText: 2024 Cesanta Software Limited
|
||||
// SPDX-License-Identifier: GPL-2.0-only or commercial
|
||||
// Generated by Mongoose Wizard, https://mongoose.ws/wizard/
|
||||
|
||||
#ifndef MONGOOSE_GLUE_H
|
||||
#define MONGOOSE_GLUE_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "mongoose.h"
|
||||
|
||||
#define WIZARD_ENABLE_HTTP 1
|
||||
#define WIZARD_ENABLE_HTTPS 1
|
||||
#define WIZARD_ENABLE_HTTP_UI 1
|
||||
#define WIZARD_ENABLE_HTTP_UI_LOGIN 1
|
||||
|
||||
#define WIZARD_ENABLE_WEBSOCKET 1
|
||||
|
||||
#define WIZARD_ENABLE_MQTT 1
|
||||
#define WIZARD_MQTT_URL "mqtt://techquadbit.ddns.net"
|
||||
|
||||
#define WIZARD_ENABLE_SNTP 1 // Enable time sync.
|
||||
#define WIZARD_SNTP_TYPE 0 // 0: default Google, 1: DHCP, 2: custom
|
||||
#define WIZARD_SNTP_URL "udp://time.google.com:123" // Custom SNTP server URL
|
||||
#define WIZARD_SNTP_INTERVAL_SECONDS 3600 // Frequency of SNTP syncs
|
||||
|
||||
#define WIZARD_DNS_TYPE 0 // 0: default Google, 1: DHCP, 2: custom
|
||||
#define WIZARD_DNS_URL "udp://8.8.8.8:53" // Custom DNS server URL
|
||||
#define WIZARD_CAPTIVE_PORTAL 0
|
||||
|
||||
#define WIZARD_ENABLE_MODBUS 0
|
||||
#define WIZARD_MODBUS_PORT 502
|
||||
|
||||
#ifndef WIZARD_REBOOT_TIMEOUT_MS
|
||||
#define WIZARD_REBOOT_TIMEOUT_MS 500
|
||||
#endif
|
||||
|
||||
void mongoose_init(void); // Initialise Mongoose
|
||||
void mongoose_poll(void); // Poll Mongoose
|
||||
extern struct mg_mgr g_mgr; // Mongoose event manager
|
||||
|
||||
void mongoose_set_http_handlers(const char *name, ...);
|
||||
void mongoose_add_ws_handler(unsigned ms, void (*)(struct mg_connection *));
|
||||
|
||||
struct mongoose_mqtt_handlers {
|
||||
struct mg_connection *(*connect_fn)(mg_event_handler_t);
|
||||
void (*tls_init_fn)(struct mg_connection *);
|
||||
void (*on_connect_fn)(struct mg_connection *, int);
|
||||
void (*on_message_fn)(struct mg_connection *, struct mg_str, struct mg_str);
|
||||
void (*on_cmd_fn)(struct mg_connection *, struct mg_mqtt_message *);
|
||||
};
|
||||
void mongoose_set_mqtt_handlers(struct mongoose_mqtt_handlers *);
|
||||
|
||||
struct mongoose_modbus_handlers {
|
||||
bool (*read_reg_fn)(uint16_t address, uint16_t *value);
|
||||
bool (*write_reg_fn)(uint16_t address, uint16_t value);
|
||||
};
|
||||
void mongoose_set_modbus_handlers(struct mongoose_modbus_handlers *);
|
||||
|
||||
#define run_mongoose() \
|
||||
do { \
|
||||
mongoose_init(); \
|
||||
for (;;) { \
|
||||
mongoose_poll(); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#if WIZARD_ENABLE_MQTT
|
||||
void glue_lock_init(void); // Initialise global Mongoose mutex
|
||||
void glue_lock(void); // Lock global Mongoose mutex
|
||||
void glue_unlock(void); // Unlock global Mongoose mutex
|
||||
#else
|
||||
#define glue_lock_init()
|
||||
#define glue_lock()
|
||||
#define glue_unlock()
|
||||
#endif
|
||||
|
||||
// Increment device change state counter - trigger UI refresh
|
||||
void glue_update_state(void);
|
||||
|
||||
// Firmware Glue
|
||||
|
||||
|
||||
|
||||
extern struct mg_connection *g_mqtt_conn; // MQTT client connection
|
||||
|
||||
void glue_mqtt_tls_init(struct mg_connection *);
|
||||
struct mg_connection *glue_mqtt_connect(mg_event_handler_t ev_hanler_fn);
|
||||
void glue_mqtt_on_connect(struct mg_connection *c, int code);
|
||||
void glue_mqtt_on_message(struct mg_connection *c, struct mg_str topic,
|
||||
struct mg_str data);
|
||||
void glue_mqtt_on_cmd(struct mg_connection *c, struct mg_mqtt_message *mm);
|
||||
|
||||
|
||||
void glue_sntp_on_time(uint64_t utc_time_in_milliseconds);
|
||||
|
||||
|
||||
int glue_authenticate(const char *user, const char *pass);
|
||||
|
||||
void glue_start_reboot(struct mg_str); // Start an action
|
||||
bool glue_check_reboot(void); // Check if action is still in progress
|
||||
|
||||
void glue_start_reformat(struct mg_str); // Start an action
|
||||
bool glue_check_reformat(void); // Check if action is still in progress
|
||||
|
||||
void *glue_ota_begin_firmware_update(char *file_name, size_t total_size);
|
||||
bool glue_ota_end_firmware_update(void *context);
|
||||
bool glue_ota_write_firmware_update(void *context, void *buf, size_t len);
|
||||
|
||||
void *glue_file_open_file_upload(char *file_name, size_t total_size);
|
||||
bool glue_file_close_file_upload(void *context);
|
||||
bool glue_file_write_file_upload(void *context, void *buf, size_t len);
|
||||
|
||||
void glue_reply_graph_data(struct mg_connection *, struct mg_http_message *);
|
||||
struct state {
|
||||
int speed;
|
||||
int temperature;
|
||||
int humidity;
|
||||
int uptime;
|
||||
char version[20];
|
||||
bool online;
|
||||
bool lights;
|
||||
int level;
|
||||
};
|
||||
void glue_get_state(struct state *);
|
||||
|
||||
struct leds {
|
||||
bool led1;
|
||||
bool led2;
|
||||
bool led3;
|
||||
};
|
||||
void glue_get_leds(struct leds *);
|
||||
void glue_set_leds(struct leds *);
|
||||
|
||||
struct network_settings {
|
||||
char ip_address[20];
|
||||
char gw_address[20];
|
||||
char netmask[20];
|
||||
bool dhcp;
|
||||
};
|
||||
void glue_get_network_settings(struct network_settings *);
|
||||
void glue_set_network_settings(struct network_settings *);
|
||||
|
||||
struct settings {
|
||||
char string_val[40];
|
||||
char log_level[10];
|
||||
double double_val;
|
||||
int int_val;
|
||||
bool bool_val;
|
||||
};
|
||||
void glue_get_settings(struct settings *);
|
||||
void glue_set_settings(struct settings *);
|
||||
|
||||
struct security {
|
||||
char admin_password[40];
|
||||
char user_password[40];
|
||||
};
|
||||
void glue_get_security(struct security *);
|
||||
void glue_set_security(struct security *);
|
||||
|
||||
void glue_reply_loglevels(struct mg_connection *, struct mg_http_message *);
|
||||
void glue_reply_events(struct mg_connection *, struct mg_http_message *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif // MONGOOSE_GLUE_H
|
||||
Reference in New Issue
Block a user