From b4196214a5feedc5d9230d5ae9541e884aff7659 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sun, 6 Jul 2025 13:05:10 +0800 Subject: [PATCH] =?UTF-8?q?v3.0.3=20|=20=E4=BC=98=E5=8C=96=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=E5=91=A8=E6=9C=9F=20=E4=BF=AE=E5=A4=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appsrc/appconfig/basic/zappversion.hpp | 2 +- appsrc/baseservice/db/setting_db_dao.cpp | 2 +- appsrc/service/app/air_leak_detect_test.cpp | 10 +++++++++- .../app/disinfection_ctrl/disinfection_ctrl_service.cpp | 10 ++++++++-- appsrc/service/app/disinfection_ctrl_service_ext.cpp | 10 ++++++++-- appsrc/service/app/drain_liquid_service.cpp | 11 +++++++++-- appsrc/service/app_core.cpp | 2 +- appsrc/service/front_end_realtime_display_content_mgr.cpp | 2 +- appsrc/service/test_page_ctrl_service.cpp | 2 +- 9 files changed, 39 insertions(+), 12 deletions(-) diff --git a/appsrc/appconfig/basic/zappversion.hpp b/appsrc/appconfig/basic/zappversion.hpp index d7a49e5..7d2c4f7 100644 --- a/appsrc/appconfig/basic/zappversion.hpp +++ b/appsrc/appconfig/basic/zappversion.hpp @@ -1,3 +1,3 @@ #pragma once -#define VERSION "3.0.2" +#define VERSION "3.0.3" #define PROJECT_NAME "TRANSMIT_DM" \ No newline at end of file diff --git a/appsrc/baseservice/db/setting_db_dao.cpp b/appsrc/baseservice/db/setting_db_dao.cpp index 3e8e773..364fa00 100644 --- a/appsrc/baseservice/db/setting_db_dao.cpp +++ b/appsrc/baseservice/db/setting_db_dao.cpp @@ -197,7 +197,7 @@ void SettingDBDao::initSettingDefaultValTable() { break; } case SettingId::kdvalue_correct_coefficient: { - setting.name_ch = "D值修正系数"; + setting.name_ch = "D值修正倍数"; setting.setValConfig("float", "1.5", "0.5", "3"); setting.setVisibleRangeConfig(true, true, false, false); break; diff --git a/appsrc/service/app/air_leak_detect_test.cpp b/appsrc/service/app/air_leak_detect_test.cpp index 33fa351..44fa470 100644 --- a/appsrc/service/app/air_leak_detect_test.cpp +++ b/appsrc/service/app/air_leak_detect_test.cpp @@ -24,7 +24,12 @@ void AirLeakDetectTest::initialize() { } catch (const std::exception& e) { logger->error("stateUpdateThread error:{}", e.what()); } - ThisThread().sleepForMs(500); + + if (m_workstate == kidle) { + ThisThread().sleepForMs(3000); + } else { + ThisThread().sleepForMs(500); + } } })); } else { @@ -59,6 +64,8 @@ void AirLeakDetectTest::start(int inflationTimeMs) { m_workstate = kidle; DS->setDeviceState(DeviceState::Idle); })); + + stateUpdateThread->wake(); } void AirLeakDetectTest::stop() { logger->info("AirLeakDetectTest stop"); @@ -66,6 +73,7 @@ void AirLeakDetectTest::stop() { m_thread->join(); m_thread = nullptr; } + stateUpdateThread->wake(); } AirLeakDetectTest::state_t AirLeakDetectTest::getWorkstate() { return m_workstate; } diff --git a/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp b/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp index 4c0434a..6776225 100644 --- a/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp +++ b/appsrc/service/app/disinfection_ctrl/disinfection_ctrl_service.cpp @@ -27,13 +27,13 @@ string DisinfectionCtrlService::getSetting(SettingId sid) { return value->second; } if (m_runType == RunType_t::kFormulaMode) { - string str = GET_SERVICE(FormulaDBDao)->getFormula(m_formulaid, sid); + string str = FORMULA_DB->getFormula(m_formulaid, sid); if (!str.empty()) { return str; } } - string str = GET_SERVICE(SettingDBDao)->getSettingValAsString(sid); + string str = SETTING_DB->getSettingValAsString(sid); if (str.empty()) { THROW_APP_EXCEPTION(err::kappe_setting_id_outof_range, fmt::format("setting id:{} not found", sid)); } @@ -245,6 +245,12 @@ void DisinfectionCtrlService::startWorkThread() { GET_SERVICE(WarningLightControler)->setworkFlag(false); DS->setDeviceState(DeviceState::Idle); })); + + // Waitting for the state machine to change from idle to init + for (size_t i = 0; i < 50; i++) { + if (sm.getState() != DisinfectionState::idle) break; + usleep(100 * 1000); + } } void DisinfectionCtrlService::stop() { diff --git a/appsrc/service/app/disinfection_ctrl_service_ext.cpp b/appsrc/service/app/disinfection_ctrl_service_ext.cpp index 637a3c7..e96e823 100644 --- a/appsrc/service/app/disinfection_ctrl_service_ext.cpp +++ b/appsrc/service/app/disinfection_ctrl_service_ext.cpp @@ -52,10 +52,16 @@ void DisinfectionCtrlServiceExt::initialize() { REG_EXTFN_VOID(stopStateReport, void()); stateUpdateThread.reset(new Thread("DisinfectionCtrlServiceExt-stateUpdateThread", [this]() { - while (!ThisThread().getExitFlag()) { + ThisThread thisThread; + + while (!thisThread.getExitFlag()) { json report = getState(); SEND_CLASS_REPORT(thisClass.className, "stateUpdate", report); - ThisThread().sleepForMs(500); + if (dcs->getState().getId() == DisinfectionState::kidle) { + thisThread.sleepForMs(5000); + } else { + thisThread.sleepForMs(900); + } } })); } diff --git a/appsrc/service/app/drain_liquid_service.cpp b/appsrc/service/app/drain_liquid_service.cpp index addea4c..d70e145 100644 --- a/appsrc/service/app/drain_liquid_service.cpp +++ b/appsrc/service/app/drain_liquid_service.cpp @@ -18,13 +18,18 @@ void DrainLiquidService::initialize() { REG_EXTFN_VOID(stopStateReport, void()); stateUpdateThread.reset(new Thread("DrainLiquidService-stateUpdateThread", [this]() { - while (!ThisThread().getExitFlag()) { + ThisThread thisThread; + while (!thisThread.getExitFlag()) { try { SEND_CLASS_REPORT(thisClass.className, "stateUpdate", getState()); } catch (const std::exception& e) { logger->error("stateUpdateThread error:{}", e.what()); } - ThisThread().sleepForMs(500); + if (m_workstate == kidle) { + thisThread.sleepForMs(3000); + } else { + thisThread.sleepForMs(500); + } } })); } else { @@ -72,6 +77,7 @@ void DrainLiquidService::start() { m_workstate = kidle; DS->setDeviceState(DeviceState::Idle); })); + stateUpdateThread->wake(); } DrainLiquidService::state_t DrainLiquidService::getWorkstate() { return m_workstate; } @@ -84,6 +90,7 @@ void DrainLiquidService::stop() { m_workstate = kidle; m_dics->AddLiquidPump_stop(); logger->info("stopDraining "); + stateUpdateThread->wake(); } void DrainLiquidService::start(shared_ptr cxt) { // diff --git a/appsrc/service/app_core.cpp b/appsrc/service/app_core.cpp index 481f235..001768f 100644 --- a/appsrc/service/app_core.cpp +++ b/appsrc/service/app_core.cpp @@ -242,7 +242,7 @@ void AppCore::initialize() { } catch (const std::exception& e) { logger->error("stateUpdateThread error:{}", e.what()); } - ThisThread().sleepForMs(1000); + ThisThread().sleepForMs(1500); } })); diff --git a/appsrc/service/front_end_realtime_display_content_mgr.cpp b/appsrc/service/front_end_realtime_display_content_mgr.cpp index acc9d44..5423af4 100644 --- a/appsrc/service/front_end_realtime_display_content_mgr.cpp +++ b/appsrc/service/front_end_realtime_display_content_mgr.cpp @@ -16,7 +16,7 @@ void FrontEndRealtimeDisplayContentMgr::initialize() { // } catch (const std::exception& e) { logger->error("stateUpdateThread error:{}", e.what()); } - ThisThread().sleepForMs(1000); + ThisThread().sleepForMs(3000); } })); } diff --git a/appsrc/service/test_page_ctrl_service.cpp b/appsrc/service/test_page_ctrl_service.cpp index 2c0b2fe..e6998d0 100644 --- a/appsrc/service/test_page_ctrl_service.cpp +++ b/appsrc/service/test_page_ctrl_service.cpp @@ -32,7 +32,7 @@ void TestPageCtrlService::initialize() { m_thread.reset(new Thread("TestPageCtrlServiceReportThread", [this]() { while (!ThisThread().getExitFlag()) { - ThisThread().sleepForMs(1000); + ThisThread().sleepForMs(3000); SEND_CLASS_REPORT(thisClass.className, "stateUpdate", readState()); } }));