MineCardManager.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /*
  2. ** 井中卡的数据:人员下井 ,人员升进,车下井升井数据
  3. ** 对应的操作,井下人员超时,井下超员等
  4. */
  5. #ifndef __MINECARDMANAGER_H
  6. #define __MINECARDMANAGER_H
  7. #include "minestruct.h"
  8. #include "card.h"
  9. //井下警告类型数量
  10. #define MAX_MINE_EVENT_NUM 3
  11. class CMineCardManager
  12. {
  13. private:
  14. CMineCardManager();
  15. private:
  16. std::shared_ptr<mine_card_info> m_minecards;
  17. //井下警告列表ID(下标为实践类型)
  18. uint64_t m_evlist[MAX_MINE_EVENT_NUM];
  19. private:
  20. /**
  21. * @brief 获取事件ID
  22. **/
  23. uint64_t GetMineEventId(int evType);
  24. /**
  25. * @brief 判断是否已存在
  26. **/
  27. bool Exist(SET_CARDID &list,uint64_t id);
  28. bool Exist(SET_CARDID &list,int card_id,int card_type);
  29. /**
  30. * @brief 创建警告事件
  31. * @param evType 警告类型
  32. * @param limitVal 限制数据(阀门值)
  33. * @param curVal 当前数据
  34. **/
  35. void StartEvent(int evType,int limitVal,int curVal);
  36. /**
  37. * @brief 取消警告事件
  38. * @param evType 警告类型
  39. * @param curVal 当前数据
  40. **/
  41. void CancelEvent(int evType,int curVal);
  42. public:
  43. //TODO: 获取信息
  44. std::shared_ptr<mine_card_info> GetMineCards() ;
  45. /**
  46. * @brief 人员下井,超员警告
  47. * @param card 卡
  48. * @param bInit 是否初始化(程序启动加载井下人员)
  49. **/
  50. void OnPersonDown(std::shared_ptr<card> card,bool bInit = false);
  51. /**
  52. * @brief 人员升井,取消超员警告
  53. * @param card 卡
  54. **/
  55. void OnPersonUp(std::shared_ptr<card> card);
  56. /**
  57. * @brief 人员超员警告
  58. **/
  59. void OnPersonOvercrowdingWarning();
  60. /**
  61. * @brief 人员井下超时
  62. **/
  63. void OnPersonInMineOverTime(int card_id,int card_type);
  64. public:
  65. /**
  66. * @brief 车下井 ,车辆超员警告
  67. * @param card 卡
  68. * @param bInit 是否初始化(程序启动加载井下车辆)
  69. **/
  70. void OnVehicleDown(std::shared_ptr<card> card,bool bInit = false);
  71. /**
  72. * @brief 车升井,车辆超员警告取消
  73. * @param card 卡
  74. **/
  75. void OnVehicleUp(std::shared_ptr<card> card);
  76. /**
  77. * @brief 车辆超员警告
  78. **/
  79. void OnVehicleOvercrowdingWarning();
  80. };
  81. #endif //__MINECARDMANAGER_H