Browse Source

v1.2

master
zhaohe 1 year ago
parent
commit
c6e06d3d41
  1. 4
      config/config.json
  2. 5
      src/configs/gconfig.hpp
  3. 11
      src/service/device_io_control_service.cpp
  4. 11
      src/utils/volume_convertor.cpp

4
config/config.json

@ -1,8 +1,8 @@
{ {
"deviceId": "", "deviceId": "",
"disinfectantBucketCapacity_g": 2500,
"disinfectantBucketCapacity_g": 2300,
"disinfectantWeightCorrectionFactor": 0.8999999761581421, "disinfectantWeightCorrectionFactor": 0.8999999761581421,
"dvalueCoefficient": 1.0,
"dvalueCoefficient": 2.0,
"iflytopSubDeviceCanBitrate": 500000, "iflytopSubDeviceCanBitrate": 500000,
"iflytopSubDeviceCanIFName": "can0", "iflytopSubDeviceCanIFName": "can0",
"pipettingRobotCanBitrate": 500000, "pipettingRobotCanBitrate": 500000,

5
src/configs/gconfig.hpp

@ -21,9 +21,8 @@
marco(string /* */, pipettingRobotCanIFName, "can1") /*移液臂Can设备名称*/ \ marco(string /* */, pipettingRobotCanIFName, "can1") /*移液臂Can设备名称*/ \
marco(int32_t /* */, pipettingRobotCanBitrate, 500000) /*移液臂Can设备波特率*/ \ marco(int32_t /* */, pipettingRobotCanBitrate, 500000) /*移液臂Can设备波特率*/ \
marco(int32_t /* */, disinfectantBucketCapacity_g, 2200) /*消毒桶容积*/ \ 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( // configTemplateDEFILE_CONFIG_SERVICE2( //
GConfig, // GConfig, //

11
src/service/device_io_control_service.cpp

@ -25,12 +25,15 @@ void DeviceIoControlService::initialize() {
} }
void DeviceIoControlService::updateDisinfectantVolumeSample(float _pa) { 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); 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("pa:{} _pa:{}", _pa, _pa,g);
logger->info("g:{} pa:{} _pa:{}", g, pa, _pa);
// logger->info("g:{}_pa:{}", g,_pa);
} }
void DeviceIoControlService::startScan() { void DeviceIoControlService::startScan() {

11
src/utils/volume_convertor.cpp

@ -42,11 +42,8 @@ float VolumeConvertor::computeConeVolume(float rb, float ru, float h, float nowh
return v; 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); float h_dm = pa2high(pa);
@ -66,13 +63,13 @@ float VolumeConvertor::pressurePa2VolumeG(float _pa) {
h3_dm = h3_dm > container_h3 ? container_h3 : h3_dm; h3_dm = h3_dm > container_h3 ? container_h3 : h3_dm;
h4_dm = h4_dm > container_h4 ? container_h4 : h4_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 v1 = computeConeVolume(container_rb1, container_ru1, container_h1, h1_dm);
float v2 = computeConeVolume(container_rb2, container_ru2, container_h2, h2_dm); float v2 = computeConeVolume(container_rb2, container_ru2, container_h2, h2_dm);
float v3 = computeConeVolume(container_rb3, container_ru3, container_h3, h3_dm); float v3 = computeConeVolume(container_rb3, container_ru3, container_h3, h3_dm);
float v4 = computeConeVolume(container_rb4, container_ru4, container_h4, h4_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) // h4_dm * (double)(2.1124069002737764)
float V_L = v1 + v2 + v3 + v4; // 0.001m^3 float V_L = v1 + v2 + v3 + v4; // 0.001m^3

Loading…
Cancel
Save