Browse Source

v7.0

storage-in-realtime
zhaohe 1 year ago
parent
commit
69aaba4660
  1. 5
      src/api/cmds/device_state_cmd_impl.cpp
  2. 17
      src/api/cmds/selftest_cmd_impl.cpp
  3. 2
      src/api/cmds/selftest_cmd_impl.hpp
  4. 39
      src/service/device_io_control_service.cpp
  5. 5
      src/service/device_io_control_service.hpp
  6. 7
      src/service/device_io_control_service_test.cpp
  7. 1
      src/service/device_io_control_service_test.hpp
  8. 4
      src/service/disfection_ctl/disinfection_service.cpp
  9. 4
      src/service/if_devoce_io_contrl_service.hpp
  10. 2
      src/version.hpp

5
src/api/cmds/device_state_cmd_impl.cpp

@ -36,9 +36,10 @@ json DeviceStateCmdImpl::createSensorDataJson() {
report["heatingStrip"]["currentVal"] = m_deviceIoControlService->heatingStrip_getcurrentValue();
report["sprinklerPumpRPM"] = m_deviceIoControlService->sprayLiquidPump_getRPM();
report["chargingPumpRPM"] = m_deviceIoControlService->sprayLiquidPump_getRPM();
report["sprinklerPumpGPM"] = m_deviceIoControlService->sprayLiquidPump_getGPM();
report["chargingPumpRPM"] = m_deviceIoControlService->replenishingFluidsPump_getRPM();
// report["chargingPumpGPM"] = m_deviceIoControlService->getChargingPump_PumpGPM();
report["waterImmersionSensor1"] = m_deviceIoControlService->getDeviceBottomWaterDetectionSensor();

17
src/api/cmds/selftest_cmd_impl.cpp

@ -18,6 +18,9 @@ void SelfTestCmdImpl::initialize() {
m_msgProcesser->registerMsgProcesser("selftest_setH2O2Val", bind(&SelfTestCmdImpl::selfTest_setH2O2Val, shared_from_this(), placeholders::_1, placeholders::_2));
m_msgProcesser->registerMsgProcesser("selftest_setDeviceBottomWaterDetectionSensor", bind(&SelfTestCmdImpl::selfTest_setDeviceBottomWaterDetectionSensor, shared_from_this(), placeholders::_1, placeholders::_2));
m_msgProcesser->registerMsgProcesser("selftest_setEvaporationBinWaterDetection", bind(&SelfTestCmdImpl::selfTest_setEvaporationBinWaterDetection, shared_from_this(), placeholders::_1, placeholders::_2));
// updateFakeSensorState
m_msgProcesser->registerMsgProcesser("updateFakeSensorState", bind(&SelfTestCmdImpl::updateFakeSensorState, shared_from_this(), placeholders::_1, placeholders::_2));
}
void SelfTestCmdImpl::selfTest_setH2O2Val(json& cmd, json& receipt) { //
@ -70,3 +73,17 @@ void SelfTestCmdImpl::selfTest_setEvaporationBinWaterDetection(json& cmd, json&
p->selfTest_setEvaporationBinWaterDetection(val);
#endif
}
void SelfTestCmdImpl::updateFakeSensorState(json& cmd, json& receipt) {
// virtual bool H2O2Sensor_updateFakeVal(int32_t sensorid, bool enable, int32_t h2o2, int32_t humid, int32_t temp, int32_t saturation) { return true; }
// m_deviceIoControlService->updateFakeSensorState(cmd, receipt);
int32_t sensorid = cmd["params"]["sensorid"];
bool enable = cmd["params"]["enable"];
int32_t h2o2 = cmd["params"]["h2o2"];
int32_t humid = cmd["params"]["humid"];
int32_t temp = cmd["params"]["temp"];
int32_t sat = cmd["params"]["sat"];
m_deviceIoControlService->H2O2Sensor_updateFakeVal(sensorid, enable, h2o2, humid, temp, sat);
}

2
src/api/cmds/selftest_cmd_impl.hpp

@ -53,6 +53,8 @@ class SelfTestCmdImpl : public enable_shared_from_this<SelfTestCmdImpl> {
void selfTest_setDeviceBottomWaterDetectionSensor(json& cmd, json& receipt);
void selfTest_setEvaporationBinWaterDetection(json& cmd, json& receipt);
void updateFakeSensorState(json& cmd, json& receipt);
private:
};
} // namespace iflytop

39
src/service/device_io_control_service.cpp

@ -255,10 +255,31 @@ void DeviceIoControlService::processReportPacket(uint8_t* packet, size_t len) {
/*******************************************************************************
* H2O2 *
*******************************************************************************/
bool fake_sensor_val_enable[10] = {false};
int32_t fake_sensor_val_h2o2[10];
int32_t fake_sensor_val_humid[10];
int32_t fake_sensor_val_temp[10];
int32_t fake_sensor_val_saturation[10];
bool fake_sensor_val_sensorstate[10];
bool DeviceIoControlService::H2O2Sensor_updateFakeVal(int32_t sensorid, bool enable, int32_t h2o2, int32_t humid, int32_t temp, int32_t saturation) {
if (sensorid >= MAX_H2O2_SENSOR_NUM) return false;
fake_sensor_val_enable[sensorid] = enable;
fake_sensor_val_h2o2[sensorid] = h2o2;
fake_sensor_val_humid[sensorid] = humid;
fake_sensor_val_temp[sensorid] = temp;
fake_sensor_val_saturation[sensorid] = saturation;
return true;
}
bool DeviceIoControlService::H2O2Sensor_readSensorState(int32_t sensorid) {
std::lock_guard<std::mutex> lck(m_h2o2_sensor_data_lock_);
if (sensorid >= MAX_H2O2_SENSOR_NUM) return false;
if (fake_sensor_val_enable[sensorid]) {
return fake_sensor_val_sensorstate[sensorid];
}
h2o2_sensor_data_t* data = &m_h2o2_sensor_data[sensorid];
if (zsys_haspassedms(data->updatetime) > 10 * 1000) return false;
return true;
@ -268,6 +289,10 @@ int32_t DeviceIoControlService::H2O2Sensor_readH2O2PPM(int32_t sensorid) {
std::lock_guard<std::mutex> lck(m_h2o2_sensor_data_lock_);
if (sensorid >= MAX_H2O2_SENSOR_NUM) return -1;
if (fake_sensor_val_enable[sensorid]) {
return fake_sensor_val_h2o2[sensorid];
}
h2o2_sensor_data_t* data = &m_h2o2_sensor_data[sensorid];
if (data->updatetime == 0) return -1;
@ -284,6 +309,10 @@ int32_t DeviceIoControlService::H2O2Sensor_readHumid(int32_t sensorid) {
std::lock_guard<std::mutex> lck(m_h2o2_sensor_data_lock_);
if (sensorid >= MAX_H2O2_SENSOR_NUM) return -1;
if (fake_sensor_val_enable[sensorid]) {
return fake_sensor_val_humid[sensorid];
}
h2o2_sensor_data_t* data = &m_h2o2_sensor_data[sensorid];
if (data->updatetime == 0) return -1;
@ -295,6 +324,10 @@ int32_t DeviceIoControlService::H2O2Sensor_readTemperature(int32_t sensorid) {
std::lock_guard<std::mutex> lck(m_h2o2_sensor_data_lock_);
if (sensorid >= MAX_H2O2_SENSOR_NUM) return -1;
if (fake_sensor_val_enable[sensorid]) {
return fake_sensor_val_temp[sensorid];
}
h2o2_sensor_data_t* data = &m_h2o2_sensor_data[sensorid];
if (data->updatetime == 0) return -1;
@ -306,6 +339,10 @@ int32_t DeviceIoControlService::H2O2Sensor_readSaturation(int32_t sensorid) {
std::lock_guard<std::mutex> lck(m_h2o2_sensor_data_lock_);
if (sensorid >= MAX_H2O2_SENSOR_NUM) return -1;
if (fake_sensor_val_enable[sensorid]) {
return fake_sensor_val_saturation[sensorid];
}
h2o2_sensor_data_t* data = &m_h2o2_sensor_data[sensorid];
if (data->updatetime == 0) return -1;
@ -515,6 +552,8 @@ void DeviceIoControlService::replenishingFluidsPump_close() {
m_zcanHost->pumpctrl_c1004(1, 100, 0, 1, 20);
}
int DeviceIoControlService::replenishingFluidsPump_getRPM() { return m_zcanHost->pumpctrl_c1004_get_speed_cache(1); }
void DeviceIoControlService::replenishingFluidsPump_open_for_test(int gpm) {
logger->info("replenishingFluidsPump_open_for_test {}", gpm);
int speed = replenishingFluidsPump_GPM2RPM(gpm);

5
src/service/device_io_control_service.hpp

@ -113,6 +113,8 @@ class DeviceIoControlService : public IF_DeviceIoContrlService {
virtual int32_t H2O2Sensor_readSaturation(int32_t sensorid) override;
virtual bool H2O2Sensor_readSensorState(int32_t sensorid) override;
virtual bool H2O2Sensor_updateFakeVal(int32_t sensorid, bool enable, int32_t h2o2, int32_t humid, int32_t temp, int32_t saturation) override;
private:
void H2O2Sensor_updateSensorData(int32_t sensorid, report_h2o2_data_t* data);
@ -126,7 +128,7 @@ class DeviceIoControlService : public IF_DeviceIoContrlService {
virtual void sprayLiquidPump_open_for_test(int gpm) override;
virtual void sprayLiquidPump_close_for_test() override;
virtual int getPressureSensorData(int index) override;
virtual int getPressureSensorData(int index) override;
public:
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
@ -179,6 +181,7 @@ class DeviceIoControlService : public IF_DeviceIoContrlService {
virtual void replenishingFluidsPump_open_for_test(int speed) override;
virtual void replenishingFluidsPump_close_for_test() override;
virtual int replenishingFluidsPump_getRPM() override;
/******************************************************************************
* *

7
src/service/device_io_control_service_test.cpp

@ -100,8 +100,7 @@ int DeviceIoControlServiceTest::sprayLiquidPump_getGPM() { return sprayLiquidPu
void DeviceIoControlServiceTest::sprayLiquidPump_open_for_test(int gpm) { sprayLiquidPump_rpm = gpm; }
void DeviceIoControlServiceTest::sprayLiquidPump_close_for_test() { sprayLiquidPump_rpm = 0; }
int DeviceIoControlServiceTest::getPressureSensorData(int index) { return rand()%1000; } // g
int DeviceIoControlServiceTest::getPressureSensorData(int index) { return rand() % 1000; } // g
/*******************************************************************************
* *
@ -176,7 +175,7 @@ void DeviceIoControlServiceTest::replenishingFluidsPump_open(int32_t rpm) { drai
void DeviceIoControlServiceTest::replenishingFluidsPump_close() { drainingPump_rpm = 0; }
void DeviceIoControlServiceTest::replenishingFluidsPump_open_for_test(int speed) { drainingPump_rpm = speed; }
void DeviceIoControlServiceTest::replenishingFluidsPump_close_for_test() { drainingPump_rpm = 0; }
int DeviceIoControlServiceTest::replenishingFluidsPump_getRPM() { return drainingPump_rpm; }
/******************************************************************************
* *
@ -196,7 +195,7 @@ void DeviceIoControlServiceTest::selfTest_setEvaporationBinWaterDetection(int va
evaporationBinWaterDetection = val;
}
int DeviceIoControlServiceTest::getDisinfectantVolume_g() { return 800; } // g
int DeviceIoControlServiceTest::getDisinfectantVolume_g() { return 800; } // g
void DeviceIoControlServiceTest::warningLightCtrl(int r, int g, int b, int w) { logger->info("warningLightCtrl r:{} g:{} b:{} w:{}", r, g, b, w); }
#endif

1
src/service/device_io_control_service_test.hpp

@ -109,6 +109,7 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService {
virtual void replenishingFluidsPump_close() override;
virtual void replenishingFluidsPump_open_for_test(int speed) override;
virtual void replenishingFluidsPump_close_for_test() override;
virtual int replenishingFluidsPump_getRPM() override;
/******************************************************************************
* *

4
src/service/disfection_ctl/disinfection_service.cpp

@ -583,7 +583,7 @@ void DisinfectionService::pauseDisinfection() {
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
m_deviceIoControlService->airCompressor_setState(false);
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
m_deviceIoControlService->DBDB__miniPwmBlowerCtrl(0);
m_deviceIoControlService->DBDB__sprayAirCompressorPowerCtrl(0);
#endif
context.is_disinfection_take_break = true;
@ -596,7 +596,7 @@ void DisinfectionService::resumeDisinfection() {
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
m_deviceIoControlService->airCompressor_setState(true);
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
m_deviceIoControlService->DBDB__miniPwmBlowerCtrl(0);
m_deviceIoControlService->DBDB__sprayAirCompressorPowerCtrl(1);
#endif
context.is_disinfection_take_break = false;
}

4
src/service/if_devoce_io_contrl_service.hpp

@ -66,6 +66,7 @@ class IF_DeviceIoContrlService {
virtual int32_t H2O2Sensor_readSaturation(int32_t sensorid) = 0;
virtual bool H2O2Sensor_readSensorState(int32_t sensorid) = 0;
virtual bool H2O2Sensor_updateFakeVal(int32_t sensorid, bool enable, int32_t h2o2, int32_t humid, int32_t temp, int32_t saturation) { return true; }
// 喷液泵
virtual void sprayLiquidPump_open(int gpm) = 0;
@ -121,6 +122,7 @@ class IF_DeviceIoContrlService {
virtual void replenishingFluidsPump_close() = 0;
virtual void replenishingFluidsPump_open_for_test(int speed) = 0;
virtual void replenishingFluidsPump_close_for_test() = 0;
virtual int replenishingFluidsPump_getRPM() = 0;
/******************************************************************************
* *
@ -133,8 +135,6 @@ class IF_DeviceIoContrlService {
******************************************************************************/
virtual int getDisinfectantVolume_g() = 0; // g
/*******************************************************************************
* *
*******************************************************************************/

2
src/version.hpp

@ -1,2 +1,2 @@
#pragma once
#define VERSION "6.6"
#define VERSION "7.0"
Loading…
Cancel
Save