| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #include "pch.h"
- #include "ElectricEqpmt_ElcTurnOffAreaMng.h"
- void* ElectricEqpmt_ElcTurnOffAreaMng::m_pOwner = nullptr;
- CALLBACKFUNC_EqpmtElcStatus ElectricEqpmt_ElcTurnOffAreaMng::m_hCallBackEqpmtElcStatus = nullptr;
- CALLBACKFUNC_TurnOffArea ElectricEqpmt_ElcTurnOffAreaMng::m_hCallBackTurnOffArea = nullptr;
- ElectricEqpmt_ElcTurnOffAreaMng::ElectricEqpmt_ElcTurnOffAreaMng()
- {
- }
- ElectricEqpmt_ElcTurnOffAreaMng::~ElectricEqpmt_ElcTurnOffAreaMng()
- {
- m_mapEqpmtStrIDAndAreaID.clear();
- m_mapElcTurnOffArea.clear();
- }
- void ElectricEqpmt_ElcTurnOffAreaMng::AddElcTurnOffArea( int nOffArea, int nStationID, const string& strEqpmtStrID )
- {
- m_mapEqpmtStrIDAndAreaID.insert( make_pair( strEqpmtStrID, nOffArea) );
- map<int, ElectricEqpmt_ElcTurnOffArea >::iterator iterArea = m_mapElcTurnOffArea.find(nOffArea);
- if ( iterArea != m_mapElcTurnOffArea.end() )
- {
- iterArea->second.AddElcTurnOffArea( nOffArea, nStationID, strEqpmtStrID );
- }
- else
- {
- ElectricEqpmt_ElcTurnOffArea area;
- area.SetOffAreaID( nOffArea );
- area.SetStationID( nStationID );
- area.AddElcTurnOffArea( nOffArea, nStationID, strEqpmtStrID );
- m_mapElcTurnOffArea.insert( make_pair( nOffArea, area) );
- }
- }
- void ElectricEqpmt_ElcTurnOffAreaMng::EqpmtOffOccur( const string& strEqpmtID )
- {
- TurnOffArea( GetAreaID(strEqpmtID) );
- }
- void ElectricEqpmt_ElcTurnOffAreaMng::TurnOffArea( int nArea )
- {
- if ( NULL == m_hCallBackEqpmtElcStatus || NULL == m_hCallBackTurnOffArea )
- {
- return;
- }
- map<int, ElectricEqpmt_ElcTurnOffArea >::iterator iter = m_mapElcTurnOffArea.find(nArea);
- if ( iter == m_mapElcTurnOffArea.end() )
- {
- return;
- }
- int nMark = -1;
- // 设备区所有电力设备失电则表示改区域失电
- bool bEqpmtPower = false;
- for(int i = 0; i < iter->second.m_vecElcTurnOffArea.size(); i++ )
- {
- if ( m_hCallBackEqpmtElcStatus(m_pOwner, iter->second.m_vecElcTurnOffArea[i].m_strUnioEqpmtStrID) )
- {
- bEqpmtPower = true;
- break;
- }
- }
- if ( bEqpmtPower )
- {
- // 有带电设备而且之前设备区无电则为设备区送电
- if ( !iter->second.GetPower() )
- {
- nMark = 1;
- }
- }
- else
- {
- // 无带电设备而且之前设备区有电则为设备区停电
- if ( iter->second.GetPower() )
- {
- nMark = 0;
- }
- }
-
- if ( 0 == nMark )
- {
- // 处理设备区失电
- iter->second.SetPower(false);
- m_hCallBackTurnOffArea( m_pOwner, iter->second.GetOffAreaID(), iter->second.GetStationID(), nMark );
- }
- else if( 1 == nMark )
- {
- // 处理设备区受电
- iter->second.SetPower(true);
- m_hCallBackTurnOffArea( m_pOwner, iter->second.GetOffAreaID(), iter->second.GetStationID(), nMark );
- }
- }
- int ElectricEqpmt_ElcTurnOffAreaMng::GetAreaID( const string& strEqpmtID )
- {
- int nRet = -1;
- map<string, int >::iterator iter = m_mapEqpmtStrIDAndAreaID.find( strEqpmtID );
- if ( iter != m_mapEqpmtStrIDAndAreaID.end() )
- {
- nRet = iter->second;
- }
- return nRet;
- }
- void ElectricEqpmt_ElcTurnOffAreaMng::AddElcToRelaData( int StationID,int CtrlAreaID, string ElcEqpmtStrID )
- {
- m_nStationID = StationID;
- m_nCtrlAreaID = CtrlAreaID;
- m_strEqpmtStrID =ElcEqpmtStrID;
- }
|