Browse Source

丰富打印日志

master
zhaohe 2 years ago
parent
commit
f0718de934
  1. 20
      src/main_control_service.cpp
  2. 36
      src/service/device_io_control_service.cpp
  3. 43
      src/service/device_io_control_service.hpp
  4. 78
      src/service/disinfection_ctl_service.cpp

20
src/main_control_service.cpp

@ -127,19 +127,19 @@ void MainControlService::initialize() {
json MainControlService::createSensorDataJson() {
json report;
report["airCompressor"]["io1"] = m_deviceIoControlService->getAirCompressor_io1();
report["airCompressor"]["io2"] = m_deviceIoControlService->getAirCompressor_io2();
report["airCompressor"]["currentVal"] = m_deviceIoControlService->getAirCompressor_currentValue();
report["airCompressor"]["io1"] = m_deviceIoControlService->airCompressor_getio1();
report["airCompressor"]["io2"] = m_deviceIoControlService->airCompressor_getio2();
report["airCompressor"]["currentVal"] = m_deviceIoControlService->airCompressor_getcurrentValue();
report["airBlower"]["io1"] = m_deviceIoControlService->getAirBlower_io1();
report["airBlower"]["io2"] = m_deviceIoControlService->getAirBlower_io2();
report["airBlower"]["currentVal"] = m_deviceIoControlService->getAirBlower_currentValue();
report["airBlower"]["io1"] = m_deviceIoControlService->airBlower_getio1();
report["airBlower"]["io2"] = m_deviceIoControlService->airBlower_getio2();
report["airBlower"]["currentVal"] = m_deviceIoControlService->airBlower_getcurrentValue();
report["heatingStrip"]["io1"] = m_deviceIoControlService->getHeatingStrip_io1();
report["heatingStrip"]["io2"] = m_deviceIoControlService->getHeatingStrip_io2();
report["heatingStrip"]["currentVal"] = m_deviceIoControlService->getHeatingStrip_currentValue();
report["heatingStrip"]["io1"] = m_deviceIoControlService->heatingStrip_getio1();
report["heatingStrip"]["io2"] = m_deviceIoControlService->heatingStrip_getio2();
report["heatingStrip"]["currentVal"] = m_deviceIoControlService->heatingStrip_getcurrentValue();
report["sprinklerPump"] = m_deviceIoControlService->getSprinkler_PumpRPM();
report["sprinklerPump"] = m_deviceIoControlService->sprayLiquidPump_getRPM();
report["chargingPump"] = m_deviceIoControlService->getChargingPump_PumpRPM();
report["waterImmersionSensor1"] = m_deviceIoControlService->getWaterImmersionSensor1();

36
src/service/device_io_control_service.cpp

@ -70,8 +70,6 @@ void DeviceIoControlService::startScan() {
logger->info("h2o2_vapor_pressure :{}", m_hpp272_data_1.h2o2_vapor_pressure);
logger->info("water_vapor_saturation_pressure_h2o_h2o2:{}", m_hpp272_data_1.water_vapor_saturation_pressure_h2o_h2o2);
logger->info("");
}
if (i % 300 == 0) {
@ -103,15 +101,18 @@ void DeviceIoControlService::airCompressor_setState(bool val) {
}
}
int DeviceIoControlService::getAirCompressor_io1() { return m_zcanHost->read_writeio_state_cache(1); }
int DeviceIoControlService::getAirCompressor_io2() { return m_zcanHost->read_writeio_state_cache(2); }
int DeviceIoControlService::getAirCompressor_currentValue() { return m_adc_0 * 0.00167 - 1.25; }
int DeviceIoControlService::airCompressor_getio1() { return m_zcanHost->read_writeio_state_cache(1); }
int DeviceIoControlService::airCompressor_getio2() { return m_zcanHost->read_writeio_state_cache(2); }
int DeviceIoControlService::airCompressor_getcurrentValue() { return m_adc_0 * 0.00167 - 1.25; }
int DeviceIoControlService::airCompressor_getstate() { return m_zcanHost->read_writeio_state_cache(1) && m_zcanHost->read_writeio_state_cache(2); }
int DeviceIoControlService::airBlower_getio1() { return m_zcanHost->read_writeio_state_cache(3); }
int DeviceIoControlService::airBlower_getio2() { return m_zcanHost->read_writeio_state_cache(4); }
int DeviceIoControlService::airBlower_getstate() { return m_zcanHost->read_writeio_state_cache(3) && m_zcanHost->read_writeio_state_cache(4); }
int DeviceIoControlService::getAirBlower_io1() { return m_zcanHost->read_writeio_state_cache(3); }
int DeviceIoControlService::getAirBlower_io2() { return m_zcanHost->read_writeio_state_cache(4); }
int DeviceIoControlService::getAirBlower_currentValue() { return m_adc_1 * 0.00167 - 1.25; }
int DeviceIoControlService::AirBlower_setState(bool val) {
logger->info("AirBlower_setState:{}", val);
int DeviceIoControlService::airBlower_getcurrentValue() { return m_adc_1 * 0.00167 - 1.25; }
int DeviceIoControlService::airBlower_setState(bool val) {
logger->info("airBlower_setState:{}", val);
if (val) {
m_zcanHost->writeio(2, 1);
usleep(500 * 100);
@ -125,9 +126,10 @@ int DeviceIoControlService::AirBlower_setState(bool val) {
}
// heatingStrip
int DeviceIoControlService::getHeatingStrip_io1() { return m_zcanHost->read_writeio_state_cache(5); }
int DeviceIoControlService::getHeatingStrip_io2() { return m_zcanHost->read_writeio_state_cache(6); }
int DeviceIoControlService::getHeatingStrip_currentValue() { return m_adc_2 * 0.00336 - 2.5; }
int DeviceIoControlService::heatingStrip_getio1() { return m_zcanHost->read_writeio_state_cache(5); }
int DeviceIoControlService::heatingStrip_getio2() { return m_zcanHost->read_writeio_state_cache(6); }
int DeviceIoControlService::heatingStrip_getstate() { return m_zcanHost->read_writeio_state_cache(5) && m_zcanHost->read_writeio_state_cache(6); }
int DeviceIoControlService::heatingStrip_getcurrentValue() { return m_adc_2 * 0.00336 - 2.5; }
void DeviceIoControlService::heartingPlate_setPower(bool val) {
logger->info("heartingPlate_setPower:{}", val);
if (val) {
@ -141,7 +143,7 @@ void DeviceIoControlService::heartingPlate_setPower(bool val) {
}
}
int DeviceIoControlService::getSprinkler_PumpRPM() { return m_zcanHost->pumpctrl_c1004_get_speed_cache(2); }
int DeviceIoControlService::sprayLiquidPump_getRPM() { return m_zcanHost->pumpctrl_c1004_get_speed_cache(2); }
int DeviceIoControlService::getChargingPump_PumpRPM() { return m_zcanHost->pumpctrl_c1004_get_speed_cache(1); }
void DeviceIoControlService::drainingPump_open() {
@ -170,6 +172,9 @@ void DeviceIoControlService::sprayLiquidPump_close() {
logger->info("sprayLiquidPump_close");
m_zcanHost->pumpctrl_c1004(2, 100, 0, 1, 15);
}
int DeviceIoControlService::sprayLiquidPump_getState() { //
return (sprayLiquidPump_getRPM() != 0);
}
int DeviceIoControlService::getDisinfectantVolume_g() {
// kpa;
@ -177,9 +182,12 @@ int DeviceIoControlService::getDisinfectantVolume_g() {
int g = 2.11 * kpa * 1000;
if (g < 450) { /*零点*/
return 0;
} else {
g -= 450;
}
return g;
}
int DeviceIoControlService::getPressureSensorData(int index) { return m_pressure_sensor_data[index].value; }
int DeviceIoControlService::getWaterImmersionSensor1() { return m_waterImmersionSensor1 ? 1 : 0; }
int DeviceIoControlService::getWaterImmersionSensor2() { return m_waterImmersionSensor2 ? 1 : 0; }

43
src/service/device_io_control_service.hpp

@ -59,34 +59,37 @@ class DeviceIoControlService : public enable_shared_from_this<DeviceIoControlSer
public:
/*******************************************************************************
* *
* *
*******************************************************************************/
void airCompressor_setState(bool val);
int getAirCompressor_io1();
int getAirCompressor_io2();
int getAirCompressor_currentValue();
int heatingStrip_getio1();
int heatingStrip_getio2();
int heatingStrip_getstate();
int heatingStrip_getcurrentValue();
void heartingPlate_setPower(bool val);
/*******************************************************************************
* *
*******************************************************************************/
int getAirBlower_io1();
int getAirBlower_io2();
int getAirBlower_currentValue();
int AirBlower_setState(bool state);
int airBlower_getio1();
int airBlower_getio2();
int airBlower_getstate();
int airBlower_getcurrentValue();
int airBlower_setState(bool state);
// heatingStrip
/*******************************************************************************
* *
* *
*******************************************************************************/
int getHeatingStrip_io1();
int getHeatingStrip_io2();
int getHeatingStrip_currentValue();
void heartingPlate_setPower(bool val);
void airCompressor_setState(bool val);
int airCompressor_getio1();
int airCompressor_getio2();
int airCompressor_getstate();
int airCompressor_getcurrentValue();
// heatingStrip
/*******************************************************************************
* *
*******************************************************************************/
int getSprinkler_PumpRPM();
int getChargingPump_PumpRPM();
// 排液泵
void drainingPump_open();
@ -97,13 +100,17 @@ class DeviceIoControlService : public enable_shared_from_this<DeviceIoControlSer
// 喷液泵
void sprayLiquidPump_open();
void sprayLiquidPump_close();
/*******************************************************************************
int sprayLiquidPump_getState();
int sprayLiquidPump_getRPM();
/******************************************************************************
* *
*******************************************************************************/
******************************************************************************/
int getWaterImmersionSensor1();
int getWaterImmersionSensor2();
int getDisinfectantVolume_g(); // g
int getPressureSensorData(int index);
typedef struct {
int h2o2; // ppm

78
src/service/disinfection_ctl_service.cpp

@ -44,7 +44,7 @@ void DisinfectionCtrlService::initialize() {
m_deviceIoControlService->sprayLiquidPump_close();
m_deviceIoControlService->heartingPlate_setPower(false);
m_deviceIoControlService->AirBlower_setState(false);
m_deviceIoControlService->airBlower_setState(false);
m_deviceIoControlService->airCompressor_setState(false);
}
@ -138,8 +138,27 @@ void DisinfectionCtrlService::initContext(DisinfectionContext& context, int logl
m_zcanHost->warning_light_ctrl_c1002(1, 0, 0, 1, 0);
m_deviceIoControlService->heartingPlate_setPower(true);
context.csvlogger = m_disinfectionLogsManager->createNewLogger(context.m_disinfectionID);
// zsteady_clock().elapsedTimeS(m_context.m_starttp), //
// 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, //
// m_context.dvalue, m_context.m_nowLoglevel, (int)m_context.m_targetLoglevel, //
// ds->heatingStrip_getstate(), ds->airBlower_getstate(), ds->airCompressor_getstate(), ds->sprayLiquidPump_getRPM(), //
// ds->getPressureSensorData(1), ds->getPressureSensorData(2), ds->getPressureSensorData(3), ds->getPressureSensorData(4), //
// m_deviceIoControlService->getDisinfectantVolume_g(), //
// m_context.m_remaintime
context.csvlogger->write(
"time,h2o21,temp1,humi1,saturation1,h2o22,temp2,humi2,saturation2,h2o23,temp3,humi3,saturation3,dvalue,nowlog,targetlog,remaintime\n");
"time," //
"h2o21,temp1,humi1,saturation1," //
"h2o22,temp2,humi2,saturation2," //
"h2o23,temp3,humi3,saturation3," //
"dvalue,loglevel,targetloglevel," //
"heating,blower,compressor,pump," //
"pressure1,pressure2,pressure3,pressure4," //
"disinfectantVolume," //
"remaintime" //
);
}
void DisinfectionCtrlService::finishDisinfection(DisinfectionContext& context) {
context.m_remaintime = 0;
@ -152,7 +171,7 @@ void DisinfectionCtrlService::finishDisinfection(DisinfectionContext& context) {
m_deviceIoControlService->airCompressor_setState(false);
usleep(1000 * 1000);
// blower_setPower(false);
m_deviceIoControlService->AirBlower_setState(false);
m_deviceIoControlService->airBlower_setState(false);
usleep(1000 * 1000);
// heartingPlate_setPower(false);
m_deviceIoControlService->heartingPlate_setPower(false);
@ -165,7 +184,7 @@ void DisinfectionCtrlService::processPreheatState(DisinfectionContext& context)
if ((context.m_preheatFlag && zsteady_clock().elapsedTimeS(context.m_starttp) > PRE_HEAT_TIME) || !g_preheat) {
logger->info("preheat finished {}", context.m_disinfectionID);
// blower_setPower(true);
m_deviceIoControlService->AirBlower_setState(true);
m_deviceIoControlService->airBlower_setState(true);
usleep(1000 * 1000);
// airCompressor(true);
m_deviceIoControlService->airCompressor_setState(true);
@ -178,6 +197,7 @@ void DisinfectionCtrlService::processPreheatState(DisinfectionContext& context)
}
void DisinfectionCtrlService::dumpDisinfectionLogsToCSV(DisinfectionContext& context) {
#if 0
context.csvlogger->write(fmt::format("{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}\n",
zsteady_clock().elapsedTimeS(m_context.m_starttp), //
m_context.h2o2data.h2o2sensor_data[0].h2o2, //
@ -197,10 +217,35 @@ void DisinfectionCtrlService::dumpDisinfectionLogsToCSV(DisinfectionContext& con
m_context.m_targetLoglevel, //
m_context.m_remaintime //
));
#endif
auto* sensors = &m_context.h2o2data.h2o2sensor_data[0];
auto ds = m_deviceIoControlService;
context.csvlogger->write(
fmt::format("{}," //
"{},{},{},{}," //
"{},{},{},{}," //
"{},{},{},{}," //
"{},{},{}," //
"{},{},{},{}," //
"{},{},{},{}," //
"{}," //
"{}" //
,
zsteady_clock().elapsedTimeS(m_context.m_starttp), //
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, //
m_context.dvalue, m_context.m_nowLoglevel, (int)m_context.m_targetLoglevel, //
ds->heatingStrip_getstate(), ds->airBlower_getstate(), ds->airCompressor_getstate(), ds->sprayLiquidPump_getRPM(), //
ds->getPressureSensorData(1), ds->getPressureSensorData(2), ds->getPressureSensorData(3), ds->getPressureSensorData(4), //
m_deviceIoControlService->getDisinfectantVolume_g(), //
m_context.m_remaintime));
}
void DisinfectionCtrlService::dumpDisinfectionLogs(DisinfectionContext& context) {
logger->info("T:{},h2o21:{},t1:{},humi:{},s1:{},h2o22:{},t2:{},humi2:{},s2:{},h2o23:{},t3:{},humi3:{},s3:{},dvalue:{},nowlog:{},targetlog:{},remaintime:{}",
float h2o2_g = m_deviceIoControlService->getDisinfectantVolume_g();
#if 0
logger->info("T:{},ho1:{},t1:{},hu1:{},s1:{},ho2:{},t2:{},hu2:{},s2:{},ho3:{},t3:{},hu3:{},s3:{},dv:{},log:{},tlog:{},rt:{}",
zsteady_clock().elapsedTimeS(m_context.m_starttp), //
m_context.h2o2data.h2o2sensor_data[0].h2o2, //
m_context.h2o2data.h2o2sensor_data[0].temp, //
@ -219,6 +264,29 @@ void DisinfectionCtrlService::dumpDisinfectionLogs(DisinfectionContext& context)
m_context.m_targetLoglevel, //
m_context.m_remaintime //
);
#endif
auto* sensors = &m_context.h2o2data.h2o2sensor_data[0];
auto ds = m_deviceIoControlService;
logger->info(
"T:{}," //
"s1:({},{},{},{})," //
"s2:({},{},{},{})," //
"s3:({},{},{},{})," //
"D:{},log:({}:{})," //
"io:({},{},{},{})," //
"p:({},{},{},{})," //
"h2o2g:{}," //
"rt:{}" //
,
zsteady_clock().elapsedTimeS(m_context.m_starttp), //
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, //
m_context.dvalue, m_context.m_nowLoglevel, (int)m_context.m_targetLoglevel, //
ds->heatingStrip_getstate(), ds->airBlower_getstate(), ds->airCompressor_getstate(), ds->sprayLiquidPump_getRPM(), //
ds->getPressureSensorData(1), ds->getPressureSensorData(2), ds->getPressureSensorData(3), ds->getPressureSensorData(4), //
m_deviceIoControlService->getDisinfectantVolume_g(), //
m_context.m_remaintime);
}
void DisinfectionCtrlService::processDisinfectionState(DisinfectionContext& context) {

Loading…
Cancel
Save