diff --git a/src/configs/gconfig.hpp b/src/configs/gconfig.hpp index fa98bbe..dd111e9 100644 --- a/src/configs/gconfig.hpp +++ b/src/configs/gconfig.hpp @@ -14,13 +14,14 @@ #include "iflytop/core/components/config_template/config_template.hpp" -#define ConfigELEMENT_LIST(marco) \ - marco(string /* */, deviceId, "") /*设备ID*/ \ - marco(string /* */, iflytopSubDeviceCanIFName, "can0") /*子设备Can设备名称*/ \ - marco(int32_t /* */, iflytopSubDeviceCanBitrate, 500000) /*子设备Can设备波特率*/ \ - marco(string /* */, pipettingRobotCanIFName, "can1") /*移液臂Can设备名称*/ \ - marco(int32_t /* */, pipettingRobotCanBitrate, 500000) /*移液臂Can设备波特率*/ \ - marco(float /* */, dvalueCoefficient, 1) /*数值越小,相对消毒时间越长*/ +#define ConfigELEMENT_LIST(marco) \ + marco(string /* */, deviceId, "") /*设备ID*/ \ + marco(string /* */, iflytopSubDeviceCanIFName, "can0") /*子设备Can设备名称*/ \ + marco(int32_t /* */, iflytopSubDeviceCanBitrate, 500000) /*子设备Can设备波特率*/ \ + marco(string /* */, pipettingRobotCanIFName, "can1") /*移液臂Can设备名称*/ \ + marco(int32_t /* */, pipettingRobotCanBitrate, 500000) /*移液臂Can设备波特率*/ \ + marco(float /* */, dvalueCoefficient, 1) /*数值越小,相对消毒时间越长*/ \ + marco(float /* */, disinfectantWeightCorrectionFactor, 0.9) /*数值越小,相对消毒时间越长*/ configTemplateDEFILE_CONFIG_SERVICE2( // GConfig, // diff --git a/src/service/device_io_control_service.cpp b/src/service/device_io_control_service.cpp index 7e84b29..296517c 100644 --- a/src/service/device_io_control_service.cpp +++ b/src/service/device_io_control_service.cpp @@ -17,17 +17,19 @@ using namespace std; #define SPEED_TO_GPM(speed) (speed / 14.7) DeviceIoControlService::DeviceIoControlService() {} -void DeviceIoControlService::initialize() { GET_TO_SERVICE(m_zcanHost); } +void DeviceIoControlService::initialize() { + GET_TO_SERVICE(m_zcanHost); + GET_TO_SERVICE(m_config); +} void DeviceIoControlService::updateDisinfectantVolumeSample(float _pa) { float pa = _pa - 100; // 100当容器中没有液体时的压强 if (pa < 0) pa = 0; - float g = m_volumeConvertor.pressurePa2VolumeG(_pa); - + float g = m_volumeConvertor.pressurePa2VolumeG(_pa) * m_config->get_disinfectantWeightCorrectionFactor(); m_disinfectantVolumeSample_g = m_DisinfectantWeightFilter.filter(g); - - logger->info("{} pa {} g", _pa, m_disinfectantVolumeSample_g); + + // logger->info("{} pa {} g", _pa, m_disinfectantVolumeSample_g); } void DeviceIoControlService::startScan() { diff --git a/src/service/device_io_control_service.hpp b/src/service/device_io_control_service.hpp index 4a83ebc..373d88e 100644 --- a/src/service/device_io_control_service.hpp +++ b/src/service/device_io_control_service.hpp @@ -20,6 +20,7 @@ // #include "utils/moving_average_filter.hpp" #include "utils/volume_convertor.hpp" +#include "configs/gconfig.hpp" // lock_guard lock(lock_); @@ -48,7 +49,8 @@ class DeviceIoControlService : public enable_shared_from_this m_workThread; shared_ptr m_zcanHost; - unique_ptr m_PressureSensorDataSampleThread; + unique_ptr m_PressureSensorDataSampleThread; + shared_ptr m_config; // // std::mutex lock_;