|
@ -20,6 +20,7 @@ void DeviceIoControlService::initialize() { |
|
|
GET_TO_SERVICE(m_config); |
|
|
GET_TO_SERVICE(m_config); |
|
|
m_zcanReceiverHost = m_zcanHost->getZCanReceiverHost(); |
|
|
m_zcanReceiverHost = m_zcanHost->getZCanReceiverHost(); |
|
|
m_zcanReceiverHost->registerReportMsgListener([this](uint8_t* packet, size_t len) { processReportPacket(packet, len); }); |
|
|
m_zcanReceiverHost->registerReportMsgListener([this](uint8_t* packet, size_t len) { processReportPacket(packet, len); }); |
|
|
|
|
|
m_workQueue.reset(new WorkQueue("DeviceIoControlServiceWorkQueue")); |
|
|
|
|
|
|
|
|
startScan(); |
|
|
startScan(); |
|
|
} |
|
|
} |
|
@ -348,14 +349,21 @@ void DeviceIoControlService::processReportPacket(uint8_t* packet, size_t len) { |
|
|
* @brief 更新过氧化氢传感器数据 |
|
|
* @brief 更新过氧化氢传感器数据 |
|
|
*/ |
|
|
*/ |
|
|
if (cmdpacket->cmdid == kreport_h2o2_sensor_data) { |
|
|
if (cmdpacket->cmdid == kreport_h2o2_sensor_data) { |
|
|
report_h2o2_data_t* h2o2data = (report_h2o2_data_t*)cmdpacket->data; |
|
|
|
|
|
if (h2o2data->sensorid > 100 && h2o2data->sensorid < 200) { |
|
|
|
|
|
H2O2Sensor_updateSensorData(h2o2data->sensorid - 1, h2o2data); |
|
|
|
|
|
} else if (h2o2data->sensorid < 100) { |
|
|
|
|
|
H2O2Sensor_updateSensorData(0, h2o2data); |
|
|
|
|
|
} else { |
|
|
|
|
|
logger->error("[h2o2 sensor] id:{} error sensorid", h2o2data->sensorid); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
report_h2o2_data_t* h2o2data = (report_h2o2_data_t*)cmdpacket->data; |
|
|
|
|
|
report_h2o2_data_t h2o2datacache = *h2o2data; |
|
|
|
|
|
|
|
|
|
|
|
m_workQueue->enQueue([this, h2o2datacache]() { //
|
|
|
|
|
|
report_h2o2_data_t h2o2datac_cpy = h2o2datacache; |
|
|
|
|
|
|
|
|
|
|
|
if (h2o2datac_cpy.sensorid > 100 && h2o2datac_cpy.sensorid < 200) { |
|
|
|
|
|
H2O2Sensor_updateSensorData(h2o2datac_cpy.sensorid - 100, &h2o2datac_cpy); |
|
|
|
|
|
} else if (h2o2datac_cpy.sensorid < 100) { |
|
|
|
|
|
H2O2Sensor_updateSensorData(0, &h2o2datac_cpy); |
|
|
|
|
|
} else { |
|
|
|
|
|
logger->error("[h2o2 sensor] id:{} error sensorid", h2o2datac_cpy.sensorid); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -412,12 +420,25 @@ void DeviceIoControlService::H2O2Sensor_updateSensorData(int32_t sensorid, repor |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
h2o2_sensor_data_t* sensor_data = &m_h2o2_sensor_data[sensorid]; |
|
|
h2o2_sensor_data_t* sensor_data = &m_h2o2_sensor_data[sensorid]; |
|
|
sensor_data->h2o2 = data->h2o2 / 10; |
|
|
|
|
|
sensor_data->temp = data->temp / 10; |
|
|
|
|
|
sensor_data->humid = data->humid / 10; |
|
|
|
|
|
sensor_data->saturation = data->saturation / 10; |
|
|
|
|
|
sensor_data->sensorId = data->sensorid; |
|
|
|
|
|
sensor_data->updatetime = zsys_get_ticket(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 系统启动至少5分钟后,才开始更新数据 |
|
|
|
|
|
*/ |
|
|
|
|
|
if (zsteady_clock().gets() > 5 * 60) { |
|
|
|
|
|
sensor_data->h2o2 = data->h2o2 / 10; |
|
|
|
|
|
sensor_data->temp = data->temp / 10; |
|
|
|
|
|
sensor_data->humid = data->humid / 10; |
|
|
|
|
|
sensor_data->saturation = data->saturation / 10; |
|
|
|
|
|
sensor_data->sensorId = data->sensorid; |
|
|
|
|
|
sensor_data->updatetime = zsys_get_ticket(); |
|
|
|
|
|
} else { |
|
|
|
|
|
sensor_data->h2o2 = 0; |
|
|
|
|
|
sensor_data->temp = data->temp / 10; |
|
|
|
|
|
sensor_data->humid = 0; |
|
|
|
|
|
sensor_data->saturation = 0; |
|
|
|
|
|
sensor_data->sensorId = data->sensorid; |
|
|
|
|
|
sensor_data->updatetime = zsys_get_ticket(); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
#ifdef PROJECT_TYPE_PIPE_DISINFECTION
|
|
|
#ifdef PROJECT_TYPE_PIPE_DISINFECTION
|
|
|
|
|
|
|
|
|