| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814 |
- #include "pch.h"
- #include "ElectricEqpmt_SwicthEqpmt.h"
- #include "ElectricEqpmt_Breaker.h"
- #include "ElectricEqpmt_IsolatingSwitch_ThreePosition.h"
- bool CElectricEqpmt_SwicthEqpmt::handle_delaytime(time_t& time, map<string, BaseElectricEqpmt*>& eqpmtmap, const DelayTimeInfo& delayparm)
- {
- //xyx����begin
- string EqpmtTypeName = GetBaseTypeName(); //�豸��������
- string EqpmtName = GetEqpmentName(); //�豸����
- int EqpmtSourceStatonID = GetSourceStationID(); //�豸�����վID
- int EqpmtType = GetBaseType(); //�豸����
- //xyx����end
- if (delayparm.type == Auto_DelayTime_CtrlExecution) //�豸����ִ�е�
- {
- // ʱ�����ж�
- if (time - delayparm.occartime <= delayparm.delaydur)
- return true;
- // �ж��Ƿ�ӳ������ʵ�豸
- // ����ʵ�豸����Ҫ�ȴ��豸����
- if (checkReallyEqpmtFlag())
- {
- // ��ʵ�豸�Ѿ�����
- if (checkRealEqpmtFeedback())
- {
- // ��ʵ�豸������״̬��Ҫִ�е�Ŀ��״̬�Ƚ�
- // һ��˵��ִ�гɹ�����ͬ������״̬�������в���
- if (delayparm.destatus == getRealEqpmtStatus())
- {
- EqpmtCtrl(delayparm.destatus, eqpmtmap, "", CTRLTYPE_STATUS, GetCtrlMark());
- }
- setRealEqpmtFeedback(false);
- }
- }
- else //���������豸ֱ��ִ�ж���
- {
- EqpmtCtrl(delayparm.destatus, eqpmtmap, "", CTRLTYPE_STATUS, GetCtrlMark());
- }
- ResetCtrlMark();
- return false;
- }
- return true;
- }
- CElectricEqpmt_SwicthEqpmt::CElectricEqpmt_SwicthEqpmt()
- {
- //CtrlLockStatus=Electric_Eqpmt_Status_UnLock;
- SetControlLock(Electric_Eqpmt_Status_UnLock);
- p_DelayTimeMap=nullptr;
- //CardStatus=ELC_EQPMTCARDSTATUS_NORMAL;
- //CtrlArea=ELC_EQPMTCTRL_REMOTE;
- }
- void CElectricEqpmt_SwicthEqpmt::TurnOn(ELEEQPMTMAP& ElectricEqpmtMap)
- {
- // ���ϳ�����Ҫ�������豸�����в���
- if (GetFaultSceneLock())
- {
- return;
- }
- UpdateEqpmtStatus(ElectricEqpmtMap,Electric_Eqpmt_Status_ON);
- if (JudgeIsInputPower(ElectricEqpmtMap))
- {
- SetPower(true);
- PowerIn(ElectricEqpmtMap,GetEqpmentID());
- }
- //400V���ɿض�·����բ �绷���Ϲ���
- if (GetBaseType() == OCC_EQPMTTYPE_400vACUncontrolBreaker)
- {
- SetPower(true);
- }
- DealElcTurnOffArea();
- }
- bool CElectricEqpmt_SwicthEqpmt::JudgeIsInputPower(ELEEQPMTMAP& ElectricEqpmtMap)
- {
- std::map<string,InputLineInfo>::iterator iter1 = InputEqpmtIDMap.begin();
- for (;iter1!=InputEqpmtIDMap.end();iter1++)
- {
- ELEEQPMTMAP::iterator iter_Input=ElectricEqpmtMap.find(iter1->second.ID);
- if (iter_Input!=ElectricEqpmtMap.end())
- {
- if (iter_Input->second->GetPower())
- {
- return true;
- }
- }
- }
- return false;
- }
- void CElectricEqpmt_SwicthEqpmt::UpdateLockStatus(int status)
- {
- if (GetControlLock()!=status)
- {
- //CtrlLockStatus=status;
- SetControlLock(status);
- //xyx����begin
- //if (GetControlLock()==Electric_Eqpmt_Status_UnLock)
- //{
- // string text;
- // text.Format(" %s %s ���Ʊ������",GetBaseTypeName(),GetEqpmentName());
- // SendMsgNotice(GetSourceStationID(),GetRegion(),3,DH_MSGCATEGORY_SOE,text);
- // //UpdateEqpmtStatus(ElectricEqpmtMap,Electric_Eqpmt_Status_ON);
- //}
- //else if (GetControlLock()==Electric_Eqpmt_Status_Lock)
- //{
- // string text;
- // text.Format(" %s %s ���Ʊ���",GetBaseTypeName(),GetEqpmentName());
- // SendMsgNotice(GetSourceStationID(),GetRegion(),3,DH_MSGCATEGORY_SOE,text);
- //}
- //xyx����end
- //xyx����begin
- string EqpmtTypeName = GetBaseTypeName(); //�豸��������
- string EqpmtName = GetEqpmentName(); //�豸����
- int EqpmtSourceStatonID = GetSourceStationID(); //�豸�����վID
- int EqpmtType = GetBaseType(); //�豸����
- if (GetControlLock()==Electric_Eqpmt_Status_UnLock)
- {
- int nActType1 = ElcAlarm_TripActType_Unlock; //�����Ʊ����������������
- UpdateAlarmType(EqpmtType,EqpmtTypeName,EqpmtName,EqpmtSourceStatonID,nActType1);
- UpdateEqpmtLightCardStatu(-1);
- }
- else if (GetControlLock()==Electric_Eqpmt_Status_Lock)
- {
- int nActType2 = ElcAlarm_TripActType_Lock; //�����Ʊ�������������
- //UpdateAlarmType(EqpmtType,EqpmtTypeName,EqpmtName,EqpmtSourceStatonID,nActType2);//mod by chenht
- }
- //xyx����end
- }
- }
- void CElectricEqpmt_SwicthEqpmt::UpdateFaultLockStatus(int status)
- {
- if (GetFaultLockStatus()!=status)
- {
- //FaultLock=status;
- SetFaultLockStatus(status);
- }
- }
- void CElectricEqpmt_SwicthEqpmt::UpdateRemoteLockStatus(int status)
- {
- if (GetRemoteLockStatus()!=status)
- {
- //m_nReMoteLockStatus=status;
- SetRemoteLockStatus(status);
- }
- }
- void CElectricEqpmt_SwicthEqpmt::TurnOff(ELEEQPMTMAP& ElectricEqpmtMap,int offcase)
- {
- UpdateEqpmtStatus(ElectricEqpmtMap,Electric_Eqpmt_Status_OFF);
- PowerLost(ElectricEqpmtMap,GetEqpmentID(),offcase);
- DealElcTurnOffArea();
- }
- void CElectricEqpmt_SwicthEqpmt::EqpmtCtrl(int status,ELEEQPMTMAP& ElectricEqpmtMap,string Stdid,int CtrlType,int nMark/* = 0*/)
- {
- BaseElectricEqpmt::EqpmtCtrl(status, ElectricEqpmtMap, Stdid, CtrlType, nMark );
- if (CtrlType==CTRLTYPE_LOCKSTATUS)
- {
- UpdateLockStatus(status);
- }
- else if (CtrlType ==CTRLTYPE_STATUS
- && GetCardStatus() == ELC_EQPMTCARDSTATUS_NORMAL /***6500 Ϊδ����״̬ by chenht 2020 0701***/
- && !GetFaultSceneLock())
- {
- //xyx�ģ�begin
- //˵������������ʾ����ͨ�����õķ�ʽʵ��
- if (GetControlLock()==Electric_Eqpmt_Status_UnLock)
- {
- string EqpmtTypeName = GetBaseTypeName(); //�豸��������
- string EqpmtName = GetEqpmentName(); //�豸����
- int EqpmtSourceStatonID = GetSourceStationID(); //�豸�����վID
- int EqpmtType = GetBaseType(); //�豸����
- if (status==Eqpmt_Operation_OFF&&GetStatus()==Electric_Eqpmt_Status_ON)
- {
- TurnOff(ElectricEqpmtMap,POWER_EQPMT_OPERNO);
- int nActType1 = ElcAlarm_TripActType_Open; //����բ������
- UpdateAlarmType(EqpmtType,EqpmtTypeName,EqpmtName,EqpmtSourceStatonID,nActType1);
- UpdateOperResultToTechEva(GetEqpmentID(),GetStatus()); //���¡���բ��ִ�н��
- }
- else if (status==Eqpmt_Operation_ON&&GetStatus()==Electric_Eqpmt_Status_OFF)
- {
- //if (OCC_EQPMTTYPE_BREAKER_DC==GetBaseType())
- //{
- // return;
- //}
- TurnOn(ElectricEqpmtMap);
- int nActType2 = ElcAlarm_TripActType_Close; //����բ������
- UpdateAlarmType(EqpmtType,EqpmtTypeName,EqpmtName,EqpmtSourceStatonID,nActType2);
- UpdateOperResultToTechEva(GetEqpmentID(),GetStatus()); //���¡���բ��ִ�н��
- }
- else
- UpdateEqpmtStatus(ElectricEqpmtMap,GetStatus());
- }
- //xyx�ģ�end
- }
- else if (CtrlType ==CTRLTYPE_CARD)
- {
- //CardStatus = status;
- SetCardStatus(status);
- UpdateEqpmtStatus(ElectricEqpmtMap,GetCardStatus(),CTRLTYPE_CARD);
- }
- }
- void CElectricEqpmt_SwicthEqpmt::EqpmtCtrlExecution(int status, map<string, BaseElectricEqpmt*>& ElectricEqpmtMap, string Stdid, int CtrlType, int nMark)
- {
- // �����״̬���Ʋ���
- if (CTRLTYPE_STATUS == CtrlType)
- {
- // ����
- SetCtrlMark(nMark);
- // ��������Դ�ǿͻ��˻�����ʵ�豸
- if (OperClient_RealSys == nMark || OperClient_RealSynch == nMark)
- {
- // �����û����ʱ
- DELAYMAP::iterator iter = p_DelayTimeMap->find(GetEqpmentID());
- // ����ʱ��ʾ�ͻ����в�����ִ�У����÷�����־
- if (iter != p_DelayTimeMap->end())
- {
- setRealEqpmtFeedback(true);
- setRealEqpmtStatus(status);
- }
- else
- {
- // ����ʱ��ʾ�����仯������
- EqpmtCtrl(status, ElectricEqpmtMap, Stdid, CtrlType, nMark);
- }
- }
- else
- {
- // ��������������Դ��ֱ�ӽ�����ʱ�ж�
- DelayTimeInfo delay;
- delay.type = Auto_DelayTime_CtrlExecution;
- delay.delaydur = getDelaydurTime();
- delay.occartime = GetNumTime_Second_2();
- delay.srcid = GetEqpmentID();
- delay.srcstatus = GetStatus();
- delay.desid = GetEqpmentID();
- delay.destatus = status;
- p_DelayTimeMap->insert(make_pair(GetEqpmentID(), delay));
- // ת��������Ϣ����ʵ�豸
- OPERCMDTOREAL ctrlcmd;
- ctrlcmd.CtrlType = CtrlType;
- ctrlcmd.EqpmtStatus = status;
- memcpy(ctrlcmd.EqpmtStrID,GetEqpmentID().c_str(),sizeof(ctrlcmd.EqpmtStrID));
- OCCCOMMAND tmpSendHC;
- tmpSendHC.setPacketValue(&ctrlcmd, OCCCOMMAND::eOperCmdExecuteToReal);
- tmpSendHC.DesSysType = OCC_SYS_DD_CLIENT;
- tmpSendHC.TrainningID = m_Trianid;
- tmpSendHC.ScrSysType = OCC_SYS_DD_SVR;
- p_SendList->push(tmpSendHC);
- }
- }
- else
- {
- EqpmtCtrl(status, ElectricEqpmtMap, Stdid, CtrlType, nMark);
- }
- }
- void CElectricEqpmt_SwicthEqpmt::AddActUnoin(int operstatus,string preeqpmtid,int prestatus,int eventid)
- {
- UionCtrl actunion;
- actunion.Sourceid = GetEqpmentID();
- actunion.OperStatus = operstatus;
- actunion.PreEqpmtID = preeqpmtid;
- actunion.PreStatus = prestatus;
- actunion.EventID = eventid;
- m_ActUnions.push_back(actunion);
- }
- //���ӵؿ���״̬
- int CElectricEqpmt_SwicthEqpmt::CheckEarthSwitchStatus(int status,ELEEQPMTMAP& ElectricEqpmtMap,int stdid,int subsysyid,int trianid,int stationid,int viewid)
- {
- int nRetStatus = DH_CmdReplyStatus_Pass;
- ELEEQPMTMAP::iterator iterEqpmt;
- for ( int i = 0; i < m_EarthSwitchID.size(); i++ )
- {
- iterEqpmt = ElectricEqpmtMap.find( m_EarthSwitchID[i]);
- //��ȡ�ӵؿ���
- if ( iterEqpmt != ElectricEqpmtMap.end())
- {
- //�ӵؿ��ش��ں�բ
- if (iterEqpmt->second->GetStatus()==Electric_Eqpmt_Status_ON)
- {
- ELEEQPMTMAP::iterator iterEqpmt1;
- for (int j = 0; j < iterEqpmt->second->m_EarthSwitchInputSwitch.size();j++)
- {
- iterEqpmt1 = ElectricEqpmtMap.find( iterEqpmt->second->m_EarthSwitchInputSwitch[j]);
- if (iterEqpmt1 != ElectricEqpmtMap.end())
- {
- if ( iterEqpmt1->second != NULL && iterEqpmt1->second->GetStatus()==Electric_Eqpmt_Status_ON)
- {
- nRetStatus = DH_CmdReplyStatus_Deny;
- break;
- }
- }
- }
- }
- if (nRetStatus == DH_CmdReplyStatus_Deny)
- {
- break;
- }
- }
- }
- if ( nRetStatus == DH_CmdReplyStatus_Deny )
- {
- if (trianid>0)
- {
- string retstr = GetEqpmentName() + " ������ֹ";
- 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 = subsysyid;
- 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 nRetStatus;
- }
- int CElectricEqpmt_SwicthEqpmt::CheckEqpmtCtrlCase(int status,ELEEQPMTMAP& ElectricEqpmtMap,int stdid,int subsysyid,int trianid,int stationid,int viewid, int CtrlType, int nMark)
- {
- // ��ʵ�豸����״̬�仯��������У��ֱ�Ӹ���
- if (OperClient_RealSys == nMark || OperClient_RealSynch == nMark)
- {
- return DH_CmdReplyStatus_Pass;
- }
- //�ֺ�բ����У������豸����״̬У��
- if (CtrlType == CTRLTYPE_STATUS)
- {
- if (GetCardStatus() != ELC_EQPMTCARDSTATUS_NORMAL)
- {
- return DH_CmdReplyStatus_Deny;
- }
- }
- //�����豸���Ƶ����Ԫ�������������Ԫ��������صIJ���
- //���ӵؿ������Ԫ��״̬
- if (CheckEarthSwitchStatus(status,ElectricEqpmtMap,stdid,subsysyid,trianid,stationid,viewid)==DH_CmdReplyStatus_Deny)
- {
- return DH_CmdReplyStatus_Deny;
- }
- DHSVRREPLY CheckReplyMsg;
- memset(CheckReplyMsg.ReplyText,0,ALARM_LEN) ;
- string retstr;
- int retstatus = DH_CmdReplyStatus_Deny;
- int index=0;
- multimap<int,UionCtrl> mapPass;
- multimap<int,UionCtrl> mapDeny;
- //��鱻�������豸״̬
- for (size_t i=0;i<m_CtrlUnions.size();i++)
- {
- if (m_CtrlUnions[i].Sourceid==GetEqpmentID()&&m_CtrlUnions[i].OperStatus==status&&m_CtrlUnions[i].Relation==EQPMT_RELATIONTYPE_PASSUIONCTRL) //��������
- {
- ELEEQPMTMAP::iterator iter = ElectricEqpmtMap.find(m_CtrlUnions[i].PreEqpmtID); //���������豸��ǰһ���豸��״̬��
- if (iter!=ElectricEqpmtMap.end())
- {
- int static lastindex=m_CtrlUnions[i].Index;
- if (iter->second->GetStatus()!=m_CtrlUnions[i].PreStatus)
- {
- mapDeny.insert(make_pair(m_CtrlUnions[i].Index,m_CtrlUnions[i]));
- }
- else
- {
- mapPass.insert(make_pair(m_CtrlUnions[i].Index,m_CtrlUnions[i]));
- //��ɳ3������ʿ��վ�����߶�·����բ�� add by chenht
- if (GetEqpmentID() == "{A3F7D8D7-9D77-47CA-B3BD-C55961D104CF}" || GetEqpmentID() == "{36B74635-B3EC-48B0-BE90-CC2D89604FB7}")
- {
- mapDeny.clear();
- break;
- }
- }
- }
- }
- }
- if (mapPass.size()==0&&mapDeny.size()==0)
- {
- retstatus=DH_CmdReplyStatus_Pass;
- }
- multimap<int,UionCtrl>::iterator iterPass=mapPass.begin();
- while(iterPass!=mapPass.end())
- {
- if (mapDeny.find(iterPass->first)==mapDeny.end())
- {
- retstatus=DH_CmdReplyStatus_Pass;
- break;
- }
- iterPass++;
- }
- if (retstatus==DH_CmdReplyStatus_Deny)
- {
- multimap<int,UionCtrl>::iterator firsiter=mapDeny.begin(); //�������в����㱻������״̬��˵�� added by zhngjiahua
- for (;firsiter!=mapDeny.end();firsiter++)
- {
- ELEEQPMTMAP::iterator iter= ElectricEqpmtMap.find(firsiter->second.PreEqpmtID);
- std::string tips;
- std::stringstream ss;
- ss << iter->second->GetStationName() << " "
- << iter->second->GetBaseTypeName() << " "
- << iter->second->GetEqpmentName() << (" λ�ò���");
- tips = ss.str();
- if (firsiter->second.PreStatus==Electric_Eqpmt_Status_ON)
- {
- int nBasetypeID = GetBaseType();
- if (nBasetypeID == OCC_EQPMTTYPE_400vACControlBreaker)
- {
- //tips.Format("%s %s ����ģʽ:���ǵ㶯ģʽ ��ֹ����",iter->second->GetStationName(),iter->second->GetBaseTypeName());
- std::stringstream ss_2;
- ss_2 << iter->second->GetStationName() << " "
- << iter->second->GetBaseTypeName() << " "
- << ("����ģʽ:���ǵ㶯ģʽ ��ֹ����");
- tips = ss_2.str();
- }
- else
- {
- tips+= ("��λ");
- }
- }
- if (firsiter->second.PreStatus==Electric_Eqpmt_Status_OFF)
- {
- int nBasetypeID = GetBaseType();
- if (/*GetEqpmentID() == "{A3F7D8D7-9D77-47CA-B3BD-C55961D104CF}" || GetEqpmentID() == "{36B74635-B3EC-48B0-BE90-CC2D89604FB7}"*/
- nBasetypeID == OCC_EQPMTTYPE_110kVACMLine || nBasetypeID == OCC_EQPMTTYPE_110kvPowerLine || nBasetypeID == OCC_EQPMTTYPE_35kVMOTHERLINE || nBasetypeID == OCC_EQPMTTYPE_35kvACPowerLine
- || nBasetypeID == OCC_EQPMTTYPE_400vACMLine || nBasetypeID == OCC_EQPMTTYPE_400vACPowerLine || nBasetypeID == OCC_EQPMTTYPE_1500vDCMLine || nBasetypeID == OCC_EQPMTTYPE_DCPowerLine
- || nBasetypeID == OCC_EQPMTTYPE_1500VNegativeBusLine || nBasetypeID == OCC_EQPMTTYPE_TouchNet)
- {
- //tips.Format("%s %s ״̬����",iter->second->GetStationName(),iter->second->GetEqpmentName());
- //tips+="ʧ��״̬";
- std::stringstream ss_3;
- ss_3 << iter->second->GetStationName() << " "
- << iter->second->GetEqpmentName() << (" ״̬����ʧ��");
- tips = ss_3.str();
- }
- if (nBasetypeID == OCC_EQPMTTYPE_400vACControlBreaker)
- {
- //tips.Format("%s %s ������Ͷ�Ը�λ��ֹ����",iter->second->GetStationName(),iter->second->GetBaseTypeName());
- std::stringstream ss_4;
- ss_4 << iter->second->GetStationName() << " "
- << iter->second->GetBaseTypeName() << (" ������Ͷ�Ը�λ��ֹ����");
- tips = ss_4.str();
- }
- else
- {
- tips+= ("��λ");
- }
- }
- retstr+=tips+"\r\n";
- }
- }
- ELEEQPMTMAP::iterator iter1 = ElectricEqpmtMap.find(GetEqpmentID());
-
- string str;
- int autoboltstatus = -1;
- if (iter1!=ElectricEqpmtMap.end())
- {
- //modified by zhangjiahua
- if (iter1->second->GetEqpmentType()==Electric_EqpmentType_Breaker)
- {
- ElectricEqpmt_Breaker* pbreak=(ElectricEqpmt_Breaker*)iter1->second;
- str=pbreak->GetAutoBoltID();
- ELEEQPMTMAP::iterator iter2 = ElectricEqpmtMap.find(str);
- if (iter2!=ElectricEqpmtMap.end())
- {
- autoboltstatus=iter2->second->GetStatus();
- }
- }
- // str =iter1->second->GetAutoBoltID();
- //ELEEQPMTMAP::iterator iter2 = ElectricEqpmtMap.find(str);
- //if (iter2!=ElectricEqpmtMap.end())
- //{
- // autoboltstatus=iter2->second->GetStatus();
- //} //noted by zhangjiahua on 2019.4.10
- }
- if(GetCommunicationStatus()==1)
- {
- //retstr.Format("%s %s ͨѶ�ж�",GetBaseTypeName(),GetEqpmentName());
- std::stringstream ss_5;
- ss_5 << GetBaseTypeName() << " "
- << GetEqpmentName() << " "
- << ("ͨѶ�ж�");
- retstr = ss_5.str();
- retstatus = DH_CmdReplyStatus_Deny;
- goto lable;
- }
- //���������״̬
- if (GetControlLock()==Electric_Eqpmt_Status_Lock)
- {
- if (GetEqpmentName()=="300"||GetEqpmentName()=="400"||GetEqpmentName()=="400����"||GetEqpmentName()=="ĸ�����ع�(400)")
- {
- //retstr.Format("%s %s ����",GetBaseTypeName(),GetEqpmentName());
- std::stringstream ss_5;
- ss_5 << GetBaseTypeName() << " "
- << GetEqpmentName() << " "
- << ("����");
- retstr = ss_5.str();
- }
- else
- {
- //retstr.Format("%s %s ���Ʊ���",GetBaseTypeName(),GetEqpmentName());
- std::stringstream ss_5;
- ss_5 << GetBaseTypeName() << " "
- << GetEqpmentName() << " "
- << ("���Ʊ���");
- retstr = ss_5.str();
- }
- retstatus = DH_CmdReplyStatus_Deny;
- goto lable;
- }
- if (GetRemoteLockStatus()==Electric_Eqpmt_Status_RemoteLock)
- {
- //retstr.Format("%s %s ң�ű���",GetBaseTypeName(),GetEqpmentName());
- std::stringstream ss_5;
- ss_5 << GetBaseTypeName() << " "
- << GetEqpmentName() << " "
- << ("ң�ű���");
- retstr = ss_5.str();
- retstatus = DH_CmdReplyStatus_Deny;
- goto lable;
- }
- if(GetFaultLockStatus()==Electric_Eqpmt_Status_Lock)
- {
- //retstr.Format("%s %s ���ϱ���",GetBaseTypeName(),GetEqpmentName());
- std::stringstream ss_5;
- ss_5 << GetBaseTypeName() << " "
- << GetEqpmentName() << " "
- << ("���ϱ���");
- retstr = ss_5.str();
- retstatus = DH_CmdReplyStatus_Deny;
- //SetControlLock(true);
- goto lable;
- }
- if (GetControlArea()==ELC_EQPMTCTRL_LOCAL)
- {
- //retstr.Format("%s %s �͵ؿ��ƣ���Ȩ����",GetBaseTypeName(),GetEqpmentName());
- std::stringstream ss_5;
- ss_5 << GetBaseTypeName() << " "
- << GetEqpmentName() << " "
- << (" �͵ؿ��ƣ���Ȩ����");
- retstr = ss_5.str();
- retstatus = DH_CmdReplyStatus_Deny;
- goto lable;
- }
- if (GetCardStatus()!= ELC_EQPMTCARDSTATUS_NORMAL)//������״̬
- {
- //retstr.Format("%s %s ����״̬����ֹ����",GetBaseTypeName(),GetEqpmentName());
- std::stringstream ss_5;
- ss_5 << GetBaseTypeName() << " "
- << GetEqpmentName() << " "
- << ("����״̬����ֹ����");
- retstr = ss_5.str();
- retstatus = DH_CmdReplyStatus_Deny;
- goto lable;
- }
- lable:
- if (trianid>0)
- {
- strncpy(CheckReplyMsg.ReplyText,retstr.c_str(), sizeof(CheckReplyMsg.ReplyText));
- CheckReplyMsg.CmdID = OCCCOMMAND::eUpdateOperCheck;
- //strcpy(CheckReplyMsg.EqpmtStrID,GetEqpmentID().GetBuffer(GUID_LEN));
- //GetEqpmentID().ReleaseBuffer(GUID_LEN);
- string strID=GetEqpmentID();
- strncpy(CheckReplyMsg.EqpmtStrID,strID.c_str(), sizeof(CheckReplyMsg.EqpmtStrID));
- CheckReplyMsg.CtrlLock= GetFaultLockStatus() /*GetControlLock()*/;
- if (autoboltstatus<-0.01)
- {
- CheckReplyMsg.AutoBoltStatus=1;
- }
- else
- {
- CheckReplyMsg.AutoBoltStatus=autoboltstatus;
- }
-
- CheckReplyMsg.StdID = stdid;
- CheckReplyMsg.EqpmtStatus =retstatus; //100��ʾͨ����101�ܾ�
- CheckReplyMsg.StationID=stationid;
- CheckReplyMsg.ViewID = viewid;
- CheckReplyMsg.SubSysID = subsysyid;
- 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 retstatus;
- }
- void CElectricEqpmt_SwicthEqpmt::SetRemoteLock(ELEEQPMTMAP& ElectricEqpmtMap,int status,int ctrlArea,int lockType)
- {
- SetControlArea(ctrlArea);
- UpdateRemoteLockStatus(Electric_Eqpmt_Status_RemoteLock);
- UpdateEqpmtStatus(ElectricEqpmtMap,status);
- }
- void CElectricEqpmt_SwicthEqpmt::CancleRemoteLock(ELEEQPMTMAP& ElectricEqpmtMap,int status,int ctrlArea)
- {
- SetControlArea(ctrlArea);
- UpdateRemoteLockStatus(Electric_Eqpmt_Status_RemoteUnLock);
- UpdateEqpmtStatus(ElectricEqpmtMap,status);
- }
- void CElectricEqpmt_SwicthEqpmt::SetShield( ELEEQPMTMAP& ElectricEqpmtMap )
- {
- UpdateLockStatus(Electric_Eqpmt_Status_Lock);
- UpdateEqpmtStatus(ElectricEqpmtMap,GetStatus());
- }
- void CElectricEqpmt_SwicthEqpmt::CancleShield( ELEEQPMTMAP& ElectricEqpmtMap )
- {
- UpdateLockStatus(Electric_Eqpmt_Status_UnLock);
- UpdateEqpmtStatus(ElectricEqpmtMap,GetStatus());
- }
- bool CElectricEqpmt_SwicthEqpmt::PowerLost(ELEEQPMTMAP& eqpmtmap,string sourceid,int offcase)
- {
- SetPower(false);
- UpdateEqpmtStatus(eqpmtmap, Electric_Eqpmt_Status_OFF, CTRLTYPE_ElcCut); //��ͻ��˸��¿����豸����״̬add by yangs
- std::map<string,string>::iterator iter = OutputEqpmtIDMap.begin(); //OutputEqpmtIDMapΪ sourceid������豸
- for (;iter!=OutputEqpmtIDMap.end();iter++)
- {
- ELEEQPMTMAP::iterator iter1 = eqpmtmap.find(iter->first);
- if (iter1==eqpmtmap.end())
- continue;
- iter1->second->PowerCut(eqpmtmap,GetEqpmentID(),offcase);
- }
- DealElcTurnOffArea();
-
- return true;
- }
- bool CElectricEqpmt_SwicthEqpmt::PowerCut(ELEEQPMTMAP& eqpmtmap,string sourceid,int offcase)
- {
- int count =0;
- string id;
- std::map<string,InputLineInfo>::iterator iter = InputEqpmtIDMap.begin();
- for (;iter!=InputEqpmtIDMap.end();iter++)
- {
- if (sourceid==iter->first)
- {
- iter->second.InputPower = false;
- }
- if (iter->second.InputPower)
- {
- count++;
- id = iter->first;
- }
- }
- if (GetStatus()==Electric_Eqpmt_Status_ON)
- {
- if (count==1)
- {
- ELEEQPMTMAP::iterator iter3 = eqpmtmap.find(id);
- if (iter3!=eqpmtmap.end())
- {
- iter3->second->PowerCut(eqpmtmap,GetEqpmentID(),offcase);
- }
- }
- if (count<1)
- {
- PowerLost(eqpmtmap,GetEqpmentID(),offcase);
- }
- }
- return true;
- }
- bool CElectricEqpmt_SwicthEqpmt::PowerIn(ELEEQPMTMAP& eqpmtmap,string sourceid)
- {
- std::map<string,InputLineInfo>::iterator iter = InputEqpmtIDMap.begin();
- for (;iter!=InputEqpmtIDMap.end();iter++)
- {
- if (sourceid==iter->first)
- {
- iter->second.InputPower = true;
- }
- }
- if (GetStatus()==Electric_Eqpmt_Status_ON)
- {
- SetPower(true);
- UpdateEqpmtStatus(eqpmtmap, Electric_Eqpmt_Status_ON, CTRLTYPE_ElcCut); //��ͻ��˸��¿����豸����״̬add by yangs
- std::map<string,string>::iterator iter2 = OutputEqpmtIDMap.begin();
- for (;iter2!=OutputEqpmtIDMap.end();iter2++)
- {
- if (iter2->first!=sourceid)
- {
- ELEEQPMTMAP::iterator iter3 = eqpmtmap.find(iter2->first);
- if (iter3!=eqpmtmap.end())
- {
- iter3->second->PowerIn(eqpmtmap,GetEqpmentID());
- }
- }
- }
- }
- DealElcTurnOffArea();
- return true;
- }
- void CElectricEqpmt_SwicthEqpmt::ClearProtect(ELEEQPMTMAP& ElectricEqpmtMap,int errorid)
- {
- //UpdateLockStatus(Electric_Eqpmt_Status_UnLock);
- //MOD by yangs 20230302
- //if(MRunLineID == 300){
- //modify by dengt 20241130
- if (MRunLineID == 325 || MRunLineID == 300 || MRunLineID == 542
- || MRunLineID == 314 || MRunLineID == 324)
- {
- setProhibitedReversion(false);
- }
- else
- {
- UpdateFaultLockStatus(Electric_Eqpmt_Status_UnLock);
- UpdateEqpmtStatus(ElectricEqpmtMap,GetStatus());
- }
- EraseErrorNosByErrorID(errorid);
- //ActiveProtectIndex = -1;
- for (int i=0;i<m_ActUnions.size();i++)
- {
- ELEEQPMTMAP::iterator iter = ElectricEqpmtMap.find(m_ActUnions[i].PreEqpmtID);
- if (iter!=ElectricEqpmtMap.end())
- {
- //add by yangs 20230702
- iter->second->EraseErrorNosByErrorID(errorid);
- //mod by yangs 20230302
- //if(MRunLineID == 300){
- //modify by dengt 20241130
- if (MRunLineID == 325 || MRunLineID == 300 || MRunLineID == 542
- || MRunLineID == 314 || MRunLineID == 324)
- {
- iter->second->setProhibitedReversion(false);
- }
- else{
- iter->second->UnLockTrippingEqpmt(ElectricEqpmtMap);
- }
- }
- }
- // ң�Ź���ȡ��:���ϻָ���ң����ʧ
- /*if ( m_nCurProtectID > 0 )
- {
- DealTelesignalisation( errorid, GetEqpmentID(), 0);
- }*/
- }
- void CElectricEqpmt_SwicthEqpmt::ClearSingleProtect(ELEEQPMTMAP& ElectricEqpmtMap,int errorid,const string& strProtecResetType )// added by zhangjh on 2017.5.17 ���������·���������麯��
- {
- if ( Electric_Eqpmt_Status_Lock == GetFaultLockStatus() )
- {
- //xyx����begin
- //string strtext;
- //strtext.Format("%s %s ң��ִ�гɹ�",GetEqpmentName(), strProtecResetType);
- //SendMsgNotice(GetSourceStationID(),GetRegion(),2,DH_MSGCATEGORY_SYS,strtext);
- //xyx����end
- //xyx��begin
- string EqpmtTypeName = GetBaseTypeName(); //�豸��������
- string EqpmtName = GetEqpmentName(); //�豸����
- int EqpmtSourceStatonID = GetSourceStationID(); //�豸�����վID
- int EqpmtType = GetBaseType(); //�豸����
- int nActType = ElcAlarm_TripActType_Reset; //���������顱��������
- UpdateAlarmType(EqpmtType,EqpmtTypeName,EqpmtName,EqpmtSourceStatonID,nActType);
- //xyx��end
- UpdateFaultLockStatus(Electric_Eqpmt_Status_UnLock);
- UpdateEqpmtStatus(ElectricEqpmtMap,GetStatus());
- UpdateEqpmtLightCardStatu(-1);
- }
- }
|