You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
1.8 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. //
  2. // Created by zwsd
  3. //
  4. #pragma once
  5. #include <fstream>
  6. #include <iostream>
  7. #include <list>
  8. #include <map>
  9. #include <memory>
  10. #include <mutex>
  11. #include <set>
  12. #include <sstream>
  13. #include <string>
  14. #include <vector>
  15. #include "iflytop/components/zcanreceiver/zcanhost.hpp"
  16. #include "iflytop/core/core.hpp"
  17. #include "zservice_container/zservice_container.hpp"
  18. /**
  19. * @brief
  20. *
  21. * service: DisinfectionCtrlService
  22. *
  23. * :
  24. * :
  25. * :
  26. * :
  27. *
  28. */
  29. namespace iflytop {
  30. using namespace std;
  31. using namespace core;
  32. class DisinfectionCtrlService : public enable_shared_from_this<DisinfectionCtrlService> {
  33. ENABLE_LOGGER(DisinfectionCtrlService);
  34. unique_ptr<Thread> m_disinfectionThread;
  35. string m_disinfectionID;
  36. int m_remaintime = 0;
  37. bool m_isDisinfectionRunning = false;
  38. recursive_mutex lock_;
  39. int m_disinfectionWorkState = 0;
  40. int m_replenishingFluidsWorkState = 0;
  41. int m_drainingWorkState = 0;
  42. shared_ptr<ZCanHost> m_zcanHost;
  43. public:
  44. DisinfectionCtrlService();
  45. public:
  46. void initialize();
  47. /**
  48. * @brief
  49. *
  50. * @param loglevel
  51. */
  52. void startDisinfection(int loglevel, float roomVol);
  53. void stopDisinfection();
  54. void pauseDisinfection();
  55. void continueDisinfection();
  56. int getDisinfectionWorkState();
  57. int getReplenishingFluidsWorkState();
  58. int getDrainingWorkState();
  59. /**
  60. * @brief
  61. *
  62. * @return true
  63. * @return false
  64. */
  65. void startReplenishingFluids();
  66. void stopReplenishingFluids();
  67. void startDraining();
  68. void stopDraining();
  69. bool isDisinfectionRunning();
  70. int32_t getEstimatedRemainingTimeS();
  71. string getDisinfectionID();
  72. private:
  73. string createDisinfectionID();
  74. };
  75. } // namespace iflytop