// // Created by zwsd // #pragma once #include #include #include #include #include #include #include #include #include #include "iflytop/components/restful_server/restful_server.hpp" #include "iflytop/core/components/jobs/work_queue.hpp" #include "iflytop/core/components/timer/simple_timer.hpp" #include "iflytop/core/spdlogfactory/logger.hpp" #include "iflytoplinuxsdk/src/iflytop/components/iflytop_front_end_service/iflytop_front_end_service.hpp" #include "service/device_state_service.hpp" #include "service/disinfection_ctl_service.hpp" // #include "configs/gconfig.hpp" #include "iflytop/components/iflytop_front_end_service/iflytop_front_end_service.hpp" #include "zservice_container/zservice_container.hpp" // // #include "db/db_service.hpp" #include "iflytop/components/zcanreceiver/zcanhost.hpp" #include "service/device_io_control_service.hpp" #include "service/disinfection_logs_manager.hpp" #include "src/service/iflytop_can_host_device.hpp" /** * @brief * * service: MainControlService * * 监听事件: * 依赖状态: * 依赖服务: * 作用: * */ namespace iflytop { using namespace std; using namespace core; class MainControlService : public enable_shared_from_this { ENABLE_LOGGER(MainControlService); shared_ptr m_zconfig; shared_ptr m_restfulServer; shared_ptr m_iflytopwsService; shared_ptr m_dbService; shared_ptr m_deviceStateService; shared_ptr m_disinfectionCtrlService; shared_ptr m_deviceIoControlService; shared_ptr m_disinfectionLogsManager; shared_ptr m_zcanhost; unique_ptr m_reportThread; unique_ptr m_autoshutdownThread; public: MainControlService(){}; void initialize(); private: void dosystem(string order, bool dump) { if (dump) logger->info("do:{}", order); system(order.c_str()); } private: HttpResponsePtr reactionConfigCardInfo_read(HttpRequestPtr, shared_ptr, std::shared_ptr); HttpResponsePtr reactionConfigCardInfo_trigger_once_report(HttpRequestPtr, shared_ptr, std::shared_ptr); HttpResponsePtr reactionConfigCardInfo_read_state(HttpRequestPtr, shared_ptr, std::shared_ptr); HttpResponsePtr hello_world(HttpRequestPtr, shared_ptr, std::shared_ptr); // HttpResponsePtr doscript(HttpRequestPtr, shared_ptr, std::shared_ptr); HttpResponsePtr doscriptblock(HttpRequestPtr, shared_ptr, std::shared_ptr); HttpResponsePtr stopscript(HttpRequestPtr, shared_ptr, std::shared_ptr); void createReactionConfigCardInfoReportAndSend(); void processFrontEndMessage(weak_ptr webSocket, json& cmd, json& receipt); json createSensorDataJson(); }; } // namespace iflytop