DrainPoolUnit.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #pragma once
  2. #include <vector>
  3. #include <map>
  4. #include <string>
  5. //#include "EnvironmentBaseDefine.h"
  6. using namespace std;
  7. // 定义水泵类型
  8. #define DrainPumpType_A 1 // A泵
  9. #define DrainPumpType_B 2 // B泵
  10. #define DrainPumpType_C 3 // C泵
  11. #define DrainPumpType_D 4 // D泵
  12. // 定义水位报警类型
  13. #define DrainAlarm_Low 0 // 超低水位
  14. #define DrainAlarm_Close 1 // 停泵水位
  15. #define DrainAlarm_OpenOne 2 // 开单泵水位
  16. #define DrainAlarm_OpenTwo 3 // 开双泵水位
  17. #define DrainAlarm_OpenThree 4 // 开三泵水位
  18. #define DrainAlarm_OpenFour 5 // 开四泵水位
  19. // 定义给排水单元:由水箱水泵组成
  20. struct CDrainPump
  21. {
  22. std::string m_strPoolStrID;
  23. std::string m_strEqpmtStrID;
  24. int m_nType;
  25. };
  26. class CDrainPoolUnit
  27. {
  28. public:
  29. CDrainPoolUnit();
  30. ~CDrainPoolUnit();
  31. void AddDrainPump( const std::string& strPoolStrID, const std::string& strPumpStrID, int nType );
  32. std::string GetPumpStrIDByType( int nType );
  33. bool CheckRunPump( int nType );
  34. void AddRunPumpType( int nType );
  35. void DelRunPumpType( int nType );
  36. void AddRunPumpStrID( const std::string& strEqpmtID );
  37. int Size();
  38. std::string GetFirstPumpStrID();
  39. std::string GetSecondPumpStrID();
  40. int GetWaterLevel();
  41. bool Get_Water_FromTS() { return m_bWaterFromTS; }
  42. bool Get_Level_Change() { return m_bLevelChange; }
  43. void Set_Level_Change(bool bLevelChang) { m_bLevelChange = bLevelChang; }
  44. public:
  45. void SetWaterLevel_FronTS( float fWaterHeightPercent );
  46. public:
  47. //add by yangs
  48. void SetWaterLevelByStatus(int nStatus);
  49. void setWaterLevel(float fLevel) { m_WaterLevel = fLevel; }
  50. void setWaterLevelAlarmLow(float fLevel) { m_fWaterLevelAlarmLow = fLevel; }
  51. void setWaterLevelAlarmHigh(float fLevel) { m_fWaterLevelAlarmHigh = fLevel; }
  52. void setWaterLevelClose(float fLevel) { m_fWaterLevelClose = fLevel; }
  53. void setWaterLevelOpenOne(float fLevel) { m_fWaterLevelOpenOne = fLevel; }
  54. void setWaterLevelOpenTwo(float fLevel) { m_fWaterLevelOpenTwo = fLevel; }
  55. void setWaterLevelOpenThree(float fLevel) { m_fWaterLevelOpenThree = fLevel; }
  56. void setWaterLevelOpenFour(float fLevel) { m_fWaterLevelOpenFour = fLevel; }
  57. bool checkWaterLevelAlarmHigh();
  58. public:
  59. std::string m_strPoolStrID; //水箱编号
  60. map< std::string, CDrainPump> m_mapDrainPump; //水泵集合
  61. vector<int> m_vecRunType; //轮流开启设备类型
  62. float m_WaterLevel; //
  63. private:
  64. bool m_bWaterFromTS; //水池中的水是否来源态势模块(默认:FALSE)
  65. bool m_bLevelChange; //水位等级变化
  66. float m_fWaterLevelAlarmLow; //低水位
  67. float m_fWaterLevelAlarmHigh; //高水位
  68. float m_fWaterLevelClose; //关泵
  69. float m_fWaterLevelOpenOne; //单泵
  70. float m_fWaterLevelOpenTwo; //双泵
  71. float m_fWaterLevelOpenThree; //三泵
  72. float m_fWaterLevelOpenFour; //四泵
  73. };