Browse Source

update

master
zhaohe 2 years ago
parent
commit
bfefc37cd9
  1. 4
      README.md
  2. 83
      src/service/disinfection_ctl_service.cpp
  3. 4
      src/service/sensor_data_scan.cpp
  4. 2
      src/service/sensor_data_scan.hpp

4
README.md

@ -87,8 +87,8 @@ https://www.sqlite.org/docs.html
加液 液位变换
排液 1.控制蠕动泵
2.液位变换
排液 1.控制蠕动泵
2.液位变换
消毒 1. 上报时间,计算剩余时间.
2. 上报所有传感器信息.

83
src/service/disinfection_ctl_service.cpp

@ -69,37 +69,33 @@ void DisinfectionCtrlService::startDisinfection(int loglevel, float roomVol) {
thisThread.sleepForMs(1000);
}
{ m_isDisinfectionRunning = false; }
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_disinfectionWorkState = 0;
}));
}
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::pauseDisinfection() { m_disinfectionWorkState = 2; }
void DisinfectionCtrlService::continueDisinfection() { m_disinfectionWorkState = 1; }
void DisinfectionCtrlService::stopDisinfection() {
lock_guard<recursive_mutex> lock(lock_);
if (m_disinfectionThread) {
m_disinfectionThread->join();
m_disinfectionThread = nullptr;
}
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_);
@ -115,24 +111,57 @@ string DisinfectionCtrlService::getDisinfectionID() {
return m_disinfectionID;
}
// 加液
void DisinfectionCtrlService::startReplenishingFluids() {
lock_guard<recursive_mutex> lock(lock_);
if (m_disinfectionThread) {
m_disinfectionThread->join();
m_disinfectionThread = nullptr;
}
logger->info("startReplenishingFluids");
m_zcanHost->pumpctrl_c1004(1, 300, 1000);
m_zcanHost->pumpctrl_c1004(1, 300, 300, 1, 20);
m_replenishingFluidsWorkState = 1;
}
// 停止加液
void DisinfectionCtrlService::stopReplenishingFluids() {
lock_guard<recursive_mutex> lock(lock_);
logger->info("stopReplenishingFluids");
m_zcanHost->pumpctrl_c1004(1, 300, 0);
m_zcanHost->pumpctrl_c1004(1, 300, 0, 1, 20);
m_replenishingFluidsWorkState = 0;
}
if (m_disinfectionThread) {
m_disinfectionThread->join();
m_disinfectionThread = nullptr;
}
}
// 开始排液
void DisinfectionCtrlService::startDraining() {
lock_guard<recursive_mutex> lock(lock_);
logger->info("startDraining");
m_zcanHost->pumpctrl_c1004(1, 300, -1000);
m_replenishingFluidsWorkState = 1;
m_zcanHost->pumpctrl_c1004(1, 300, -300, 1, 20);
m_drainingWorkState = 1;
if (m_disinfectionThread) {
m_disinfectionThread->join();
m_disinfectionThread = nullptr;
}
}
// 停止排液体
void DisinfectionCtrlService::stopDraining() {
lock_guard<recursive_mutex> lock(lock_);
logger->info("stopDraining");
m_zcanHost->pumpctrl_c1004(1, 300, 0);
m_replenishingFluidsWorkState = 0;
m_zcanHost->pumpctrl_c1004(1, 300, 0, 1, 20);
m_drainingWorkState = 0;
if (m_disinfectionThread) {
m_disinfectionThread->join();
m_disinfectionThread = nullptr;
}
}
int DisinfectionCtrlService::getReplenishingFluidsWorkState() { return m_replenishingFluidsWorkState; }
int DisinfectionCtrlService::getDrainingWorkState() { return m_drainingWorkState; }

4
src/service/sensor_data_scan.cpp

@ -74,7 +74,9 @@ int SensorDataScan::getChargingPump_PumpRPM() { return m_zcanHost->pumpctrl_c100
int SensorDataScan::getDisinfectantVolume() {
// kpa;
int pa = m_zcanHost->huacheng_pressure_sensor_get_pa(&m_pressure_sensor_data[0]);
return pa;
// m(kg)=2.11*P(kPa)
pa = 1; // TODO 检查传感器异常,则不允许加液
return 2.11 * pa * 1000;
}
int SensorDataScan::getWaterImmersionSensor1() { return m_waterImmersionSensor1 ? 1 : 0; }

2
src/service/sensor_data_scan.hpp

@ -76,7 +76,7 @@ class SensorDataScan : public enable_shared_from_this<SensorDataScan> {
int getSprinkler_PumpRPM();
int getChargingPump_PumpRPM();
int getDisinfectantVolume();
int getDisinfectantVolume(); // g
int getWaterImmersionSensor1();
int getWaterImmersionSensor2();

Loading…
Cancel
Save