#ifndef COMMAND_HANDLER_H #define COMMAND_HANDLER_H #include #include #include "config_manager.h" #include "wifi_manager.h" #include "gsm_manager.h" #include "transport_manager.h" #include "mqtt_client.h" #include "acuvim_reader.h" #include "acuvim_registers.h" #include "ota_manager.h" #include "sd_manager.h" #include "health_monitor.h" class CommandHandler { public: void begin(ConfigManager& config, WifiManager& wifi, GsmManager& gsm, TransportManager& transport, MqttClient& mqtt, AcuvimReader& acuvim, OtaManager& ota, SdManager& sd, HealthMonitor& health); void handleCommand(const String& topic, const String& payload); void setLatestData(const AcuvimData& data) { _lastData = data; } bool isRegistered() const { return _registered; } void sendRegistration(); private: ConfigManager* _config; WifiManager* _wifi; GsmManager* _gsm; TransportManager* _transport; MqttClient* _mqtt; AcuvimReader* _acuvim; OtaManager* _ota; SdManager* _sd; HealthMonitor* _health; AcuvimData _lastData; bool _registered; void respond(const char* requestId, const char* status, JsonDocument& doc); void cmdPing(const char* requestId); void cmdGetConfig(const char* requestId); void cmdGetStatus(const char* requestId); void cmdGetTelemetry(const char* requestId); void cmdRestart(const char* requestId); void cmdFactoryReset(const char* requestId, JsonObject& params); void cmdWifiScan(const char* requestId); void cmdWifiSet(const char* requestId, JsonObject& params); void cmdWifiDisconnect(const char* requestId); void cmdMqttSet(const char* requestId, JsonObject& params); void cmdGsmSet(const char* requestId, JsonObject& params); void cmdTransportPriority(const char* requestId, JsonObject& params); void cmdSleepSet(const char* requestId, JsonObject& params); void cmdModbusSet(const char* requestId, JsonObject& params); void cmdConsoleSet(const char* requestId, JsonObject& params); void cmdOtaUpdate(const char* requestId, JsonObject& params); void cmdOtaCheck(const char* requestId); void cmdSetHeartbeat(const char* requestId, JsonObject& params); void cmdSetAlerts(const char* requestId, JsonObject& params); void cmdRegisterAck(const char* requestId, JsonObject& params); }; #endif