/** * @file web_server.h * @brief Web 管理服务模块 — HTTP REST API + WebSocket 实时数据通道 * @details 基于 mongoose v7.22 实现嵌入式 Web 服务器。 * 作为 RTU X-Macro 框架的线程模块运行。 * * 功能: * - HTTP 静态文件服务(packed_fs 内嵌前端) * - WebSocket 信号实时推送(增量更新) * - 5 种信号类型增删改查(out/in/yk/ao/param) * - 远程命令执行(捕获 stdout 回传) * - 文件上传/下载 * - 异步命令输出通道 */ #ifndef _WEB_SERVER_H_ #define _WEB_SERVER_H_ #include "myBase.h" #include "mySystem.h" #ifdef __cplusplus extern "C" { #endif #define MODULE_WEB_SERVER "web_server" /** WebSocket 信号类型 */ typedef enum { WS_SIG_OUT = 0, WS_SIG_IN, WS_SIG_YK, WS_SIG_AO, WS_SIG_PARAM, WS_SIG_MAX } enum_ws_sig_type; struct mg_connection; /* ---- X-Macro 框架入口 ---- */ int app_web_server_init1(void *arg); int app_web_server_init2(void *arg); void *app_web_server(void *arg); /* ---- 广播/单播发送 ---- */ void ws_send_all(const char *p_tx, size_t tx_len); bool ws_send_one(unsigned long conn_id, const char *p_tx, size_t tx_len); bool ws_send_binary(unsigned long conn_id, const void *data, size_t len); /* ---- 异步命令通道 ---- */ void ws_set_async_cmd_conn(const char *module, unsigned long conn_id); unsigned long ws_get_async_cmd_conn(const char *module); #ifdef __cplusplus } #endif #endif /* _WEB_SERVER_H_ */