Browse Source

v3.1.2| 泄露检测增加初始压力和压差上报

try_support_dt100n
zhaohe 4 weeks ago
parent
commit
9e680df0e3
  1. 2
      appsrc/appconfig/basic/zappversion.hpp
  2. 16
      appsrc/service/app/air_leak_detect_test.cpp
  3. 7
      appsrc/service/app/air_leak_detect_test.hpp

2
appsrc/appconfig/basic/zappversion.hpp

@ -1,3 +1,3 @@
#pragma once
#define VERSION "3.1.1"
#define VERSION "3.1.2"
#define PROJECT_NAME "TRANSMIT_DM"

16
appsrc/service/app/air_leak_detect_test.cpp

@ -127,6 +127,7 @@ void AirLeakDetectTest::airLeakDetectTestThread(int inflationTimeMs) {
m_workstate = kstabilizingPressure;
for (int i = 0; i < leakTestStabilizationTimeS; ++i) {
pressurePa = readPressurePa();
thisThread.sleepForMs(1000);
logger->info(" waiting for stabilizing pressure, current pressure: {} kPa", pressurePa / 1000.0);
if (thisThread.getExitFlag()) {
@ -139,9 +140,13 @@ void AirLeakDetectTest::airLeakDetectTestThread(int inflationTimeMs) {
{
// 检漏中
logger->info("leak testing.....");
m_workstate = kleakTesting;
m_workstate = kleakTesting;
pressurePa = readPressurePa();
initialPressurePa = pressurePa;
while (!thisThread.getExitFlag()) {
pressurePa = readPressurePa();
pressurePa = readPressurePa();
diffPressurePa = pressurePa - initialPressurePa;
thisThread.sleepForMs(1000);
}
}
@ -188,12 +193,17 @@ void AirLeakDetectTest::stopStateReport(shared_ptr<MsgProcessContext> cxt) {}
json AirLeakDetectTest::getState() {
json state;
if (getWorkstate() == kidle) {
pressurePa = readPressurePa();
pressurePa = readPressurePa();
initialPressurePa = 0;
diffPressurePa = 0;
}
state["pressure"] = fmt::format("{:.2f}", pressurePa / 1000.0);
state["initialPressure"] = fmt::format("{:.2f}", initialPressurePa / 1000.0);
state["diffPressurePa"] = fmt::format("{:.2f}", diffPressurePa / 1000.0);
state["workState"] = state2str(getWorkstate());
state["workStateDisplay"] = state2chstr(getWorkstate());
return state;
}
float AirLeakDetectTest::readPressurePa() { return CalibrationInfoDao::ins()->acPressureSensorTare(m_dics->ACPostPS_readPa() / 1000.0) * 1000; }
void AirLeakDetectTest::updatePressure() { pressurePa = readPressurePa(); }

7
appsrc/service/app/air_leak_detect_test.hpp

@ -71,8 +71,10 @@ class AirLeakDetectTest : public enable_shared_from_this<AirLeakDetectTest> {
unique_ptr<Thread> m_thread;
unique_ptr<Thread> stateUpdateThread;
state_t m_workstate = kidle;
float pressurePa = 0;
state_t m_workstate = kidle;
float pressurePa = 0;
float initialPressurePa = 0;
float diffPressurePa = 0;
public:
void initialize();
@ -91,6 +93,7 @@ class AirLeakDetectTest : public enable_shared_from_this<AirLeakDetectTest> {
json getState();
float readPressurePa();
void updatePressure();
private:
void airLeakDetectTestThread(int inflationTimeMs);

Loading…
Cancel
Save