ElectricEqpmt_Breaker_110kV_Circuit.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "pch.h"
  2. #include "ElectricEqpmt_Breaker_110kV_Circuit.h"
  3. CElectricEqpmt_Breaker_110kV_Circuit::CElectricEqpmt_Breaker_110kV_Circuit(void)
  4. {
  5. SetSubType(Electric_Breaker_Circuit);
  6. }
  7. CElectricEqpmt_Breaker_110kV_Circuit::~CElectricEqpmt_Breaker_110kV_Circuit(void)
  8. {
  9. }
  10. int CElectricEqpmt_Breaker_110kV_Circuit::CheckEqpmtCtrlCase(int status,ELEEQPMTMAP& ElectricEqpmtMap,int stdid,int subsysid,int trianid,int stationid,int viewid,int CtrlType, int nMark)
  11. {
  12. // 真实设备反馈状态变化,不进行校验直接更新
  13. if (OperClient_RealSys == nMark || OperClient_RealSynch == nMark)
  14. {
  15. return DH_CmdReplyStatus_Pass;
  16. }
  17. // 母联断路器处理逻辑
  18. int nRetStatus = DH_CmdReplyStatus_Pass;
  19. ELEEQPMTMAP::iterator iterBolt = ElectricEqpmtMap.find(GetAutoBoltID());
  20. if (iterBolt != ElectricEqpmtMap.end() )
  21. {
  22. ElectricEqpmt_PowerBolt* pEqpmtBolt = (ElectricEqpmt_PowerBolt*)iterBolt->second;
  23. if ( pEqpmtBolt != NULL )
  24. {
  25. if (pEqpmtBolt->GetRelationBreakerType()==EQPMT_RELATIONTYPE_AUTOBOLT)
  26. {
  27. nRetStatus = pEqpmtBolt->GetEqpmtCtrlCaseStatus_CircuitBreaker_OnByHand(status,ElectricEqpmtMap);
  28. }
  29. //else if (pEqpmtBolt->GetRelationBreakerType()==EQPMT_RELATIONTYPE_AUTOBOLTLSWITCH)
  30. //{
  31. // nRetStatus = pEqpmtBolt->GetEqpmtCtrlCaseStatus_LInputBreaker(status,ElectricEqpmtMap);
  32. //}
  33. //else if (pEqpmtBolt->GetRelationBreakerType()==EQPMT_RELATIONTYPE_AUTOBOLTRSWITCH)
  34. //{
  35. // nRetStatus = pEqpmtBolt->GetEqpmtCtrlCaseStatus_RInputBreaker(status,ElectricEqpmtMap);
  36. //}
  37. //nRetStatus = pEqpmtBolt->GetEqpmtCtrlCaseStatus_CircuitBreaker(status,ElectricEqpmtMap);
  38. if ( nRetStatus == DH_CmdReplyStatus_Deny )
  39. {
  40. if (trianid>0)
  41. {
  42. std::stringstream ss;
  43. ss << GetEqpmentName() << " 操作禁止";
  44. std::string retstr = ss.str();
  45. DHSVRREPLY CheckReplyMsg;
  46. memset(&CheckReplyMsg, 0, sizeof(DHSVRREPLY)) ;
  47. strncpy(CheckReplyMsg.ReplyText, retstr.c_str(), sizeof(CheckReplyMsg.ReplyText));
  48. CheckReplyMsg.CmdID = OCCCOMMAND::eUpdateOperCheck;
  49. string strName=GetEqpmentID();
  50. strncpy(CheckReplyMsg.EqpmtStrID, strName.c_str(), sizeof(CheckReplyMsg.EqpmtStrID));
  51. CheckReplyMsg.CtrlLock=GetControlLock();
  52. CheckReplyMsg.StdID = stdid;
  53. CheckReplyMsg.EqpmtStatus =nRetStatus;
  54. CheckReplyMsg.StationID=stationid;
  55. CheckReplyMsg.ViewID = viewid;
  56. CheckReplyMsg.SubSysID = subsysid;
  57. OCCCOMMAND NetOrder;
  58. NetOrder.DesSysType = OCC_SYS_DD_CLIENT;
  59. NetOrder.ScrSysType = OCC_SYS_DD_SVR;
  60. NetOrder.TrainningID = trianid;
  61. NetOrder.setPacketValue(&CheckReplyMsg,OCCCOMMAND::eUpdateSvrReply);
  62. p_SendList->push(NetOrder);
  63. return nRetStatus;
  64. }
  65. }
  66. }
  67. }
  68. return CElectricEqpmt_SwicthEqpmt::CheckEqpmtCtrlCase(status, ElectricEqpmtMap, stdid, subsysid, trianid, stationid, viewid, CtrlType, nMark);
  69. }