123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef MODULE_WEB_H
- #define MODULE_WEB_H
- #include <memory>
- #include <string>
- #include <vector>
- #include "rapidjson/prettywriter.h"
- #include "rapidjson/document.h"
- #include "config_file.h"
- #include "module_singleton_base.h"
- #include "module_i_thread.h"
- #include "websocket/wsClientMgr.h"
- struct ya_event;
- class module_web : public i_thread, public singleton_base<module_web>
- {
- private:
- friend class singleton_base<module_web>;
- module_web()
- {
- }
- public:
- /**
- * @brief 用来处理WEB发送的请求(web请求回调函数)
- * @param ID
- * @param name
- * @param data
- * @param need_ack
- * @param ack_resp
- */
- static void accept( int ID, std::string const& name,
- sio::message::ptr const& data, bool need_ack, sio::message::list &ack_resp );
- /**
- * @brief 注册web请求回调函数
- * @param MsgFuncList
- */
- void init(config_file& config, std::map<std::string, sys::MSG_HANDLE_FUNC_TYPE>& MsgFuncList)
- {
- sleep_ms = std::stoi(config.get("service.interval_send_json_alarm_ms","10000"));
- MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_META_DATA_CHANGED, &module_web::accept ) );
- MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_REQUEST_ALL_DATA, &module_web::accept ) );
- MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_DEAL_HELP, &module_web::accept ) );
- MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_CALL_CARD_REQUEST, &module_web::accept ) );
- MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_CALL_CARD_CANCEL_REQUEST, &module_web::accept ) );
- MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_CLEAR_CARD, &module_web::accept ) );//手动升井
- MsgFuncList.insert( std::make_pair( JSON_CMD_REQ_ALL_PERSON_ON_CAR,&module_web::accept)); // 接收web端请求的在车上的人卡信息
- MsgFuncList.insert( std::make_pair( JSON_CMD_VALUE_LIGHTS_CTRL_REQUEST, &module_web::accept)); // 红绿灯控制指令
- MsgFuncList.insert(std::make_pair(JSON_KEY_NAME_SETTING, &module_web::accept)); // 更改选解方式
- }
- /// web前端有用户登录时,反馈给web所有信息
- void response_login();
- private:
- /**
- * @brief 线程函数
- */
- void run();
- ///获取所有的告警事件
- void _get_all_events(std::vector<std::shared_ptr<ya_event>>& arr,bool f=false);
- ///在全局列表中删除已经处理或结束了的告警
- void _delete_end(std::vector<std::shared_ptr<ya_event>>& arr);
- };
- #endif // MODULE_WEB_H
|