diff --git a/config/config.json b/config/config.json index aa1d4a9..81d0a67 100644 --- a/config/config.json +++ b/config/config.json @@ -1,8 +1,8 @@ { "deviceId": "", - "disinfectantBucketCapacity_g": 2500, + "disinfectantBucketCapacity_g": 2300, "disinfectantWeightCorrectionFactor": 0.8999999761581421, - "dvalueCoefficient": 1.0, + "dvalueCoefficient": 2.0, "iflytopSubDeviceCanBitrate": 500000, "iflytopSubDeviceCanIFName": "can0", "pipettingRobotCanBitrate": 500000, diff --git a/src/configs/gconfig.hpp b/src/configs/gconfig.hpp index 22bce02..acc25e4 100644 --- a/src/configs/gconfig.hpp +++ b/src/configs/gconfig.hpp @@ -21,9 +21,8 @@ marco(string /* */, pipettingRobotCanIFName, "can1") /*移液臂Can设备名称*/ \ marco(int32_t /* */, pipettingRobotCanBitrate, 500000) /*移液臂Can设备波特率*/ \ marco(int32_t /* */, disinfectantBucketCapacity_g, 2200) /*消毒桶容积*/ \ - marco(float /* */, dvalueCoefficient, 1) /*数值越小,相对消毒时间越长*/ \ - marco(float /* */, disinfectantWeightPa, 1) /*数值越小,相对消毒时间越长*/ \ - marco(float /* */, disinfectantWeightCorrectionFactor, 0.9) /*数值越小,相对消毒时间越长*/ + 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 8ab3242..e17c2ab 100644 --- a/src/service/device_io_control_service.cpp +++ b/src/service/device_io_control_service.cpp @@ -25,12 +25,15 @@ void DeviceIoControlService::initialize() { } void DeviceIoControlService::updateDisinfectantVolumeSample(float _pa) { - float pa = _pa - 100; // 100当容器中没有液体时的压强 - if (pa < 0) pa = 0; - float g = m_volumeConvertor.pressurePa2VolumeG(_pa) * m_config->get_disinfectantWeightCorrectionFactor(); + float pa = _pa - 100; + if (pa < 0) { + pa = 0; + } + float g = m_volumeConvertor.pressurePa2VolumeG(pa) * m_config->get_disinfectantWeightCorrectionFactor(); m_disinfectantVolumeSample_g = m_DisinfectantWeightFilter.filter(g); + if (m_disinfectantVolumeSample_g < 20) m_disinfectantVolumeSample_g = 0; // logger->info("pa:{} _pa:{}", _pa, _pa,g); - logger->info("g:{} pa:{} _pa:{}", g, pa, _pa); + // logger->info("g:{}_pa:{}", g,_pa); } void DeviceIoControlService::startScan() { diff --git a/src/utils/volume_convertor.cpp b/src/utils/volume_convertor.cpp index 8b0fb5c..e59cc5f 100644 --- a/src/utils/volume_convertor.cpp +++ b/src/utils/volume_convertor.cpp @@ -42,11 +42,8 @@ float VolumeConvertor::computeConeVolume(float rb, float ru, float h, float nowh return v; } -float VolumeConvertor::pressurePa2VolumeG(float _pa) { - float pa = _pa - 90; - if (pa < 0) { - pa = 0; - } +float VolumeConvertor::pressurePa2VolumeG(float pa) { + // 计算液面高度 float h_dm = pa2high(pa); @@ -66,13 +63,13 @@ float VolumeConvertor::pressurePa2VolumeG(float _pa) { h3_dm = h3_dm > container_h3 ? container_h3 : h3_dm; h4_dm = h4_dm > container_h4 ? container_h4 : h4_dm; -// printf("h_dm:%f h1_dm:%f, h2_dm:%f, h3_dm:%f, h4_dm:%f\n",h_dm, h1_dm, h2_dm, h3_dm, h4_dm); + // printf("h_dm:%f h1_dm:%f, h2_dm:%f, h3_dm:%f, h4_dm:%f\n",h_dm, h1_dm, h2_dm, h3_dm, h4_dm); float v1 = computeConeVolume(container_rb1, container_ru1, container_h1, h1_dm); float v2 = computeConeVolume(container_rb2, container_ru2, container_h2, h2_dm); float v3 = computeConeVolume(container_rb3, container_ru3, container_h3, h3_dm); float v4 = computeConeVolume(container_rb4, container_ru4, container_h4, h4_dm); -// printf("v1:%f, v2:%f, v3:%f, v4:%f\n", v1, v2, v3, v4); + // printf("v1:%f, v2:%f, v3:%f, v4:%f\n", v1, v2, v3, v4); // h4_dm * (double)(2.1124069002737764) float V_L = v1 + v2 + v3 + v4; // 0.001m^3