| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- #pragma once
- #include "BaseDataStructDefine.h"
- #include "BaseElectricEqpmt.h"
- #include "ElectricEqpmt_Breaker.h"
- #include "ElectricEqpmt_Line_TouchNet.h"
- #include "ElectricEqpmt_PowerBolt.h"
- #include "ElectricEqpmt_TelesignalisationMng.h"
- #include "ElectricEqpmt_ElcTurnOffAreaMng.h"
- #include "ElectricEqpmt_Station400VLoadMng.h"
- #include <mutex>
- class PowerEventDeal //故障处理类
- {
- public:
- PowerEventDeal();
- virtual ~PowerEventDeal();
- void SetEqpmtMap(ELEEQPMTMAP* pepmtmap, std::recursive_mutex* psec, EQPMTTELEINFO* pEqpmtTeleInfo);
- void SetProtectSetStr(string str)
- {
- if (m_StrProtectSetStr.empty()&& str!=m_StrProtectSetStr)
- {
- m_StrProtectSetStr=str;
- }
- }
- void SetStaionID(int stationid)
- {
- if (stationid != m_stationid)
- {
- m_stationid = stationid;
- }
- }
- void SetViewID(int viewid)
- {
- if (viewid != m_viewid)
- {
- m_viewid = viewid;
- }
- }
- void SetSubSystemID(int subsystid)
- {
- if (subsystid != m_subsystemid)
- {
- m_subsystemid = subsystid;
- }
- }
- void SetStdID(int stdid)
- {
- if (stdid != m_stdid)
- {
- m_stdid = stdid;
- }
- }
- //added by zhangjiahua
- void SetCourseID(int ID)
- {
- m_CourseID = ID;
- }
- int GetCourseID()
- {
- return m_CourseID;
- }
- ELECSTATIONMAP m_MI_powerstation; //变电站相关信息
- string GetStationName(int stationID);//根据车站ID获取车站名称 added by zhangjiahua
- bool DealEvent(NORMALCMDC NCmd,int EventOper,string Eqpmtid,int parm, const string& str2); //故障处理
- void EqpmtCtrl(NORMALCMDC NCmd,string Eqpmtid,int Status,string Stdid,int CtrlType,int nMark = 0);//设备控制
- void EqpmtCtrlCheck(int ViewID,int SubSys,string Eqpmtid,int Status,int Stdid,int ctrlarea,int grade,int station, int CtrlType);//设备检测
- void SetInitInfo(CommandQueue * psendlist,int trian);
- bool CloseOffSwicth(); //关闭开关
- bool handle_delaytime(); // 延时处理
- bool NeedDelayTimeDeal(); //是否需要延时处理
- DELAYMAP* GetDelayTimeMap(); //获取延时表
- bool DealWithAutoBoltCtrlMothod(int trainid,string Eqpmtid,int ctrlmode); //更新备自投控制模式:自投自复、自投手复、手复手投、手复自投
- void SetEqpmtTelemeteryValue(string Eqpmtid, int nType, float nValue, int IsReset);//设置电压、电流遥测值
- void DealWith_EqpmtFixedAreaCtrl(string Eqpmtid, int CtrlType, int FixedArea, int SysID);//设置设备定值分区
- void DealWith_StationCommunicationStatus(int nStation, int IsReset);//设置车站通信状态
- void SystemInit(int nDesSysID = 0);
- void EqpmetInit();//设备初始化 //added by zhangjiahua
- string m_StrProtectSetStr;
- ElectricEqpmt_TelesignalisationMng m_TelesignalisationMng;
- ElectricEqpmt_ElcTurnOffAreaMng m_ElcTurnOffAreaMng;
- ElectricEqpmt_Station400VLoadMng m_400VLoadMng;
- /*
- 设备故障后遥信功能处理
- pOwner: 处理模块句柄
- nProtectID: 故障保护类型
- strEqpmtStrID: 保护动作设备编号
- nMark: 设置标识 0取消 1设置
- */
- static void DealTelesignalisation(void* pOwner, int nProtectID, const string& strEqpmtStrID, int nMark );
- void DealTelesignalisation( int nProtectID, const string& strEqpmtStrID, int nMark );
- /*
- 遥信初始化
- */
- void TelesignalisationInit();
- /*
- 电环联合接口:判断设备是否有电
- 返回值:ture表示有电 false表示无电
- */
- static bool GetEqpmtElcStatus(void* pOwner, const string& strEqpmtStrID );
- bool GetEqpmtElcStatus( const string& strEqpmtStrID );
- /*
- 电环联合接口:设备区断电处理
- nMark: 0表示停电 1表示送电
- */
- static void TurnOffArea(void* pOwner, int nAreaID, int nStationID, int nMark );
- void TurnOffArea(int nAreaID, int nStationID, int nMark );
- static void DealElcTurnOffArea(void* pOwner, const string& strEqpmtStrID );
- /*
- 电力区域报警
- nStationID: 车站ID bPowers:true表示受电 false表示失电
- */
- void ElcAreaAlarm( int nStationID, bool bPower );
- //特殊处理接触轨停电
- void DealThirdTrackPowerLose();
- /*
- 环电联合:环调设备故障导致电力设备跳闸
- */
- void PowerCutArea( int nAreaID );
- /*
- 车站三级负荷自切
- */
- void Deal400VLoad( int nStationID, int nThreeLoadUnitID, int nCutMark );
- void DealRemoteLock(NORMALCMDC& NCmd);
- void DealPermissionChange(NORMALCMDC& NCmd); //处理车站权限转换 added by zhangjiahua
- void SendControlPermission();//发送车站权限 added by zhangjiahua
- //向教员发送评价信息 added by zhangjiahua
- void SendMsgToTech(UpdateEvaOperStatus data);
- //向客户端发送报警信息
- void SendStationAlarmMsgToClient(int nStation, string AlarmText);
- static void DealDeal400VLoadTurnOff(void* pOwner, const string& strEqpmtStrID, int nButtonID );
- bool IsExamMOde; //是否为考试模式 add by chenht
- public:
- MapIndex_ElcEqpmtStatusToIBPLight m_MIEqpmtStatusToIBPLight;//IBP盘
- //IBP盘处理
- void InitEqpmtStatusToIBP();
- void EqpmtStatusToIBP( const std::string& strEqpmtID, int nEqpmtStatus );
- void UpdateIBPLightStatus( int nIBPSysID, std::string& strKey, int nStatus ,int nflashFlag=IBPFlash_Normal,int nIBPIOID=0);
- void UpdateIBPLightStatus( int nIBPSysID, vector<std::string>& vecKey, int nStatus,int nflashFlag=IBPFlash_Normal,int nIBPIOID=0);
- void UpdateIBPLightStatus( int nIBPSysID, int nKey, int nStatus ,int nflashFlag=IBPFlash_Normal,int nIBPIOID=0);
- protected:
- ELEEQPMTMAP* pElectricEqpmtMap; //设备列表
- //std::mutex* pEqpmtMapCriticalSection;
- std::recursive_mutex* pEqpmtMapCriticalSection;
- DELAYMAP m_DelayDelMap;
- EQPMTTELEINFO* mptr_EqpmtTeleInfo;//设备遥测相关信息
- int m_trainID;
- CommandQueue * p_SendList; //消息队列
- int m_EqpmtStationID; //操作相关电力元件所属车站ID
- string m_StrCheckEqpmt; //保存检查设备ID
- int m_stationid;
- int m_viewid;
- int m_subsystemid;
- int m_stdid;
- int m_CourseID; //课程编号 added by zhangjiahua
-
- };
|