Browse Source

update

master
zhaohe 2 years ago
parent
commit
730e0f3a47
  1. 11
      README.md
  2. 2
      src/db/db_service.hpp
  3. 55
      src/service/device_io_control_service.cpp
  4. 6
      src/service/disinfection_ctl_service.cpp

11
README.md

@ -72,3 +72,14 @@ https://www.sqlite.org/docs.html
4 kPa=407.888 毫米水柱
传感器测量精度:0.407888 毫米水柱
```
```
1. 支持调速
2. 液体容量进行滤波
3. 打印日志去掉小数点
1. 加泵写死,速度不可修改,550g/min
2. 注射泵速率限制在30g/min
```

2
src/db/db_service.hpp

@ -25,7 +25,7 @@
#define FORMULA_DB "formula.db"
#define USER_BEHAVIOR_RECORD_DB "user_behavior_record.db"
#define USER_BEHAVIOR_RECORD_DB_MAX_RECORDS 1000
#define USER_BEHAVIOR_RECORD_DB_MAX_RECORDS 30000
/**
* @brief
*

55
src/service/device_io_control_service.cpp

@ -13,8 +13,8 @@ using namespace std;
- 3 PC7 5
#endif
#define GPM_TO_SPEED(gpm) (gpm * 3.07)
#define SPEED_TO_GPM(speed) (speed / 3.07)
#define GPM_TO_SPEED(gpm) (gpm * 10)
#define SPEED_TO_GPM(speed) (speed / 10)
DeviceIoControlService::DeviceIoControlService() {}
void DeviceIoControlService::initialize() { GET_TO_SERVICE(m_zcanHost); }
@ -164,9 +164,10 @@ void DeviceIoControlService::drainingPump_close() {
logger->info("drainingPump_close");
m_zcanHost->pumpctrl_c1004(1, 100, 0, 1, 20);
}
#define replenishingFluidsPump_GPM2RPM(gpm) (gpm / 2)
void DeviceIoControlService::replenishingFluidsPump_open() {
logger->info("replenishingFluidsPump_open");
// 600g/m 300RPM
m_zcanHost->pumpctrl_c1004(1, 100, 300, 1, 20);
}
void DeviceIoControlService::replenishingFluidsPump_close() {
@ -176,7 +177,7 @@ void DeviceIoControlService::replenishingFluidsPump_close() {
void DeviceIoControlService::replenishingFluidsPump_open_for_test(int gpm) {
logger->info("replenishingFluidsPump_open_for_test {}", gpm);
int speed = GPM_TO_SPEED(gpm);
int speed = replenishingFluidsPump_GPM2RPM(gpm);
if (speed > 300) {
speed = 300;
} else if (speed < -300) {
@ -192,10 +193,10 @@ void DeviceIoControlService::replenishingFluidsPump_close_for_test() {
* sprayLiquidPump *
*******************************************************************************/
void DeviceIoControlService::sprayLiquidPump_open(int gpm) {
logger->info("sprayLiquidPump_open");
logger->info("sprayLiquidPump_open {}", gpm);
int speed = GPM_TO_SPEED(gpm);
if (speed > 300) {
speed = 300;
if (speed > 400) {
speed = 400;
} else if (speed < 0) {
speed = 0;
}
@ -207,12 +208,12 @@ void DeviceIoControlService::sprayLiquidPump_close() {
}
void DeviceIoControlService::sprayLiquidPump_open_for_test(int gpm) {
logger->info("sprayLiquidPump_open");
logger->info("sprayLiquidPump_open {}", gpm);
int speed = GPM_TO_SPEED(gpm);
if (speed > 300) {
speed = 300;
} else if (speed < -300) {
speed = -300;
if (speed > 400) {
speed = 400;
} else if (speed < -400) {
speed = -400;
}
m_zcanHost->pumpctrl_c1004(2, 100, speed, 1, 15);
}
@ -232,6 +233,34 @@ int DeviceIoControlService::sprayLiquidPump_getState() { //
/*******************************************************************************
* SensorState *
*******************************************************************************/
static int filter(int data) {
static list<int> q;
q.push_back(data);
if (q.size() > 50) {
q.pop_front();
}
// 中值滤波
int datacache[51];
int ndata = 0;
for (auto& var : q) {
datacache[ndata] = var;
ndata++;
}
for (int i = 0; i < ndata; i++) {
for (int j = i + 1; j < ndata; j++) {
if (datacache[i] > datacache[j]) {
int temp = datacache[i];
datacache[i] = datacache[j];
datacache[j] = temp;
}
}
}
return datacache[ndata / 2];
}
int DeviceIoControlService::getDisinfectantVolume_g() {
// kpa;
lock_guard<recursive_mutex> lock(lock_);
@ -243,6 +272,8 @@ int DeviceIoControlService::getDisinfectantVolume_g() {
} else {
g -= 450;
}
g = filter(g);
// logger->info("g {}", g);
return g;
}
int DeviceIoControlService::getPressureSensorData(int index) {

6
src/service/disinfection_ctl_service.cpp

@ -250,8 +250,8 @@ void DisinfectionCtrlService::dumpDisinfectionLogsToCSV(DisinfectionContext& con
"{},{},{},{}," //
// "{},{},{},{}," //
// "{},{},{},{}," //
"{:.2f},{:.2f},{:.2f}," //
"{},{},{},{}," //
"{},{},{}," //
"{},{},{},{}," //
// "{},{},{},{}," //
"{}," //
"{}\n" //
@ -260,7 +260,7 @@ void DisinfectionCtrlService::dumpDisinfectionLogsToCSV(DisinfectionContext& con
sensors[0].h2o2, sensors[0].temp, sensors[0].humid, sensors[0].saturation, //
// sensors[1].h2o2, sensors[1].temp, sensors[1].humid, sensors[1].saturation, //
// sensors[2].h2o2, sensors[2].temp, sensors[2].humid, sensors[2].saturation, //
dvalue, m_context.m_nowLoglevel, m_context.m_targetLoglevel, //
(int32_t)dvalue, (int32_t)m_context.m_nowLoglevel, (int32_t)m_context.m_targetLoglevel, //
ds->heatingStrip_getstate(), ds->airBlower_getstate(), ds->airCompressor_getstate(), ds->sprayLiquidPump_getGPM(), //
m_deviceIoControlService->getDisinfectantVolume_g(), //
formattimeS(remaintime)));

Loading…
Cancel
Save