Browse Source

update

master
zhaohe 2 years ago
parent
commit
5d4facb5c3
  1. 2
      iflytoplinuxsdk
  2. 38
      src/main_control_service.cpp
  3. 59
      src/service/disinfection_ctl_service.cpp
  4. 10
      src/service/disinfection_ctl_service.hpp

2
iflytoplinuxsdk

@ -1 +1 @@
Subproject commit b2d320b95091d412071bc7ed3d860d88e3cf4fbe
Subproject commit 7ca258a854b1d07cf4764b9b3dc3e8f482302337

38
src/main_control_service.cpp

@ -284,6 +284,29 @@ void MainControlService::processFrontEndMessage(weak_ptr<WebSocket> webSocket, j
return;
}
if (cmdstr == "updateDate") {
#if 0
{
"command":"updateDate",
"messageId":"1111222333444555",
"year":2023,
"month":8,
"day":25,
"hour":11,
"min":12,
"second":13,
}
#endif
int32_t year = jsonGet<int>(cmd["year"]);
int32_t month = jsonGet<int>(cmd["month"]);
int32_t day = jsonGet<int>(cmd["day"]);
int32_t hour = jsonGet<int>(cmd["hour"]);
int32_t min = jsonGet<int>(cmd["min"]);
int32_t second = jsonGet<int>(cmd["second"]);
logger->info("updateDate {} {} {} {}:{}:{}", year, month, day, hour, min, second);
return;
}
/*******************************************************************************
* *
*******************************************************************************/
@ -300,6 +323,14 @@ void MainControlService::processFrontEndMessage(weak_ptr<WebSocket> webSocket, j
return;
}
if (cmdstr == "pauseDisinfection") {
m_disinfectionCtrlService->pauseDisinfection();
return;
}
if (cmdstr == "continueDisinfection") {
m_disinfectionCtrlService->continueDisinfection();
return;
}
#if 0
//开始加液
{
@ -350,7 +381,12 @@ void MainControlService::processFrontEndMessage(weak_ptr<WebSocket> webSocket, j
receipt["state"]["isLogin"] = m_deviceStateService->isLogin();
receipt["state"]["loginuser"] = m_deviceStateService->getLoginUid();
receipt["state"]["permissionLevel"] = m_deviceStateService->getLoginPermissionLevel();
receipt["state"]["workState"] = m_disinfectionCtrlService->isDisinfectionRunning();
// receipt["state"]["workState"] = m_disinfectionCtrlService->isDisinfectionRunning();
receipt["state"]["disinfectionWorkState"] = m_disinfectionCtrlService->getDisinfectionWorkState();
receipt["state"]["replenishingFluidsWorkState"] = m_disinfectionCtrlService->getReplenishingFluidsWorkState();
receipt["state"]["drainingWorkState"] = m_disinfectionCtrlService->getDrainingWorkState();
receipt["state"]["estimatedRemainingTimeS"] = m_disinfectionCtrlService->getEstimatedRemainingTimeS();
receipt["state"]["disinfection_id"] = m_disinfectionCtrlService->getDisinfectionID();
receipt["state"]["sensor_data"] = createSensorDataJson();

59
src/service/disinfection_ctl_service.cpp

@ -35,8 +35,22 @@ void DisinfectionCtrlService::startDisinfection(int loglevel, float roomVol) {
}
m_disinfectionID = createDisinfectionID();
m_remaintime = 100;
m_remaintime = 20 * 60;
m_isDisinfectionRunning = true;
logger->info("startDisinfection {} {} {}", loglevel, roomVol, m_disinfectionID);
m_drainingWorkState = 1;
m_zcanHost->writeio(0, 1);
m_zcanHost->writeio(1, 1);
sleep(1);
m_zcanHost->writeio(2, 1);
m_zcanHost->writeio(3, 1);
sleep(1);
m_zcanHost->writeio(4, 1);
m_zcanHost->writeio(5, 1);
sleep(1);
m_zcanHost->pumpctrl_c1004(2, 300, 1000);
m_disinfectionThread.reset(new Thread("m_disinfectionThread", [this, loglevel]() {
// do something
// m_disinfectionThread->detach();
@ -58,6 +72,13 @@ void DisinfectionCtrlService::startDisinfection(int loglevel, float roomVol) {
{ m_isDisinfectionRunning = false; }
}));
}
int DisinfectionCtrlService::getDisinfectionWorkState() { return m_disinfectionWorkState; }
int DisinfectionCtrlService::getReplenishingFluidsWorkState() { return m_replenishingFluidsWorkState; }
int DisinfectionCtrlService::getDrainingWorkState() { return m_drainingWorkState; }
void DisinfectionCtrlService::pauseDisinfection() { m_drainingWorkState = 2; }
void DisinfectionCtrlService::continueDisinfection() { m_drainingWorkState = 1; }
void DisinfectionCtrlService::stopDisinfection() {
lock_guard<recursive_mutex> lock(lock_);
@ -67,6 +88,18 @@ void DisinfectionCtrlService::stopDisinfection() {
}
m_remaintime = 0;
logger->info("stop disinfection {}", m_disinfectionID);
m_zcanHost->writeio(0, 0);
m_zcanHost->writeio(1, 0);
sleep(1);
m_zcanHost->writeio(2, 0);
m_zcanHost->writeio(3, 0);
sleep(1);
m_zcanHost->writeio(4, 0);
m_zcanHost->writeio(5, 0);
sleep(1);
m_zcanHost->pumpctrl_c1004(2, 300, 0);
m_drainingWorkState = 0;
}
bool DisinfectionCtrlService::isDisinfectionRunning() {
lock_guard<recursive_mutex> lock(lock_);
@ -82,8 +115,24 @@ string DisinfectionCtrlService::getDisinfectionID() {
return m_disinfectionID;
}
void DisinfectionCtrlService::startReplenishingFluids() {}
void DisinfectionCtrlService::stopReplenishingFluids() {}
void DisinfectionCtrlService::startReplenishingFluids() {
logger->info("startReplenishingFluids");
m_zcanHost->pumpctrl_c1004(1, 300, 1000);
m_replenishingFluidsWorkState = 1;
}
void DisinfectionCtrlService::stopReplenishingFluids() {
logger->info("stopReplenishingFluids");
m_zcanHost->pumpctrl_c1004(1, 300, 0);
m_replenishingFluidsWorkState = 0;
}
void DisinfectionCtrlService::startDraining() {}
void DisinfectionCtrlService::stopDraining() {}
void DisinfectionCtrlService::startDraining() {
logger->info("startDraining");
m_zcanHost->pumpctrl_c1004(1, 300, -1000);
m_replenishingFluidsWorkState = 1;
}
void DisinfectionCtrlService::stopDraining() {
logger->info("stopDraining");
m_zcanHost->pumpctrl_c1004(1, 300, 0);
m_replenishingFluidsWorkState = 0;
}

10
src/service/disinfection_ctl_service.hpp

@ -43,6 +43,10 @@ class DisinfectionCtrlService : public enable_shared_from_this<DisinfectionCtrlS
bool m_isDisinfectionRunning = false;
recursive_mutex lock_;
int m_disinfectionWorkState = 0;
int m_replenishingFluidsWorkState = 0;
int m_drainingWorkState = 0;
shared_ptr<ZCanHost> m_zcanHost;
public:
@ -57,6 +61,12 @@ class DisinfectionCtrlService : public enable_shared_from_this<DisinfectionCtrlS
*/
void startDisinfection(int loglevel, float roomVol);
void stopDisinfection();
void pauseDisinfection();
void continueDisinfection();
int getDisinfectionWorkState();
int getReplenishingFluidsWorkState();
int getDrainingWorkState();
/**
* @brief

Loading…
Cancel
Save