Browse Source

VERSION 1.2.3

storage-in-realtime
zhaohe 11 months ago
parent
commit
d27b31a3ce
  1. 3
      README.md
  2. 2
      appsrc/appsetting/project_port/basic/zappversion.hpp
  3. 41
      appsrc/service/app/add_liquid_service.cpp
  4. 7
      appsrc/service/app/add_liquid_service.hpp
  5. 43
      appsrc/service/app/air_leak_detect_test.cpp
  6. 7
      appsrc/service/app/air_leak_detect_test.hpp
  7. 3
      appsrc/service/app/disinfection_ctrl_service_ext.cpp
  8. 41
      appsrc/service/app/drain_liquid_service.cpp
  9. 5
      appsrc/service/app/drain_liquid_service.hpp
  10. 36
      appsrc/service/app/pipeline_pressure_control.cpp
  11. 5
      appsrc/service/app/pipeline_pressure_control.hpp
  12. 26
      appsrc/service/app_core.cpp
  13. 8
      appsrc/service/app_core.hpp
  14. 34
      appsrc/service/device_check_point_check_service.cpp
  15. 7
      appsrc/service/hardware/disinfectant_weight_update_service.cpp
  16. 2
      appsrc/service/hardware/disinfectant_weight_update_service.hpp

3
README.md

@ -83,6 +83,9 @@ VERSION 1.2.1
VERSION 1.2.2 VERSION 1.2.2
1. 添加设备异常检测服务 1. 添加设备异常检测服务
2. 去掉Prompt概念,直接将AppEvent透传给前端 2. 去掉Prompt概念,直接将AppEvent透传给前端
VERSION 1.2.3
1. 所有应用服务添加状态主动上报接口
TODO: TODO:
1.添加用户增加用户查重检查 1.添加用户增加用户查重检查

2
appsrc/appsetting/project_port/basic/zappversion.hpp

@ -1,3 +1,3 @@
#pragma once #pragma once
#define VERSION "1.2.2"
#define VERSION "1.2.3"
#define PROJECT_NAME "TRANSMIT_DM" #define PROJECT_NAME "TRANSMIT_DM"

41
appsrc/service/app/add_liquid_service.cpp

@ -18,6 +18,8 @@ void AddLiquidService::initialize() {
REG_EXTFN_VOID(stop, void()); REG_EXTFN_VOID(stop, void());
REG_EXTFN_VOID(getState, void()); REG_EXTFN_VOID(getState, void());
REG_EXTFN_VOID(getServiceConfig, void()); REG_EXTFN_VOID(getServiceConfig, void());
REG_EXTFN_VOID(startStateReport, void());
REG_EXTFN_VOID(stopStateReport, void());
} }
void AddLiquidService::start(int stopatg) { void AddLiquidService::start(int stopatg) {
@ -30,7 +32,6 @@ void AddLiquidService::start(int stopatg) {
THROW_APP_EXCEPTION(getDeviceBusyReason(nowstate), ""); THROW_APP_EXCEPTION(getDeviceBusyReason(nowstate), "");
} }
if (zsteady_clock().gets() < SENSOR_PREHEART_TIME_S) { if (zsteady_clock().gets() < SENSOR_PREHEART_TIME_S) {
THROW_APP_EXCEPTION(err::kappe_sensor_is_pre_hearting, ""); THROW_APP_EXCEPTION(err::kappe_sensor_is_pre_hearting, "");
} }
@ -143,11 +144,6 @@ AddLiquidService::state_t AddLiquidService::getWorkstate() { return m_workstate;
void AddLiquidService::start(shared_ptr<MsgProcessContext> cxt, int stopatg) { start(stopatg); } void AddLiquidService::start(shared_ptr<MsgProcessContext> cxt, int stopatg) { start(stopatg); }
void AddLiquidService::stop(shared_ptr<MsgProcessContext> cxt) { stop(); } void AddLiquidService::stop(shared_ptr<MsgProcessContext> cxt) { stop(); }
void AddLiquidService::getState(shared_ptr<MsgProcessContext> cxt) { //
cxt->rely["workState"] = state2str(getWorkstate());
cxt->rely["workStateDisplay"] = state2chstr(getWorkstate());
cxt->rely["nowLiquid"] = m_dwus->getWeight();
}
void AddLiquidService::getServiceConfig(shared_ptr<MsgProcessContext> cxt) { void AddLiquidService::getServiceConfig(shared_ptr<MsgProcessContext> cxt) {
json cfg; json cfg;
cfg["maxLiquid"] = PORT.getDisinfectantBucketCapacity(); cfg["maxLiquid"] = PORT.getDisinfectantBucketCapacity();
@ -155,3 +151,36 @@ void AddLiquidService::getServiceConfig(shared_ptr<MsgProcessContext> cxt) {
cfg["updatePeriod"] = 300; cfg["updatePeriod"] = 300;
cxt->rely = cfg; cxt->rely = cfg;
} }
void AddLiquidService::getState(shared_ptr<MsgProcessContext> cxt) { cxt->rely = getState(); }
void AddLiquidService::startStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
stateUpdateThread.reset(new Thread("stateUpdateThread", [this]() {
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);
}
}));
}
void AddLiquidService::stopStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
}
json AddLiquidService::getState() {
json state;
state["workState"] = state2str(getWorkstate());
state["workStateDisplay"] = state2chstr(getWorkstate());
state["nowLiquid"] = m_dwus->getWeightNoExpection();
return state;
}

7
appsrc/service/app/add_liquid_service.hpp

@ -63,6 +63,8 @@ class AddLiquidService : public enable_shared_from_this<AddLiquidService> {
unique_ptr<Thread> m_thread; unique_ptr<Thread> m_thread;
recursive_mutex lock_; recursive_mutex lock_;
unique_ptr<Thread> stateUpdateThread;
public: public:
void initialize(); void initialize();
@ -70,13 +72,16 @@ class AddLiquidService : public enable_shared_from_this<AddLiquidService> {
void stop(); void stop();
state_t getWorkstate(); state_t getWorkstate();
void start(shared_ptr<MsgProcessContext> cxt,int stopatg);
void start(shared_ptr<MsgProcessContext> cxt, int stopatg);
void stop(shared_ptr<MsgProcessContext> cxt); void stop(shared_ptr<MsgProcessContext> cxt);
void getState(shared_ptr<MsgProcessContext> cxt); void getState(shared_ptr<MsgProcessContext> cxt);
void getServiceConfig(shared_ptr<MsgProcessContext> cxt); void getServiceConfig(shared_ptr<MsgProcessContext> cxt);
private: private:
void addLiquidWork(int stopatg, bool& errorflag); void addLiquidWork(int stopatg, bool& errorflag);
void startStateReport(shared_ptr<MsgProcessContext> cxt);
void stopStateReport(shared_ptr<MsgProcessContext> cxt);
json getState();
}; };
} // namespace iflytop } // namespace iflytop

43
appsrc/service/app/air_leak_detect_test.cpp

@ -17,6 +17,8 @@ void AirLeakDetectTest::initialize() {
REG_EXTFN_VOID(stop, void()); REG_EXTFN_VOID(stop, void());
REG_EXTFN_VOID(getState, void()); REG_EXTFN_VOID(getState, void());
REG_EXTFN_VOID(getServiceConfig, void()); REG_EXTFN_VOID(getServiceConfig, void());
REG_EXTFN_VOID(startStateReport, void());
REG_EXTFN_VOID(stopStateReport, void());
} }
void AirLeakDetectTest::start(int inflationTimeMs) { void AirLeakDetectTest::start(int inflationTimeMs) {
@ -101,14 +103,7 @@ void AirLeakDetectTest::start(shared_ptr<MsgProcessContext> cxt, int inflationTi
start(inflationTimeMs); start(inflationTimeMs);
} }
void AirLeakDetectTest::stop(shared_ptr<MsgProcessContext> cxt) { stop(); } void AirLeakDetectTest::stop(shared_ptr<MsgProcessContext> cxt) { stop(); }
void AirLeakDetectTest::getState(shared_ptr<MsgProcessContext> cxt) { //
if (PORT.isPipeDM()) {
cxt->rely["workState"] = state2str(getWorkstate());
cxt->rely["workStateDisplay"] = state2chstr(getWorkstate());
cxt->rely["pressure"] = pressurePa / 1000.0;
}
}
void AirLeakDetectTest::getServiceConfig(shared_ptr<MsgProcessContext> cxt) { void AirLeakDetectTest::getServiceConfig(shared_ptr<MsgProcessContext> cxt) {
if (PORT.isPipeDM()) { if (PORT.isPipeDM()) {
json cfg; json cfg;
@ -119,4 +114,38 @@ void AirLeakDetectTest::getServiceConfig(shared_ptr<MsgProcessContext> cxt) {
cfg["inflationTimeMs"] = DEFAULT_INFLATION_TIME_MS; cfg["inflationTimeMs"] = DEFAULT_INFLATION_TIME_MS;
cxt->rely = cfg; cxt->rely = cfg;
} }
}
//
void AirLeakDetectTest::getState(shared_ptr<MsgProcessContext> cxt) { cxt->rely = getState(); }
void AirLeakDetectTest::startStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
stateUpdateThread.reset(new Thread("stateUpdateThread", [this]() {
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);
}
}));
}
void AirLeakDetectTest::stopStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
}
json AirLeakDetectTest::getState() {
json state;
state["pressure"] = pressurePa / 1000.0;
state["workState"] = state2str(getWorkstate());
state["workStateDisplay"] = state2chstr(getWorkstate());
return state;
} }

7
appsrc/service/app/air_leak_detect_test.hpp

@ -65,6 +65,7 @@ class AirLeakDetectTest : public enable_shared_from_this<AirLeakDetectTest> {
shared_ptr<DeviceIoControlService> m_dics; shared_ptr<DeviceIoControlService> m_dics;
unique_ptr<Thread> m_thread; unique_ptr<Thread> m_thread;
unique_ptr<Thread> stateUpdateThread;
state_t m_workstate = kidle; state_t m_workstate = kidle;
float pressurePa = 0; float pressurePa = 0;
@ -72,7 +73,7 @@ class AirLeakDetectTest : public enable_shared_from_this<AirLeakDetectTest> {
public: public:
void initialize(); void initialize();
void start( int inflationTimeMs);
void start(int inflationTimeMs);
void stop(); void stop();
state_t getWorkstate(); state_t getWorkstate();
@ -81,6 +82,10 @@ class AirLeakDetectTest : public enable_shared_from_this<AirLeakDetectTest> {
void getState(shared_ptr<MsgProcessContext> cxt); void getState(shared_ptr<MsgProcessContext> cxt);
void getServiceConfig(shared_ptr<MsgProcessContext> cxt); void getServiceConfig(shared_ptr<MsgProcessContext> cxt);
void startStateReport(shared_ptr<MsgProcessContext> cxt);
void stopStateReport(shared_ptr<MsgProcessContext> cxt);
json getState();
private: private:
void airLeakDetectTestThread(int inflationTimeMs); void airLeakDetectTestThread(int inflationTimeMs);
}; };

3
appsrc/service/app/disinfection_ctrl_service_ext.cpp

@ -131,9 +131,6 @@ void DisinfectionCtrlServiceExt::startStateReport(shared_ptr<MsgProcessContext>
DisinfectionState state; DisinfectionState state;
json report = getState(state); json report = getState(state);
SEND_CLASS_REPORT(thisClass.className, "stateUpdate", report); SEND_CLASS_REPORT(thisClass.className, "stateUpdate", report);
if ((state) == (DisinfectionState::finished) || (state) == (DisinfectionState::idle)) {
break;
}
ThisThread().sleepForMs(900); ThisThread().sleepForMs(900);
} }
})); }));

41
appsrc/service/app/drain_liquid_service.cpp

@ -15,6 +15,8 @@ void DrainLiquidService::initialize() {
REG_EXTFN_VOID(stop, void()); REG_EXTFN_VOID(stop, void());
REG_EXTFN_VOID(getState, void()); REG_EXTFN_VOID(getState, void());
REG_EXTFN_VOID(getServiceConfig, void()); REG_EXTFN_VOID(getServiceConfig, void());
REG_EXTFN_VOID(startStateReport, void());
REG_EXTFN_VOID(stopStateReport, void());
} }
void DrainLiquidService::start() { void DrainLiquidService::start() {
@ -25,7 +27,6 @@ void DrainLiquidService::start() {
THROW_APP_EXCEPTION(getDeviceBusyReason(nowstate), ""); THROW_APP_EXCEPTION(getDeviceBusyReason(nowstate), "");
} }
if (DS->getDeviceState() != DeviceState::Idle) { if (DS->getDeviceState() != DeviceState::Idle) {
THROW_APP_EXCEPTION(err::kappe_state_is_busy, ""); THROW_APP_EXCEPTION(err::kappe_state_is_busy, "");
} }
@ -77,11 +78,6 @@ void DrainLiquidService::start(shared_ptr<MsgProcessContext> cxt) { //
start(); start();
} }
void DrainLiquidService::stop(shared_ptr<MsgProcessContext> cxt) { stop(); } void DrainLiquidService::stop(shared_ptr<MsgProcessContext> cxt) { stop(); }
void DrainLiquidService::getState(shared_ptr<MsgProcessContext> cxt) { //
cxt->rely["workState"] = state2str(getWorkstate());
cxt->rely["workStateDisplay"] = state2chstr(getWorkstate());
cxt->rely["nowLiquid"] = m_dwus->getWeight();
}
void DrainLiquidService::getServiceConfig(shared_ptr<MsgProcessContext> cxt) { void DrainLiquidService::getServiceConfig(shared_ptr<MsgProcessContext> cxt) {
json cfg; json cfg;
@ -130,3 +126,36 @@ void DrainLiquidService::workThread() {
m_dics->AddLiquidPump_stop(); m_dics->AddLiquidPump_stop();
m_dics->SprayPump_stop(); m_dics->SprayPump_stop();
} }
void DrainLiquidService::getState(shared_ptr<MsgProcessContext> cxt) { cxt->rely = getState(); }
void DrainLiquidService::startStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
stateUpdateThread.reset(new Thread("stateUpdateThread", [this]() {
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);
}
}));
}
void DrainLiquidService::stopStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
}
json DrainLiquidService::getState() {
json state;
state["workState"] = state2str(getWorkstate());
state["workStateDisplay"] = state2chstr(getWorkstate());
state["nowLiquid"] = m_dwus->getWeightNoExpection();
return state;
}

5
appsrc/service/app/drain_liquid_service.hpp

@ -55,6 +55,7 @@ class DrainLiquidService : public enable_shared_from_this<DrainLiquidService> {
state_t m_workstate = kidle; state_t m_workstate = kidle;
unique_ptr<Thread> m_thread; unique_ptr<Thread> m_thread;
recursive_mutex lock_; recursive_mutex lock_;
unique_ptr<Thread> stateUpdateThread;
public: public:
void initialize(); void initialize();
@ -70,6 +71,10 @@ class DrainLiquidService : public enable_shared_from_this<DrainLiquidService> {
private: private:
void workThread(); void workThread();
void startStateReport(shared_ptr<MsgProcessContext> cxt);
void stopStateReport(shared_ptr<MsgProcessContext> cxt);
json getState();
}; };
} // namespace iflytop } // namespace iflytop

36
appsrc/service/app/pipeline_pressure_control.cpp

@ -25,7 +25,8 @@ void PipelinePressureControl::initialize() {
REG_EXTFN(setIntensity, void(int), intensity); REG_EXTFN(setIntensity, void(int), intensity);
REG_EXTFN_VOID(getState, void(void)); REG_EXTFN_VOID(getState, void(void));
REG_EXTFN_VOID(getConfig, void(void)); REG_EXTFN_VOID(getConfig, void(void));
REG_EXTFN_VOID(startStateReport, void());
REG_EXTFN_VOID(stopStateReport, void());
m_type = PressureType::constantPressure; m_type = PressureType::constantPressure;
m_intensity = 0; m_intensity = 0;
@ -89,7 +90,34 @@ void PipelinePressureControl::setIntensity(shared_ptr<MsgProcessContext> cxt, in
m_intensity = intensity; m_intensity = intensity;
syncPressureValueState(); syncPressureValueState();
} }
void PipelinePressureControl::getState(shared_ptr<MsgProcessContext> cxt) {
cxt->rely["type"] = m_type;
cxt->rely["intensity"] = m_intensity;
void PipelinePressureControl::getState(shared_ptr<MsgProcessContext> cxt) { cxt->rely = getState(); }
void PipelinePressureControl::startStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
stateUpdateThread.reset(new Thread("stateUpdateThread", [this]() {
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);
}
}));
}
void PipelinePressureControl::stopStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
} }
json PipelinePressureControl::getState() {
json state;
state["type"] = m_type;
state["intensity"] = m_intensity;
return state;
}

5
appsrc/service/app/pipeline_pressure_control.hpp

@ -56,6 +56,7 @@ class PipelinePressureControl : public enable_shared_from_this<PipelinePressureC
shared_ptr<DeviceStateService> m_ds; shared_ptr<DeviceStateService> m_ds;
shared_ptr<DeviceIoControlService> m_dics; shared_ptr<DeviceIoControlService> m_dics;
shared_ptr<GConfig> m_gConfig; shared_ptr<GConfig> m_gConfig;
unique_ptr<Thread> stateUpdateThread;
PressureType m_type; PressureType m_type;
int m_intensity = 0; int m_intensity = 0;
@ -72,6 +73,10 @@ class PipelinePressureControl : public enable_shared_from_this<PipelinePressureC
void getState(shared_ptr<MsgProcessContext> cxt); void getState(shared_ptr<MsgProcessContext> cxt);
void getConfig(shared_ptr<MsgProcessContext> cxt); void getConfig(shared_ptr<MsgProcessContext> cxt);
void startStateReport(shared_ptr<MsgProcessContext> cxt);
void stopStateReport(shared_ptr<MsgProcessContext> cxt);
json getState();
private: private:
}; };

26
appsrc/service/app_core.cpp

@ -175,6 +175,8 @@ void AppCore::initialize() {
REG_EXTFN_VOID(getState, void(void)); REG_EXTFN_VOID(getState, void(void));
REG_EXTFN(appEventConfirm, void(string), evenid); REG_EXTFN(appEventConfirm, void(string), evenid);
REG_EXTFN_VOID(startStateReport, void(void));
REG_EXTFN_VOID(stopStateReport, void(void));
}; };
int AppCore::demofn(int a, int b) { return 0; } int AppCore::demofn(int a, int b) { return 0; }
@ -224,3 +226,27 @@ json AppCore::getState() {
} }
return ret; return ret;
} }
void AppCore::startStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
stateUpdateThread.reset(new Thread("stateUpdateThread", [this]() {
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);
}
}));
}
void AppCore::stopStateReport(shared_ptr<MsgProcessContext> cxt) {
if (stateUpdateThread) {
stateUpdateThread->join();
stateUpdateThread = nullptr;
}
}

8
appsrc/service/app_core.hpp

@ -42,8 +42,7 @@ class AppCore : public enable_shared_from_this<AppCore> {
unique_ptr<WorkQueue> wq; unique_ptr<WorkQueue> wq;
list<shared_ptr<IAppEvent>> appEventList; list<shared_ptr<IAppEvent>> appEventList;
recursive_mutex appEventListMutex; recursive_mutex appEventListMutex;
unique_ptr<Thread> stateUpdateThread;
public: public:
AppCore() {}; AppCore() {};
@ -52,10 +51,11 @@ class AppCore : public enable_shared_from_this<AppCore> {
private: private:
void getState(shared_ptr<MsgProcessContext> cxt); void getState(shared_ptr<MsgProcessContext> cxt);
void appEventConfirm(shared_ptr<MsgProcessContext> cxt, string appevenid); void appEventConfirm(shared_ptr<MsgProcessContext> cxt, string appevenid);
void startStateReport(shared_ptr<MsgProcessContext> cxt);
void stopStateReport(shared_ptr<MsgProcessContext> cxt);
json getState();
private: private:
json getState();
void dosystem(string order, bool dump); void dosystem(string order, bool dump);
void loop(); void loop();
int demofn(int a, int b); int demofn(int a, int b);

34
appsrc/service/device_check_point_check_service.cpp

@ -8,8 +8,8 @@
using namespace iflytop; using namespace iflytop;
void DeviceCheckPointCheckService::initialize() { // void DeviceCheckPointCheckService::initialize() { //
checkPoints.push_back(CheckPoint(kCheckPointCode_evaporationBinWSTrigger, "蒸发仓内液位检查", false));
checkPoints.push_back(CheckPoint(kCheckPointCode_deviceBottomWSTrigger, "硬件仓液位检测", false));
checkPoints.push_back(CheckPoint(kCheckPointCode_evaporationBinWSTrigger, "蒸发仓内液位检查", true));
checkPoints.push_back(CheckPoint(kCheckPointCode_deviceBottomWSTrigger, "硬件仓液位检测", true));
REG_TYPE(CheckPoint); REG_TYPE(CheckPoint);
REG_TYPE(vector<CheckPoint>); REG_TYPE(vector<CheckPoint>);
@ -31,24 +31,30 @@ void DeviceCheckPointCheckService::initialize() { //
// 检查各个检查点 // 检查各个检查点
for (auto& checkPoint : checkPoints) { for (auto& checkPoint : checkPoints) {
CheckPointCode_t checkPointIndex = checkPoint.index; CheckPointCode_t checkPointIndex = checkPoint.index;
if (checkPointIndex == kCheckPointCode_evaporationBinWSTrigger) {
if (GET_SERVICE(DeviceIoControlService)->WaterSensor_readEvaporationBin()) {
checkPoint.passed = true;
} else {
checkPoint.passed = false;
}
} else if (checkPointIndex == kCheckPointCode_deviceBottomWSTrigger) {
if (GET_SERVICE(DeviceIoControlService)->WaterSensor_readDeviceBottom()) {
checkPoint.passed = true;
} else {
checkPoint.passed = false;
try {
if (checkPointIndex == kCheckPointCode_evaporationBinWSTrigger) {
if (GET_SERVICE(DeviceIoControlService)->WaterSensor_readEvaporationBin()) {
checkPoint.passed = false;
} else {
checkPoint.passed = true;
}
} else if (checkPointIndex == kCheckPointCode_deviceBottomWSTrigger) {
if (GET_SERVICE(DeviceIoControlService)->WaterSensor_readDeviceBottom()) {
checkPoint.passed = false;
} else {
checkPoint.passed = true;
}
} }
} catch (const std::exception& e) {
//
// 硬件错误这里不做处理
} }
} }
bool newstate = isPassed(); bool newstate = isPassed();
if (newstate != oldstate) { if (newstate != oldstate) {
if (newstate) {
if (!newstate) {
if (DS->getDeviceState() == DeviceState::Disinfection) { if (DS->getDeviceState() == DeviceState::Disinfection) {
GET_SERVICE(DisinfectionCtrlService)->stop(); GET_SERVICE(DisinfectionCtrlService)->stop();
} else if (DS->getDeviceState() == DeviceState::AddingLiquid) { } else if (DS->getDeviceState() == DeviceState::AddingLiquid) {

7
appsrc/service/hardware/disinfectant_weight_update_service.cpp

@ -13,6 +13,13 @@ void DisinfectantWeightUpdateService::initialize() { //
})); }));
} }
} }
float DisinfectantWeightUpdateService::getWeightNoExpection() {
try {
return getWeight();
} catch (const std::exception& e) {
return -1;
}
}
float DisinfectantWeightUpdateService::getWeight() { // float DisinfectantWeightUpdateService::getWeight() { //
if (DS->isTestMode()) { if (DS->isTestMode()) {

2
appsrc/service/hardware/disinfectant_weight_update_service.hpp

@ -50,6 +50,8 @@ class DisinfectantWeightUpdateService : public enable_shared_from_this<Disinfect
void initialize(); void initialize();
float getWeight(); float getWeight();
float getWeightNoExpection();
public: public:
void updateWeightThread(); void updateWeightThread();
}; };

Loading…
Cancel
Save