#include "pch.h" #include "ElectricEqpmt_Breaker_DC.h" #include "PublicEqpmtID.h" CElectricEqpmt_Breaker_DC::CElectricEqpmt_Breaker_DC(void) { } CElectricEqpmt_Breaker_DC::~CElectricEqpmt_Breaker_DC(void) { } int CElectricEqpmt_Breaker_DC::CheckEqpmtCtrlCaseTouchnetTest(int status,ELEEQPMTMAP& ElectricEqpmtMap,int stdid,int subsysid,int trianid,int stationid,int viewid) { //xyx修改begin string EqpmtTypeName = GetBaseTypeName(); //设备类型名称 string EqpmtName = GetEqpmentName(); //设备名称 int EqpmtSourceStatonID = GetSourceStationID(); //设备所属车站ID int EqpmtType = GetBaseType(); //设备类型 int retstatus = DH_CmdReplyStatus_Deny; vector::iterator vec=m_FaultEqpmt.begin(); bool Test_Fail = false; for (;vec!=m_FaultEqpmt.end();vec++) { ELEEQPMTMAP::iterator iterFaultEqpmt; iterFaultEqpmt=ElectricEqpmtMap.find(*vec); if (iterFaultEqpmt!=ElectricEqpmtMap.end()&&iterFaultEqpmt->second->GetFaultLockStatus()==Electric_Eqpmt_Status_Lock&&iterFaultEqpmt->second->GetBaseType()==OCC_EQPMTTYPE_TouchNet) { retstatus = DH_CmdReplyStatus_Deny; int nActType1 = ElcAlarm_TripActType_TouchnetTest_Fail; //“线路测试未通过”报文类型 UpdateAlarmType(EqpmtType,EqpmtTypeName,EqpmtName,EqpmtSourceStatonID,nActType1); Test_Fail = true; break; } } if (!Test_Fail) { retstatus = DH_CmdReplyStatus_Pass; int nActType2 = ElcAlarm_TripActType_TouchnetTest_Success; //“线路测试通过”报文类型 UpdateAlarmType(EqpmtType, EqpmtTypeName, EqpmtName, EqpmtSourceStatonID, nActType2); } return retstatus; //xyx修改end } //直流断路器合闸前进行线路测试测试通过后合闸操作才可操作成功 void CElectricEqpmt_Breaker_DC::EqpmtCtrl( int status,ELEEQPMTMAP& ElectricEqpmtMap,string Stdid,int CtrlType, int nMark /*= 0*/ ) { CElectricEqpmt_SwicthEqpmt::EqpmtCtrl(status, ElectricEqpmtMap, Stdid, CtrlType, nMark ); if (CtrlType==CTRLTYPE_LOCKSTATUS) { UpdateLockStatus(status); } else if (CtrlType ==CTRLTYPE_STATUS) { if (GetControlLock()==Electric_Eqpmt_Status_UnLock) { string EqpmtTypeName = GetBaseTypeName(); //设备类型名称 string EqpmtName = GetEqpmentName(); //设备名称 int EqpmtSourceStatonID = GetSourceStationID(); //设备所属车站ID int EqpmtType = GetBaseType(); //设备类型 if (status==Eqpmt_Operation_ON&&GetStatus()==Electric_Eqpmt_Status_OFF) { int CheckResult=-1; CheckResult = CheckEqpmtCtrlCaseTouchnetTest(status,ElectricEqpmtMap,0,GetOperSubsysID(),m_Trianid,GetSourceStationID(),GetViewID()); //合闸前进行线路测试 if (CheckResult==DH_CmdReplyStatus_Deny) { return; } else { TurnOn(ElectricEqpmtMap); int nActType = ElcAlarm_TripActType_Close; //“合闸”类型 UpdateAlarmType(EqpmtType,EqpmtTypeName,EqpmtName,EqpmtSourceStatonID,nActType); UpdateOperResultToTechEva(GetEqpmentID(),GetStatus()); //更新“合闸”执行结果 } } } } }