#pragma once #include "CModuleNodeMngr.h" class CModuleExecuteMngr; class CModuleAlarmCreater; class CModuleMsgDeal { public: CModuleMsgDeal( CMbCommunicateInfo& mbInfo, CModuleNodeMngr& moduleNodeMngr, CModuleExecuteMngr& executemngr, CModuleAlarmCreater& alarm); ~CModuleMsgDeal(); void dealOptResponse(); void dealHmiUiResponse();//处理人工干预 void dealHmiSeqOperate();//处理顺控操作 bool seqStop(CNodeSeq& pNode,const SHmiOpInfo& seqOp);// hmi 顺控终止 private: void dealOptResponse(SOptCtrlReply* pOptResponse); bool dealOptResponse(const SOptResult& info); bool dealHmiUIReaponse( UiRequestMessageAck* pUIResponse); bool dealHmiSeqOperate( SeqOperateMessage* pOpreate, SActionErrorInfo& erroInfo, CNodeSeq*& retSeq );//处理顺控操作 bool dealHmiSeqOperateStart( SeqOperateMessage* pOpreate, SActionErrorInfo& erroInfo, CNodeSeq*& retSeq, bool isSes = false );//处理顺控开始操作 bool dealHmiSeqOperateStop( SeqOperateMessage* pOpreate, SActionErrorInfo& erroInfo, CNodeSeq*& retSeq );//处理顺控终止操作 bool dealHmiSeqOperatePause( SeqOperateMessage* pOpreate, SActionErrorInfo& erroInfo, CNodeSeq*& retSeq );//处理顺控暂停操作 bool dealHmiSeqOperateContinue( SeqOperateMessage* pOpreate, SActionErrorInfo& erroInfo, CNodeSeq*& retSeq );//处理顺控继续操作 bool seqActionOptReslut( CNodeAction& action, const SOptResult& info);//opt 操作应答 bool seqActionUiOp( CNodeAction& action, const SOpResultUi& result);//hmi 人工干预应答 bool seqStart(CNodeSeq& seq,const SHmiOpInfo& seqOp);// hmi 开始顺控 bool seqPause(CNodeSeq& seq,const SHmiOpInfo& seqOp);// hmi 暂停顺控 bool seqContinue(CNodeSeq& seq,const SHmiOpInfo& seqOp);// hmi 继续顺控 void createExecuter(CNodeSeq& seq, const SNodeSeqActor& actor); CNodeSeq* checkSeqNode(const SeqNodeStatusParameter& seq, SActionErrorInfo& erroInfo, bool checkTimeFlag = true); bool setSeqNodeCheckState( CNodeSeq& seq, const SeqNodeStatusParameter& seqParam, SActionErrorInfo& erroInfo); bool setFuncNodeCheckState( CNodeFunc& func, const FucNodeStatusParameter& funcParam, SActionErrorInfo& erroInfo); bool setActionNodeCheckState( CNodeAction& action, const ActionNodeStatusParameter& actionParam, SActionErrorInfo& erroInfo); SHmiOpInfo createHmiOpInfo(SeqOperateMessage* pOpreate); private: CMbCommunicateInfo& m_objMbInfo; CModuleNodeMngr& m_objNodeMngr;//顺控 功能 动作节点管理 CModuleExecuteMngr& m_objExecuterMngr;//动作处理管理模块 CModuleAlarmCreater& m_objAlarm;//报警生成模块 };