#include "pch.h" #include "ElectricEqpmt_Breaker_400V_Circuit.h" CElectricEqpmt_Breaker_400V_Circuit::CElectricEqpmt_Breaker_400V_Circuit(void) { SetSubType(Electric_Breaker_Circuit); } CElectricEqpmt_Breaker_400V_Circuit::~CElectricEqpmt_Breaker_400V_Circuit(void) { } int CElectricEqpmt_Breaker_400V_Circuit::CheckEqpmtCtrlCase(int status,ELEEQPMTMAP& ElectricEqpmtMap,int stdid,int subsysid,int trianid,int stationid,int viewid,int CtrlType, int nMark) { // 真实设备反馈状态变化,不进行校验直接更新 if (OperClient_RealSys == nMark || OperClient_RealSynch == nMark) { return DH_CmdReplyStatus_Pass; } // 400V母联断路器手动操作,三合两闭处理逻辑 int nRetStatus = DH_CmdReplyStatus_Pass; ELEEQPMTMAP::iterator iterBolt = ElectricEqpmtMap.find(GetAutoBoltID()); if (iterBolt != ElectricEqpmtMap.end() ) { ElectricEqpmt_PowerBolt* pEqpmtBolt = (ElectricEqpmt_PowerBolt*)iterBolt->second; if ( pEqpmtBolt != NULL ) { if (GetStatus()==Electric_Eqpmt_Status_OFF && GetRelationBreakerType()==EQPMT_RELATIONTYPE_AUTOBOLT && GetSubType()==Electric_Breaker_Circuit) { nRetStatus = pEqpmtBolt->GetEqpmtCtrlCaseStatus_CircuitBreaker_OnByHand(status,ElectricEqpmtMap); } if ( nRetStatus == DH_CmdReplyStatus_Deny ) { if (trianid>0) { std::stringstream ss; ss << GetEqpmentName() << " 操作禁止"; std::string retstr = ss.str(); DHSVRREPLY CheckReplyMsg; memset(&CheckReplyMsg,0,sizeof(DHSVRREPLY)) ; strncpy(CheckReplyMsg.ReplyText, retstr.c_str(), sizeof(CheckReplyMsg.ReplyText)); CheckReplyMsg.CmdID = OCCCOMMAND::eUpdateOperCheck; string strName=GetEqpmentID(); strncpy(CheckReplyMsg.EqpmtStrID, strName.c_str(), sizeof(CheckReplyMsg.EqpmtStrID)); CheckReplyMsg.CtrlLock=GetControlLock(); CheckReplyMsg.StdID = stdid; CheckReplyMsg.EqpmtStatus =nRetStatus; CheckReplyMsg.StationID=stationid; CheckReplyMsg.ViewID = viewid; CheckReplyMsg.SubSysID = subsysid; OCCCOMMAND NetOrder; NetOrder.DesSysType = OCC_SYS_DD_CLIENT; NetOrder.ScrSysType = OCC_SYS_DD_SVR; NetOrder.TrainningID = trianid; NetOrder.setPacketValue(&CheckReplyMsg,OCCCOMMAND::eUpdateSvrReply); p_SendList->push(NetOrder); return nRetStatus; } } } } return CElectricEqpmt_SwicthEqpmt::CheckEqpmtCtrlCase(status, ElectricEqpmtMap, stdid, subsysid, trianid, stationid, viewid, CtrlType, nMark); }