BaseElectricEqpmt.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. #pragma once
  2. #include "ElectricBaseDefine.h"
  3. #include "../Global/NetMessageDefine.h"
  4. #include "../Global/BaseDefine.h"
  5. #include "ElcBaseEqpmt.h"
  6. #include "../Global/SenceControlBaseDefine.h"
  7. #include "PublicEqpmtID.h"
  8. #include <string>
  9. #include <sstream>
  10. #define EQPMT_RELATIONTYPE_BREAKHANDER 2527 //断路器手车
  11. #define EQPMT_RELATIONTYPE_INPUT 2528 //输入关系
  12. #define EQPMT_RELATIONTYPE_AUTOBOLT 2529 //备自投母联断路器
  13. #define EQPMT_RELATIONTYPE_AUTOBOLTLSWITCH 2631 //备自投左进线设备
  14. #define EQPMT_RELATIONTYPE_AUTOBOLTRSWITCH 2632 //备自投右进线设备
  15. #define EQPMT_RELATIONTYPE_NEXTAUTOBOLT 2633 //下一个备自投
  16. #define EQPMT_RELATIONTYPE_INITUIONCTRL 2531 //主动联控
  17. #define EQPMT_RELATIONTYPE_PASSUIONCTRL 2532 //被动联控
  18. #define EQPMT_RELATIONTYPE_EARTHSWITCH 2730 //关联接地开关
  19. #define EQPMT_RELATIONTYPE_EARTHSWITCHINPUT 2731 //接地开关输入
  20. #define EQPMTTYPE_35KV 35 // 35KV系统设备
  21. #define EQPMTTYPE_400V 400 // 400V系统设备
  22. #define EQPMT_RELATIONTYPE_AUTOBOLTAASWITCH 30 //备自投自投自复关联设备
  23. #define EQPMT_RELATIONTYPE_AUTOBOLTAMSWITCH 31 //备自投自投手复关联设备
  24. #define EQPMT_RELATIONTYPE_AUTOBOLTMMSWITCH 32 //备自投手投手复关联设备
  25. typedef void (*CALLBACKFUNC_Telesignalisation)(void* pOwner, int nProtectID, const string& strEqpmtStrID, int nMark );
  26. typedef void (*CALLBACKFUNC_DealElcTurnOffArea)(void* pOwner, const string& strEqpmtStrID );
  27. typedef void (*CALLBACKFUNC_Deal400VLoadTurnOff)(void* pOwner, const string& strEqpmtStrID, int nButtonID );
  28. class BaseElectricEqpmt :
  29. public ElcBaseEqpmt
  30. {
  31. public:
  32. BaseElectricEqpmt();
  33. virtual ~BaseElectricEqpmt();
  34. void SetSendList(CommandQueue * pcmdlist,int trian) //发送消息列表
  35. {
  36. p_SendList=pcmdlist;
  37. m_Trianid=trian;
  38. }
  39. bool AddProtect(string id, int EventID); //增加保护
  40. void SetEarthSwitchID(string id) //设置接地开关
  41. {
  42. m_EarthSwitchID.push_back(id);
  43. }
  44. void SetEarthSwitchRelationSwitch(string strSwitch) //设置接地开关关联开关
  45. {
  46. m_EarthSwitchInputSwitch.push_back(strSwitch);//added by yangs on 2022.1.5
  47. }
  48. void OccarSearchError(int errorid); //查找当前故障
  49. void RevertAlarms(); //恢复报警
  50. void SetEqmpInitStatus(int status) //设置初始状态
  51. {
  52. //m_status=status;
  53. SetStatus(status);
  54. SetInitStatus(status);
  55. if (status==Electric_Eqpmt_Status_ON)
  56. //HavePower =true;
  57. SetPower(true);
  58. else
  59. //HavePower = false;
  60. SetPower(false);
  61. }
  62. void AddInputRelation(string InputID) //增加输入关系
  63. {
  64. InputLineInfo inutinfo;
  65. inutinfo.ID=InputID;
  66. inutinfo.InputPower = true;
  67. InputEqpmtIDMap.insert(make_pair(InputID,inutinfo));
  68. }
  69. void ResetInputPower() //added by zhangjiahua
  70. {
  71. std::map<string,InputLineInfo>::iterator itor=InputEqpmtIDMap.begin();
  72. for (;itor!=InputEqpmtIDMap.end();itor++)
  73. {
  74. itor->second.InputPower = true;
  75. }
  76. }
  77. void AddOutputRelation(string ID) //增加输出关系
  78. {
  79. OutputEqpmtIDMap.insert(make_pair(ID,ID));
  80. }
  81. static void SetTrackRelationXDMap(TrackRelationXDMAP trackrelationmap);
  82. //{
  83. // //if (trackrelationmap.size()>0)
  84. // //{
  85. // // TrackRelationXDMAP::iterator iteer = trackrelationmap.begin();
  86. // // for (;iteer!=trackrelationmap)
  87. // // {
  88. // // }
  89. // //}
  90. // m_TrackRelationXDMap = trackrelationmap;
  91. //}
  92. TrackRelationXDMAP GetTrackRelationXDMap();
  93. //{
  94. // return m_TrackRelationXDMap;
  95. //}
  96. //string GetTrackStrid()
  97. //{
  98. // return m_TrackStrid;
  99. //}
  100. //int GetTrackPower()
  101. //{
  102. // return m_TrackPower;
  103. //}
  104. TrackRelationXD GetTrackRelationXD()
  105. {
  106. return m_TrackRelationXD;
  107. }
  108. bool CheckElcEnvirRelation(); //检查电环关系
  109. int CheckInPowerNums(); //检查带电的个数
  110. // void SendAlarmMsg(string grade,int station,string strvalue);
  111. // void SendSOEMsg(int station,string label,string labelvalue);
  112. void SendMsgNotice(int station,int sysid,int level,int type, int fault, string labelvalue,string strEqpmtID = ""); //发送消息通知
  113. void AddCtrlUnoin(int operstatus,string preeqpmtid,int prestatus,int relation,int delaytime,int index); //增加联控
  114. virtual void CalculateValue(double inputv,double inputI,std::map<string,BaseElectricEqpmt*>* PEqpmtMap){} //计算值
  115. virtual void EqpmtCtrl(int status,map<string,BaseElectricEqpmt*>& ElectricEqpmtMap,string Stdid,int CtrlType, int nMark = 0){ SetCtrlMark(nMark); }
  116. virtual void EqpmtCtrlExecution(int status, map<string, BaseElectricEqpmt*>& ElectricEqpmtMap, string Stdid, int CtrlType, int nMark = 0) { SetCtrlMark(nMark); }
  117. virtual bool CheckProtect(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap,int errorid,int protectid,bool bAutoRelation = true){return false;} //检查保护
  118. //virtual bool CheckProtect(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap,int errorid,int protectid,bool bAutoRelation = true); //检查保护
  119. virtual bool handle_checkprotect(int eventOper,map<string,BaseElectricEqpmt*>& eqpmtmap,int errorid,int protectid){return false;}//处理保护
  120. virtual bool handle_fault(int eventOper,map<string,BaseElectricEqpmt*>& eqpmtmap,int errorid, int Param, int nType); //处理故障
  121. virtual bool handle_revert(int eventOper,map<string,BaseElectricEqpmt*>& eqpmtmap,int Param); //处理恢复
  122. virtual bool handle_delaytime(time_t& time,map<string,BaseElectricEqpmt*>& eqpmtmap,const DelayTimeInfo& delayparm){return false;}//处理延时
  123. //************************************
  124. // 函数名称: PowerCut
  125. // 函数功能: 检查设备是否可以断电
  126. // 函数类型: virtual public
  127. // 返 回 值: bool
  128. // 参数说明: map<string
  129. // 参数说明: BaseElectricEqpmt * > & eqpmtmap
  130. // 参数说明: string sourceid
  131. // 参数说明: int offcase
  132. // 作 者: 张家华
  133. // 日 期: 2019/4/16
  134. // 修改记录:
  135. //************************************
  136. virtual bool PowerCut(map<string,BaseElectricEqpmt*>& eqpmtmap,string sourceid,int offcase); //
  137. //************************************
  138. // 函数名称: PowerLost
  139. // 函数功能: 切断当前设备带电状态
  140. // 函数类型: virtual public
  141. // 返 回 值: bool
  142. // 参数说明: map<string
  143. // 参数说明: BaseElectricEqpmt * > & eqpmtmap
  144. // 参数说明: string sourceid
  145. // 参数说明: int offcase
  146. // 作 者: 张家华
  147. // 日 期: 2019/4/16
  148. // 修改记录:
  149. //************************************
  150. virtual bool PowerLost(map<string,BaseElectricEqpmt*>& eqpmtmap, string sourceid,int offcase); //
  151. virtual bool PowerIn(map<string,BaseElectricEqpmt*>& eqpmtmap, string sourceid); //来电
  152. virtual void UpdateEqpmtStatus(map<string,BaseElectricEqpmt*>& eqpmtmap,int status,int ctrltype=CTRLTYPE_STATUS,int nDesSysID = 0); //更新设备状态
  153. virtual void SetDelayMap(DELAYMAP* delaymap){p_DelayTimeMap=delaymap;} //设置延时列表
  154. virtual int CheckEqpmtCtrlCase(int status,map<string,BaseElectricEqpmt*>& ElectricEqpmtMap,int stdid,int subsysid,int trianid,int stationid,int viewid, int CtrlType, int nMark = 0){ return DH_CmdReplyStatus_Deny;}
  155. virtual void ClearProtect(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap,int errorid){} //清除保护
  156. virtual void ClearSingleProtect(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap,int errorid,const string& strProtecResetType = ""){} //清除单个保护
  157. virtual void SetShield(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap){}
  158. virtual void CancleShield(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap){}
  159. void UpdateCommmunicationStatus(int status);
  160. virtual void CutEqpmtAlarm(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap, int nTripActType); //设备报警
  161. virtual void RevertEqpmtAlarm(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap, int nTripActType); //设备报警恢复
  162. virtual void CutCommunication(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap); //通讯中断
  163. virtual void RevertCommunication(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap); //通讯恢复
  164. virtual void SetRemoteLock(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap,int status,int ctrlArea,int lockType){}
  165. virtual void CancleRemoteLock(map<string,BaseElectricEqpmt*>& ElectricEqpmtMap,int status,int ctrlArea){}
  166. virtual void InitiativeUnionCtrl(int status,map<string,BaseElectricEqpmt*>& ElectricEqpmtMap); //初始化联动控制
  167. virtual bool CheckTripping( map<string,BaseElectricEqpmt*>& ElectricEqpmtMap, const ProtectValue& protectValue ){ return false; }
  168. virtual void UnLockTrippingEqpmt( map<string,BaseElectricEqpmt*>& ElectricEqpmtMap ){}
  169. static ErrorToProtectMAP* GetErrorToProtectMAP()
  170. {
  171. return &m_mapErrorToProtect;
  172. }
  173. static void ClearErrorToProtectMAP()
  174. {
  175. m_mapErrorToProtect.clear();
  176. }
  177. /*
  178. 故障发生时启动故障对应保护类型(一种或多种)
  179. */
  180. virtual bool CheckErrorToProtect( int eventOper,map<string,BaseElectricEqpmt*>& eqpmtmap, int nErrorid );
  181. virtual bool RevertErrorToProtect( int eventOper,map<string,BaseElectricEqpmt*>& eqpmtmap, int nErrorid );
  182. virtual bool RevertErrorToProtect( int eventOper,map<string,BaseElectricEqpmt*>& eqpmtmap, int nErrorid, int nProtectID );
  183. /*
  184. 故障发生时根据闭锁列表闭锁相关设备 ADD BY XYX 2018-01-18
  185. */
  186. void AddProtectLockingEqpmt( const string& strProtectLockingEqpmtID, int nProtectId ,const string& strLockintText );
  187. void ProtectLocking( BaseElectricEqpmt* pEqpmt, const string& strLockingDisplayContent, int nProtectID );
  188. //故障场景闭锁的设备
  189. void AddFaultSceneLockingEqpmt(const string& strProtectLockingEqpmtID, int nProtectId);
  190. void FaultSceneLocking(BaseElectricEqpmt* pEqpmt, int nProtectID);
  191. void SetMotherAutoBolt( const string& strMotherAutoBolt )
  192. {
  193. m_strMotherAutoBolt = strMotherAutoBolt;
  194. }
  195. string GetMotherAutoBolt()
  196. {
  197. return m_strMotherAutoBolt;
  198. }
  199. void CheckMotherAutoBolt(map<string,BaseElectricEqpmt*>& eqpmtmap);
  200. bool AddFaultEqpmt(string FaultEqpmt); //xyx新增,添加当前故障设备
  201. //************************************
  202. // 函数名称: UpdateOperResultStatusToMsg
  203. // 函数功能: 将设备的操作结果信息发送至教员用于评价
  204. // 函数类型: virtual public
  205. // 返 回 值: void
  206. // 参数1说明: string strEqpmtID 设备图元ID
  207. // 参数2说明: int EqpmtName 设备操作结果状态
  208. // 作 者: xyx新增
  209. // 日 期: 2019/8/19
  210. // 修改记录:
  211. //************************************
  212. virtual void UpdateOperResultToTechEva(string strEqpmtID,int nResultStatus);
  213. //add by yangs 20230702
  214. int GetCurErrorNos()
  215. {
  216. return m_CurErrorNos.size();
  217. }
  218. //add by yangs 20230702
  219. bool EraseErrorNosByErrorID(int nErrorID);
  220. protected:
  221. std::vector<string> m_FaultEqpmt; //xyx新增,线路测试时查找当前故障设备
  222. std::map<string,InputLineInfo> InputEqpmtIDMap; //输入设备ID列表
  223. std::map<string, string> OutputEqpmtIDMap; //输出设备ID列表
  224. std::map<int,ErrorInfo> m_CurErrorNos; //当前故障号
  225. std::vector<ProtectCtrl> ProtectVecs; //保护列表
  226. double InputVoltage; //输入电压
  227. double InputElectricity; //输入电流
  228. double OutputVoltage; //输出电压
  229. double OutputElectricity; //输入电流
  230. int m_Trianid; //训练ID
  231. //bool HavePower; //是否有电
  232. CommandQueue * p_SendList; //消息发送列表
  233. vector<int> m_AlarmIDs; //报警ID
  234. vector<ElcEnvirPowerRelation> m_ElcEnvirRelations; //电环关第列表
  235. std::vector<UionCtrl> m_CtrlUnions; //联控信息列表
  236. DELAYMAP* p_DelayTimeMap;
  237. //string AutoBoltID; //noted by zhangjiahua
  238. int m_OperStationID; //客户端操作车站ID
  239. int m_OperViewID; //客户端操作视图ID
  240. int m_OperSubsysID; //客户端操作子系统ID
  241. std::vector<UionCtrl> m_ProtectLockingEqpmt;//保护闭锁设备列表
  242. std::vector<FaultSceneCtrl> m_vecFaultSceneLockingEqpmt;//故障场景控制,故障后试合闸不成功的设备
  243. ///*
  244. //左右进线关联母联备自投设备编号
  245. //*/
  246. string m_strMotherAutoBolt;
  247. //是否禁止复归 add by chenht
  248. bool IsProhibitedReversion;
  249. bool isReallyEqpmt; // 是否是真实设备
  250. bool isRealEqpmtFeedback; //真实设备是否反馈
  251. int m_nRealEqpmtStatus; //真实设备反馈状态
  252. int m_nDelaydurTime; //设备动作延时时间
  253. public:
  254. std::vector<ProtectValue> SettingProtects;
  255. static TrackRelationXDMAP m_TrackRelationXDMap;
  256. static ErrorToProtectMAP m_mapErrorToProtect;
  257. //string m_TrackStrid;
  258. //int m_TrackPower;
  259. //int m_PreTrackPower;
  260. vector<string> m_EarthSwitchID; //接地开关ID
  261. vector<string> m_EarthSwitchInputSwitch; //接地开关输入开关
  262. TrackRelationXD m_TrackRelationXD;
  263. /*void SetAutoBoltID(string id)
  264. {
  265. AutoBoltID = id;
  266. }
  267. string GetAutoBoltID()
  268. {
  269. return AutoBoltID;
  270. }*/ //noted by zhangjiahua
  271. void SetOperStationID(int id)
  272. {
  273. if (id != -1 && id != m_OperStationID)
  274. {
  275. m_OperStationID = id;
  276. }
  277. }
  278. int GetOperStationID()
  279. {
  280. return m_OperStationID;
  281. }
  282. void SetOperViewID(int id)
  283. {
  284. if (id != -1 && id != m_OperViewID)
  285. {
  286. m_OperViewID = id;
  287. }
  288. //m_OperViewID = id;
  289. }
  290. int GetOperViewID()
  291. {
  292. return m_OperViewID;
  293. }
  294. void SetOperSubsysID(int id)
  295. {
  296. if (id != -1 && id != m_OperSubsysID)
  297. {
  298. m_OperSubsysID = id;
  299. }
  300. //m_OperSubsysID = id;
  301. }
  302. int GetOperSubsysID()
  303. {
  304. return m_OperSubsysID;
  305. }
  306. public:
  307. /*
  308. 遥信模块处理句柄
  309. */
  310. static void* m_pTelesignalisationOwner;
  311. int m_nCurProtectID;
  312. static void SetTelesignalisationOwner(void* pTelesignalisationOwner )
  313. {
  314. m_pTelesignalisationOwner = pTelesignalisationOwner;
  315. }
  316. static void SetCallBackTelesignalisationFunc( CALLBACKFUNC_Telesignalisation hCallBackTelesignalisation)
  317. {
  318. m_hCallBackTelesignalisation = hCallBackTelesignalisation;
  319. }
  320. static CALLBACKFUNC_Telesignalisation m_hCallBackTelesignalisation;
  321. /*
  322. 遥信处理
  323. */
  324. void DealTelesignalisation( int nProtectID, const string& strEqpmtStrID, int nMark );
  325. /*
  326. 设备区域失电/受电处理
  327. */
  328. void DealElcTurnOffArea();
  329. /*
  330. 400V三级负荷停送电
  331. */
  332. void Deal400VLoad();
  333. static CALLBACKFUNC_DealElcTurnOffArea m_hCallBackDealElcTurnOffArea;
  334. static void SetCallBackDealElcTurnOffAreaFunc( CALLBACKFUNC_DealElcTurnOffArea hCallBackDealElcTurnOffArea )
  335. {
  336. m_hCallBackDealElcTurnOffArea = hCallBackDealElcTurnOffArea;
  337. }
  338. int m_nRelationElcTurnOffArea;
  339. void SetRelationElcTurnOffArea( int nRelationElcTurnOffArea )
  340. {
  341. m_nRelationElcTurnOffArea = nRelationElcTurnOffArea;
  342. }
  343. int GetRelationElcTurnOffArea()
  344. {
  345. return m_nRelationElcTurnOffArea;
  346. }
  347. bool IsPower();
  348. void ElcAreaAlarm( bool bPower );
  349. public:
  350. /*
  351. 当前设备操作方式:大于0为人工操作
  352. */
  353. int m_nCtrlMark; //修改为设备成员变量
  354. void SetCtrlMark( int nMark )
  355. {
  356. m_nCtrlMark = nMark;
  357. }
  358. void ResetCtrlMark()
  359. {
  360. m_nCtrlMark = 0;
  361. }
  362. int GetCtrlMark()
  363. {
  364. return m_nCtrlMark;
  365. }
  366. public:
  367. /*
  368. 功能:增加同一供电区间内备自投自投逻辑 ADD BY XYX 2018-03-28
  369. */
  370. vector<OutLineElectricEqpmt> m_vecOutLineElectricEqpmt;
  371. /*
  372. 增加出线设备
  373. */
  374. void AddOutLineElectricEqpmt( int nType, const string& strOutLineElectricEqpmtStrID );
  375. /*
  376. 检查出线设备
  377. */
  378. virtual void CheckOutLineElectricEqpmt(map<string,BaseElectricEqpmt*>& eqpmtmap, int nMark = 0);
  379. /*
  380. 35KV目联是否投入
  381. */
  382. virtual bool BoltPowerIn_35KV( map<string,BaseElectricEqpmt*>& eqpmtmap, const string& strOutLineElectricEqpmtStrID );
  383. /*
  384. 400V出线设备自断
  385. */
  386. virtual void PowerCutCurElectricEqpmt_400V( map<string,BaseElectricEqpmt*>& eqpmtmap );
  387. /*
  388. XYX END 2018-03-30
  389. */
  390. public:
  391. /*
  392. 车站400V三级负荷
  393. */
  394. int m_n400VLoadID;
  395. static CALLBACKFUNC_Deal400VLoadTurnOff m_hCallBackDeal400VLoadTurnOff;
  396. static void SetCallBackDeal400VLoadTurnOffFunc( CALLBACKFUNC_Deal400VLoadTurnOff hCallBackDeal400VLoadTurnOff )
  397. {
  398. m_hCallBackDeal400VLoadTurnOff = hCallBackDeal400VLoadTurnOff;
  399. }
  400. void Set400VLoadID( int nLoadID )
  401. {
  402. m_n400VLoadID = nLoadID;
  403. }
  404. public:
  405. //设置电调设备报警配置信息 xyx新增
  406. static ELCEQPMTALARMINFOMAP* m_EqpmtAlarmInfoMap;
  407. static void SetElcEqpmtAlarmInfoMap(ELCEQPMTALARMINFOMAP* m_AlarmInfoMap );
  408. //************************************
  409. // 函数名称: UpdateAlarmInfo
  410. // 函数功能: 更新报文
  411. // 函数类型: public
  412. // 返 回 值: void
  413. // 参数1说明: string EppmtTypeName 设备类型名称
  414. // 参数2说明: string EqpmtName 设备名称
  415. // 参数3说明: int SourceStaionID 设备所属车站ID
  416. // 参数4说明: ELCEQPMTALARMINFO& EqpmtAlarmInfo 设备报文配置信息
  417. // 作 者: xyx新增
  418. // 日 期: 2019/8/8
  419. // 修改记录:
  420. //************************************
  421. void UpdateAlarmInfo(string EppmtTypeName, string EqpmtName,int SourceStaionID,ELCEQPMTALARMINFO& EqpmtAlarmInfo );
  422. //************************************
  423. // 函数名称: UpdateAlarmType
  424. // 函数功能: 更新动作设备的报文类型
  425. // 函数类型: public
  426. // 返 回 值: void
  427. // 参数1说明: int EppmtType 设备类型ID
  428. // 参数2说明: string EppmtTypeName 设备类型名称
  429. // 参数3说明: string EqpmtName 设备名称
  430. // 参数4说明: int SourceStaionID 设备所属车站ID
  431. // 参数5说明: int ActType 动作类型ID
  432. // 作 者: xyx新增
  433. // 日 期: 2019/8/12
  434. // 修改记录:
  435. //************************************
  436. void UpdateAlarmType( int EppmtType, string EppmtTypeName, string EqpmtName,int SourceStaionID,int ActType);
  437. //更新设备闭锁光字牌保护状态
  438. void UpdateEqpmtLightCardStatu(int nProtectID);
  439. //
  440. void UpdateEqpmtTeleValue(string strEqpmtID, int nType, float fValue, int IsReset);
  441. //更新设备带电状态
  442. void UpdateEqpmtPower(string strEqpmtID, int power);
  443. //设置设备所属的电环联合控制区域
  444. int m_nElcToEnvCtrlAreaID;
  445. void SetElcToEnvCtrlArea( int nCtrlAreaID )
  446. {
  447. m_nElcToEnvCtrlAreaID = nCtrlAreaID;
  448. }
  449. //考试模式下设备校验反馈 add by chenht
  450. void SendExamModeEqpmtCheckStatus( int stdid,int subsysyid,int trianid,int stationid,int viewid);
  451. //设置禁止复归
  452. void setProhibitedReversion(bool bIsPRever = true)
  453. {
  454. IsProhibitedReversion = bIsPRever;
  455. }
  456. bool getProhibitedReversion()
  457. {
  458. return IsProhibitedReversion;
  459. }
  460. void setReallyEqpmtFlag() { isReallyEqpmt = true; }
  461. bool checkReallyEqpmtFlag() { return isReallyEqpmt; }
  462. void setRealEqpmtFeedback(bool flag) { isRealEqpmtFeedback = flag; }
  463. bool checkRealEqpmtFeedback() { return isRealEqpmtFeedback; }
  464. void setRealEqpmtStatus(int status) { m_nRealEqpmtStatus = status; }
  465. int getRealEqpmtStatus() { return m_nRealEqpmtStatus; }
  466. void setDelaydurTime(int time) { m_nDelaydurTime = time; }
  467. int getDelaydurTime() { return m_nDelaydurTime; }
  468. bool CheckDCMLineInPowerNums(map<string, BaseElectricEqpmt*>& eqpmtmap);
  469. bool PowerCutMLineOutPower(int nType);
  470. };
  471. typedef std::map<string,BaseElectricEqpmt*> ELEEQPMTMAP;
  472. typedef std::map<string, string> OUTPUTEQPMTMAP;
  473. typedef std::map<string,InputLineInfo> INPUTEQPMTMAP;
  474. typedef std::map<int,ErrorInfo> ERRORMAP;