MineCardManager.h 2.4 KB

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