Browse Source

添加重量修正系数配置

master
zhaohe 1 year ago
parent
commit
27b02ebd1c
  1. 15
      src/configs/gconfig.hpp
  2. 12
      src/service/device_io_control_service.cpp
  3. 4
      src/service/device_io_control_service.hpp

15
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, //

12
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() {

4
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<mutex> lock(lock_);
@ -48,7 +49,8 @@ class DeviceIoControlService : public enable_shared_from_this<DeviceIoControlSer
unique_ptr<Thread> m_workThread;
shared_ptr<ZCanHost> m_zcanHost;
unique_ptr<Thread> m_PressureSensorDataSampleThread;
unique_ptr<Thread> m_PressureSensorDataSampleThread;
shared_ptr<GConfig> m_config;
//
// std::mutex lock_;

Loading…
Cancel
Save