Browse Source

fix some bug

storage-in-realtime
zhaohe 1 year ago
parent
commit
7c21ab546d
  1. 53
      src/api/cmds/device_state_cmd_impl.cpp
  2. 7
      src/api/cmds/test_page_cmd_impl.cpp
  3. 1
      src/configs/gconfig.hpp
  4. 7
      src/main.cpp
  5. 33
      src/service/device_io_control_service.cpp
  6. 3
      src/service/device_io_control_service.hpp
  7. 5
      src/service/device_io_control_service_test.cpp
  8. 3
      src/service/device_io_control_service_test.hpp
  9. 11
      src/service/if_devoce_io_contrl_service.hpp

53
src/api/cmds/device_state_cmd_impl.cpp

@ -4,7 +4,26 @@ using namespace iflytop;
json DeviceStateCmdImpl::createSensorDataJson() {
json report;
report["h2o2_sensor_state_1"] = m_deviceIoControlService->H2O2Sensor_readSensorState(0);
report["h2o2_sensor_state_2"] = m_deviceIoControlService->H2O2Sensor_readSensorState(1);
report["h2o2_sensor_state_3"] = m_deviceIoControlService->H2O2Sensor_readSensorState(2);
report["h2o2_1"] = m_deviceIoControlService->H2O2Sensor_readH2O2PPM(0);
report["temp_1"] = m_deviceIoControlService->H2O2Sensor_readTemperature(0);
report["humid_1"] = m_deviceIoControlService->H2O2Sensor_readHumid(0);
report["saturation_1"] = m_deviceIoControlService->H2O2Sensor_readSaturation(0); //+1是为让曲线不重合
report["h2o2_2"] = m_deviceIoControlService->H2O2Sensor_readH2O2PPM(1);
report["temp_2"] = m_deviceIoControlService->H2O2Sensor_readTemperature(1);
report["humid_2"] = m_deviceIoControlService->H2O2Sensor_readHumid(1);
report["saturation_2"] = m_deviceIoControlService->H2O2Sensor_readSaturation(1); //+1是为让曲线不重合
report["h2o2_3"] = m_deviceIoControlService->H2O2Sensor_readH2O2PPM(2);
report["temp_3"] = m_deviceIoControlService->H2O2Sensor_readTemperature(2);
report["humid_3"] = m_deviceIoControlService->H2O2Sensor_readHumid(2);
report["saturation_3"] = m_deviceIoControlService->H2O2Sensor_readSaturation(2); //+1是为让曲线不重合
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
report["airCompressor"]["io1"] = m_deviceIoControlService->airCompressor_getio1();
report["airCompressor"]["io2"] = m_deviceIoControlService->airCompressor_getio2();
report["airCompressor"]["currentVal"] = m_deviceIoControlService->airCompressor_getcurrentValue();
@ -30,24 +49,6 @@ json DeviceStateCmdImpl::createSensorDataJson() {
report["EvaporationBinWaterDetection"] = m_deviceIoControlService->getEvaporationBinWaterDetection();
// Water immersion sensor
report["disinfectant_volume"] = m_deviceIoControlService->getDisinfectantVolume_g();
#endif
report["h2o2_sensor_state_1"] = m_deviceIoControlService->H2O2Sensor_readSensorState(0);
report["h2o2_sensor_state_2"] = m_deviceIoControlService->H2O2Sensor_readSensorState(1);
report["h2o2_sensor_state_3"] = m_deviceIoControlService->H2O2Sensor_readSensorState(2);
report["h2o2_1"] = m_deviceIoControlService->H2O2Sensor_readH2O2PPM(0);
report["temp_1"] = m_deviceIoControlService->H2O2Sensor_readTemperature(0);
report["humid_1"] = m_deviceIoControlService->H2O2Sensor_readHumid(0);
report["saturation_1"] = m_deviceIoControlService->H2O2Sensor_readSaturation(0); //+1是为让曲线不重合
report["h2o2_2"] = m_deviceIoControlService->H2O2Sensor_readH2O2PPM(1);
report["temp_2"] = m_deviceIoControlService->H2O2Sensor_readTemperature(1);
report["humid_2"] = m_deviceIoControlService->H2O2Sensor_readHumid(1);
report["saturation_2"] = m_deviceIoControlService->H2O2Sensor_readSaturation(1); //+1是为让曲线不重合
report["h2o2_3"] = m_deviceIoControlService->H2O2Sensor_readH2O2PPM(2);
report["temp_3"] = m_deviceIoControlService->H2O2Sensor_readTemperature(2);
report["humid_3"] = m_deviceIoControlService->H2O2Sensor_readHumid(2);
report["saturation_3"] = m_deviceIoControlService->H2O2Sensor_readSaturation(2); //+1是为让曲线不重合
#if (defined PROJECT_TYPE_PIPE_DISINFECTION)
@ -57,19 +58,17 @@ json DeviceStateCmdImpl::createSensorDataJson() {
report["airCompressor"]["channelIndex"] = m_deviceIoControlService->airCompressor_getChannelIndex();
report["airCompressor"]["pressure"] = m_deviceIoControlService->airCompressor_getPressure();
report["pressure"][0] = m_deviceIoControlService->getPressureSensorData(1); // 液位
report["pressure"][1] = m_deviceIoControlService->getPressureSensorData(2); // 空压机压力
report["pressure"][2] = m_deviceIoControlService->getPressureSensorData(3); // 加液泵
report["pressure"][3] = m_deviceIoControlService->getPressureSensorData(4); // 喷射泵
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
#endif
#else
#endif
#if (defined PROJECT_TYPE_DRAW_BAR_BOX)
report["draw_bar_box_disinfection"]["pressure"][0] = m_deviceIoControlService->DBDB__readPressureSensor(1);
report["draw_bar_box_disinfection"]["pressure"][1] = m_deviceIoControlService->DBDB__readPressureSensor(2);
report["draw_bar_box_disinfection"]["pressure"][2] = m_deviceIoControlService->DBDB__readPressureSensor(3);
report["pressure"][0] = m_deviceIoControlService->getPressureSensorData(1);
report["pressure"][1] = m_deviceIoControlService->getPressureSensorData(2);
report["pressure"][2] = m_deviceIoControlService->getPressureSensorData(3);
report["draw_bar_box_disinfection"]["pressure"][0] = m_deviceIoControlService->getPressureSensorData(1);
report["draw_bar_box_disinfection"]["pressure"][1] = m_deviceIoControlService->getPressureSensorData(2);
report["draw_bar_box_disinfection"]["pressure"][2] = m_deviceIoControlService->getPressureSensorData(3);
report["draw_bar_box_disinfection"]["heatingStrip"]["current"] = m_deviceIoControlService->DBDB__heaterReadElectricCurrent(); // 电流
report["draw_bar_box_disinfection"]["heatingStrip"]["temperature"] = m_deviceIoControlService->DBDB__heaterReadTemperatureData(); // 温度
#endif

7
src/api/cmds/test_page_cmd_impl.cpp

@ -59,7 +59,7 @@ void TestPageCmdImpl::DBDBTestPage__sprayLiquidPump_run(json& cmd, json& receipt
void TestPageCmdImpl::DBDBTestPage__readPressureSensor(json& cmd, json& receipt) {
int index = jsonGet<int>(cmd["params"]["index"]);
int32_t pressure = m_deviceIoControlService->DBDB__readPressureSensor(index);
int32_t pressure = m_deviceIoControlService->getPressureSensorData(index);
receipt["ack"]["pressure"] = pressure;
return;
}
@ -172,11 +172,14 @@ void TestPageCmdImpl::initialize() {
void TestPageCmdImpl::TestPage_printerTest(json& cmd, json& receipt) {
logger->info("TestPage_printerTest");
m_deviceIoControlService->printerPrintf("你好中国\n");
// m_deviceIoControlService->printerPrintf("test0\n");
// m_deviceIoControlService->printerPrintf("test1\n");
// m_deviceIoControlService->printerPrintf("test2\n");
m_deviceIoControlService->printerPrintf("abcdefghijklmnopqrstuvwxyz\n");
m_deviceIoControlService->printerPrintf("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n");
m_deviceIoControlService->printerPrintf("0123456789\n");
m_deviceIoControlService->printerPrintf("+_)(*&^%$#@!~`-=[]\\{}|;':\",./<>?\n");
m_deviceIoControlService->printerPrintf("你好中国你好中国你好中国你好中国你好中国\n");
m_deviceIoControlService->printerPrintf("\n");
m_deviceIoControlService->printerPrintf("\n");
m_deviceIoControlService->printerPrintf("\n");

1
src/configs/gconfig.hpp

@ -22,6 +22,7 @@
marco(int32_t /* */, pipettingRobotCanBitrate, 500000) /*移液臂Can设备波特率*/ \
marco(float /* */, dvalueCoefficient, 2) /*数值越小,相对消毒时间越长*/ \
marco(float /* */, disinfectantWeightCorrectionFactor, 0.8500000238418579) /**/ \
marco(string /* */, printerUart, "/dev/ttyS5") /**/ \
marco(bool /* */, testMode, false) /**/
configTemplateDEFILE_CONFIG_SERVICE2( //

7
src/main.cpp

@ -49,11 +49,8 @@ int Main::main(int argc, char *argv[]) {
BUILD_AND_REG_SERRVICE(UartPrinter);
#ifdef PROJECT_TYPE_DRAW_BAR_BOX
GET_SERVICE(UartPrinter)->initialize("/dev/ttyUSB0", "9600");
#else
GET_SERVICE(UartPrinter)->initialize("/dev/ttyS5", "9600");
#endif
GET_SERVICE(UartPrinter)->initialize(GET_SERVICE(GConfig)->get_printerUart(), "9600");
/**
* @brief

33
src/service/device_io_control_service.cpp

@ -406,6 +406,22 @@ int DeviceIoControlService::sprayLiquidPump_getState() { //
return (sprayLiquidPump_getRPM() != 0);
}
int DeviceIoControlService::getPressureSensorData(int index) {
lock_guard<recursive_mutex> lock(lock_);
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
return m_pressure_sensor_data[index].value;
#elif (defined PROJECT_TYPE_DRAW_BAR_BOX)
int32_t ackcontent = 0;
int ecode = m_zcanHost->call(kcmd_dbdb_liquid_path_ctrl_board_read_pressure_sensor, index, &ackcontent);
if (ecode != 0) {
logger->error("DBDB__readPressureSensor failed {}", ecode);
return 0;
}
return ackcontent;
#endif
}
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
void DeviceIoControlService::airCompressor_setState(bool val) {
@ -505,11 +521,6 @@ int DeviceIoControlService::getDisinfectantVolume_g() {
lock_guard<recursive_mutex> lock(lock_);
return m_disinfectantVolumeSample_g;
}
int DeviceIoControlService::getPressureSensorData(int index) {
lock_guard<recursive_mutex> lock(lock_);
return m_pressure_sensor_data[index].value;
}
int DeviceIoControlService::getDeviceBottomWaterDetectionSensor() {
lock_guard<recursive_mutex> lock(lock_);
@ -614,16 +625,8 @@ float DeviceIoControlService::airCompressor_getPressureDirectKpa() {
/*******************************************************************************
* - *
*******************************************************************************/
int32_t DeviceIoControlService::DBDB__readPressureSensor(int index) {
int32_t ackcontent = 0;
int ecode = m_zcanHost->call(kcmd_dbdb_liquid_path_ctrl_board_read_pressure_sensor, index, &ackcontent);
if (ecode != 0) {
logger->error("DBDB__readPressureSensor failed {}", ecode);
return 0;
}
return ackcontent;
}
#if 0
#endif
int32_t DeviceIoControlService::DBDB__sprayAirCompressorPowerCtrl(int power) { //
return m_zcanHost->call(kcmd_dbdb_spray_air_compressor_power_ctrl, power, 1);
}

3
src/service/device_io_control_service.hpp

@ -126,6 +126,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;
public:
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
@ -186,7 +187,6 @@ class DeviceIoControlService : public IF_DeviceIoContrlService {
virtual int getEvaporationBinWaterDetection() override;
virtual int getDisinfectantVolume_g() override; // g
virtual int getPressureSensorData(int index) override;
virtual void warningLightCtrl(int r, int g, int b, int w) override;
@ -211,7 +211,6 @@ class DeviceIoControlService : public IF_DeviceIoContrlService {
* - *
*******************************************************************************/
virtual int32_t DBDB__readPressureSensor(int index) override;
virtual int32_t DBDB__sprayAirCompressorPowerCtrl(int index) override;
virtual int32_t DBDB__airTightnessTestAirCompressorPowerCtrl(int index) override;

5
src/service/device_io_control_service_test.cpp

@ -100,6 +100,9 @@ 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
/*******************************************************************************
* *
*******************************************************************************/
@ -194,7 +197,6 @@ void DeviceIoControlServiceTest::selfTest_setEvaporationBinWaterDetection(int va
}
int DeviceIoControlServiceTest::getDisinfectantVolume_g() { return 123; } // g
int DeviceIoControlServiceTest::getPressureSensorData(int index) { return 456; } // g
void DeviceIoControlServiceTest::warningLightCtrl(int r, int g, int b, int w) { logger->info("warningLightCtrl r:{} g:{} b:{} w:{}", r, g, b, w); }
#endif
@ -261,7 +263,6 @@ int32_t DeviceIoControlServiceTest::AirProportionalValve_isBusy(int32_t* isbusy)
* - *
*******************************************************************************/
int32_t DeviceIoControlServiceTest::DBDB__readPressureSensor(int index) { return index; }
int32_t DeviceIoControlServiceTest::DBDB__sprayAirCompressorPowerCtrl(int power) {
logger->info("DBDB__sprayAirCompressorPowerCtrl power:{}", power);
return 0;

3
src/service/device_io_control_service_test.hpp

@ -70,6 +70,7 @@ class DeviceIoControlServiceTest : 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;
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
@ -119,7 +120,6 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService {
void selfTest_setEvaporationBinWaterDetection(int val);
virtual int getDisinfectantVolume_g() override; // g
virtual int getPressureSensorData(int index) override;
virtual void warningLightCtrl(int r, int g, int b, int w) override;
@ -156,7 +156,6 @@ class DeviceIoControlServiceTest : public IF_DeviceIoContrlService {
* - *
*******************************************************************************/
virtual int32_t DBDB__readPressureSensor(int index) override;
virtual int32_t DBDB__sprayAirCompressorPowerCtrl(int index) override;
virtual int32_t DBDB__airTightnessTestAirCompressorPowerCtrl(int index) override;

11
src/service/if_devoce_io_contrl_service.hpp

@ -76,7 +76,10 @@ class IF_DeviceIoContrlService {
virtual void sprayLiquidPump_open_for_test(int gpm) = 0;
virtual void sprayLiquidPump_close_for_test() = 0;
/*******************************************************************************
* *
*******************************************************************************/
virtual int getPressureSensorData(int index) = 0;
#if (defined PROJECT_TYPE_LARGE_SPACE_DISINFECTION) || (defined PROJECT_TYPE_SMALL_SPACE_DISINFECTION) || (defined PROJECT_TYPE_PIPE_DISINFECTION)
@ -130,10 +133,7 @@ class IF_DeviceIoContrlService {
******************************************************************************/
virtual int getDisinfectantVolume_g() = 0; // g
/*******************************************************************************
* *
*******************************************************************************/
virtual int getPressureSensorData(int index) = 0;
/*******************************************************************************
* *
@ -175,7 +175,6 @@ class IF_DeviceIoContrlService {
* - *
*******************************************************************************/
virtual int32_t DBDB__readPressureSensor(int index) = 0;
virtual int32_t DBDB__sprayAirCompressorPowerCtrl(int index) = 0;
virtual int32_t DBDB__airTightnessTestAirCompressorPowerCtrl(int index) = 0;

Loading…
Cancel
Save