Browse Source

update

master
zhaohe 1 year ago
parent
commit
5a10b8a250
  1. 2
      configs/gconfig.hpp
  2. 61
      service/disinfection_ctl_service.cpp
  3. 5
      service/disinfection_ctl_service.hpp

2
configs/gconfig.hpp

@ -21,7 +21,7 @@
marco(string /* */, pipettingRobotCanIFName, "can1") /*移液臂Can设备名称*/ \
marco(int32_t /* */, pipettingRobotCanBitrate, 500000) /*移液臂Can设备波特率*/ \
marco(float /* */, dvalueCoefficient, 1) /*数值越小,相对消毒时间越长*/ \
marco(float /* */, disinfectantWeightCorrectionFactor, 0.9) /*数值越小,相对消毒时间越长*/
marco(float /* */, disinfectantWeightCorrectionFactor, 0.9) /*数值越小,相对消毒时间越长*/ \
configTemplateDEFILE_CONFIG_SERVICE2( //
GConfig, //

61
service/disinfection_ctl_service.cpp

@ -1,4 +1,13 @@
#include "disinfection_ctl_service.hpp"
#include <cstring>
#include <iostream>
#include "configs/gconfig.hpp"
#include "configs/project_setting.hpp"
#include "iflytop/components/uart_printer/uart_printer.hpp"
#include "service/device_state_service.hpp"
using namespace iflytop;
using namespace std;
/**
@ -89,7 +98,7 @@ static bool zfeq(float a, float b, float eps = 0.01) {
}
return false;
}
float DisinfectionCtrlService::getDisinfectionDValue(float ppm) { //
float DisinfectionCtrlService::getDisinfectionDValue(float ppm) { //
return m_dvalueComputer.computeDValue(ppm);
}
float DisinfectionCtrlService::computeNowLogLevel(DisinfectionContext& context) {
@ -172,7 +181,8 @@ void DisinfectionCtrlService::initContext(DisinfectionContext& context,
m_context.m_state = kpreheat;
m_context.m_starttp = zsteady_clock().now();
m_context.m_starttp = zsteady_clock().now();
m_context.m_starttp_str = getTime();
m_zcanHost->warning_light_ctrl_c1002(1, 0, 0, 1, 0);
m_deviceIoControlService->heartingPlate_setPower(true);
@ -488,13 +498,50 @@ void DisinfectionCtrlService::startDisinfection(int loglevel, //
break;
}
}
printfDisinfectionContextResult();
//
finishDisinfection(m_context);
}));
//
}
void DisinfectionCtrlService::printfDisinfectionContextResult() {
/**
* @brief
* = = = = = = = = = = = = = = =
*
* XXXXX
* 2021-03-10 10:00:00
* 2021-03-10 10:00:00
* 01:59
* LOG 6
* LOG 6
* = = = = = = = = = = = = = = =
*
*/
auto dio = m_deviceIoControlService;
auto ds = GET_SERVICE(DeviceStateService);
m_context.m_endtp_str = getTime();
int totaltime = zsteady_clock().elapsedTimeS(m_context.m_starttp) / 60;
dio->printerPrintf(fmt::format("= = = = = = = = = = = = = = = \n"));
dio->printerPrintf(fmt::format(" 全思美特\n"));
dio->printerPrintf(fmt::format("操作人 {}\n", ds->getLoginUid()));
dio->printerPrintf(fmt::format("开始时间 {}\n", m_context.m_starttp_str));
dio->printerPrintf(fmt::format("结束时间 {}\n", m_context.m_endtp_str));
dio->printerPrintf(fmt::format("总耗时 {}:{}\n", totaltime / 60, totaltime % 60));
dio->printerPrintf(fmt::format("目标LOG {}\n", (int)m_context.m_targetLoglevel));
dio->printerPrintf(fmt::format("实际LOG {}\n", (int)m_context.m_nowLoglevel));
dio->printerPrintf(fmt::format("= = = = = = = = = = = = = = = \n"));
dio->printerPrintf(fmt::format("\n"));
dio->printerPrintf(fmt::format("\n"));
dio->printerPrintf(fmt::format("\n"));
// getTime
// dio->printerPrintf(fmt::format("开始时间 {}\n", zsteady_clock().formatTime(m_context.m_starttp)));
}
int DisinfectionCtrlService::getDisinfectionWorkState() { return m_context.m_state; }
void DisinfectionCtrlService::stopDisinfection() {
@ -562,6 +609,14 @@ void DisinfectionCtrlService::startReplenishingFluids(int stopatg) {
m_disinfectionThread = nullptr;
}
int32_t nowvolume = m_deviceIoControlService->getDisinfectantVolume_g();
int maxg = DISINFECTANT_BUCKET_CAPACITY;
if (stopatg > maxg) {
logger->warn("start Replenishing fail, stopatg {} > maxg {}", stopatg, maxg);
stopatg = maxg;
}
if (nowvolume > stopatg) {
logger->warn("start Replenishing fail, nowvolume {} > stopatg {}", nowvolume, stopatg);
return;

5
service/disinfection_ctl_service.hpp

@ -70,9 +70,12 @@ class DisinfectionCtrlService : public enable_shared_from_this<DisinfectionCtrlS
string m_disinfectionID;
zsteady_tp m_starttp;
string m_starttp_str;
zsteady_tp m_lastComputeDvalueTp;
zsteady_tp m_lastlogTp;
string m_endtp_str;
DeviceIoControlService::all_h2o2sensor_data_t h2o2data;
// bool m_preheatFlag = false;
@ -181,6 +184,8 @@ class DisinfectionCtrlService : public enable_shared_from_this<DisinfectionCtrlS
void dumpDisinfectionLogsToCSV(DisinfectionContext& context);
void finishDisinfection(DisinfectionContext& context);
void printfDisinfectionContextResult();
void disinfectionLoop(bool& breakflag);
};
} // namespace iflytop
Loading…
Cancel
Save