Browse Source

重构部分逻辑

master
zhaohe 2 years ago
parent
commit
7eaf851708
  1. 20
      README.md
  2. 159
      src/main_control_service.cpp
  3. 3
      src/main_control_service.hpp

20
README.md

@ -49,6 +49,26 @@
"newpasswd":"1234"
}
{
"command":"addFormula",
"messageId":"123",
"formula_id":"1234abcd",
"stoped_gs":"100",
"continued_gs":"110",
"stoped_satur":"200",
"continued_satur":"300",
"stoped_humi":"100",
"continued_humi":"102",
"injection_pump_speed":"300"
}
{
"command":"getAllFormula",
"messageId":"123"
}
```

159
src/main_control_service.cpp

@ -324,25 +324,7 @@ void MainControlService::processFrontEndMessage_Disinfection(weak_ptr<WebSocket>
* *
*******************************************************************************/
string cmdstr = cmd["command"];
if (cmdstr == "startFormula") {
int id = jsonGet<int>(cmd["id"]);
auto formul = m_dbService->getFormula(id);
if (!formul) {
logger->error("formula id {} not exist", id);
receipt["ackcode"] = err::error_code_get_get_ecode(err::kce, err::kdb_operate_error);
receipt["ackcodeInfo"] = err::error_code_get_desc(err::kce, err::kdb_operate_error, "");
return;
}
m_disinfectionCtrlService->startDisinfection(atoi(formul->loglevel.c_str()), //
atoi(formul->injection_pump_speed.c_str()), //
atoi(formul->stoped_gs.c_str()), //
atoi(formul->continued_gs.c_str()), //
atoi(formul->stoped_satur.c_str()), //
atoi(formul->continued_satur.c_str()), //
atoi(formul->stoped_humi.c_str()), //
atoi(formul->continued_humi.c_str())); //
return;
}
if (cmdstr == "startDisinfection") {
m_disinfectionCtrlService->startDisinfection(jsonGet<int>(cmd["loglevel"]), //
m_dbService->getSettingVal("injection_pump_speed"), //
@ -462,67 +444,30 @@ void MainControlService::processFrontEndMessage_setting(weak_ptr<WebSocket> webS
}
}
void MainControlService::processFrontEndMessage(weak_ptr<WebSocket> webSocket, json& cmd, json& receipt) {
string cmdstr = cmd["command"];
processFrontEndMessage_userOperate(webSocket, cmd, receipt);
processFrontEndMessage_systemOperate(webSocket, cmd, receipt);
processFrontEndMessage_Disinfection(webSocket, cmd, receipt);
processFrontEndMessage_test(webSocket, cmd, receipt);
processFrontEndMessage_setting(webSocket, cmd, receipt);
/*******************************************************************************
* getState *
*******************************************************************************/
if (cmdstr == "getState") {
receipt["state"]["isLogin"] = m_deviceStateService->isLogin();
receipt["state"]["loginuser"] = m_deviceStateService->getLoginUid();
receipt["state"]["permissionLevel"] = m_deviceStateService->getLoginPermissionLevel();
// receipt["state"]["workState"] = m_disinfectionCtrlService->isDisinfectionRunning();
/*******************************************************************************
* disinfectionState *
*******************************************************************************/
receipt["state"]["replenishingFluidsWorkState"] = m_disinfectionCtrlService->getReplenishingFluidsWorkState();
receipt["state"]["drainingWorkState"] = m_disinfectionCtrlService->getDrainingWorkState();
/**
* @brief
*/
receipt["state"]["preHeat"] = m_disinfectionCtrlService->isPreheatState();
receipt["state"]["preHeatRaminTimeS"] = m_disinfectionCtrlService->getPreHeatRaminTimeS(); // 预热剩余时间
receipt["state"]["estimatedRemainingTimeS"] = m_disinfectionCtrlService->getEstimatedRemainingTimeS();
receipt["state"]["disinfection_id"] = m_disinfectionCtrlService->getDisinfectionID();
// 消毒状态
receipt["state"]["disinfectionWorkState"] = m_disinfectionCtrlService->getDisinfectionWorkState();
receipt["state"]["disinfectionState"]["id"] = m_disinfectionCtrlService->getDisinfectionID();
receipt["state"]["disinfectionState"]["estimatedRemainingTimeS"] = m_disinfectionCtrlService->getEstimatedRemainingTimeS();
receipt["state"]["disinfectionState"]["workState"] = m_disinfectionCtrlService->getDisinfectionWorkState();
receipt["state"]["disinfectionState"]["preHeat"] = m_disinfectionCtrlService->isPreheatState();
receipt["state"]["disinfectionState"]["preHeatRaminTimeS"] = m_disinfectionCtrlService->getPreHeatRaminTimeS(); // 预热剩余时间
/*******************************************************************************
* sensor *
*******************************************************************************/
receipt["state"]["sensor_data"] = createSensorDataJson();
/*******************************************************************************
* disinfectionConfig *
*******************************************************************************/
receipt["disinfectionConfig"]["loglevel"] = m_disinfectionCtrlService->m_context.m_targetLoglevel;
receipt["disinfectionConfig"]["injection_pump_speed"] = m_disinfectionCtrlService->m_context.injection_pump_speed;
receipt["disinfectionConfig"]["stoped_gs"] = m_disinfectionCtrlService->m_context.stoped_gs;
receipt["disinfectionConfig"]["continued_gs"] = m_disinfectionCtrlService->m_context.continued_gs;
receipt["disinfectionConfig"]["stoped_satur"] = m_disinfectionCtrlService->m_context.stoped_satur;
receipt["disinfectionConfig"]["continued_satur"] = m_disinfectionCtrlService->m_context.continued_satur;
receipt["disinfectionConfig"]["stoped_humi"] = m_disinfectionCtrlService->m_context.stoped_humi;
receipt["disinfectionConfig"]["continued_humi"] = m_disinfectionCtrlService->m_context.continued_humi;
return;
}
void MainControlService::processFrontEndMessage_processFormulaCmd(weak_ptr<WebSocket> webSocket, json& cmd, json& receipt) {
/**
* @brief
*/
string cmdstr = cmd["command"];
if (cmdstr == "startFormula") {
int id = jsonGet<int>(cmd["id"]);
auto formul = m_dbService->getFormula(id);
if (!formul) {
logger->error("formula id {} not exist", id);
receipt["ackcode"] = err::error_code_get_get_ecode(err::kce, err::kdb_operate_error);
receipt["ackcodeInfo"] = err::error_code_get_desc(err::kce, err::kdb_operate_error, "");
return;
}
m_disinfectionCtrlService->startDisinfection(atoi(formul->loglevel.c_str()), //
atoi(formul->injection_pump_speed.c_str()), //
atoi(formul->stoped_gs.c_str()), //
atoi(formul->continued_gs.c_str()), //
atoi(formul->stoped_satur.c_str()), //
atoi(formul->continued_satur.c_str()), //
atoi(formul->stoped_humi.c_str()), //
atoi(formul->continued_humi.c_str())); //
return;
}
if (cmdstr == "getAllFormula") {
receipt["formula"] = m_dbService->getAllFormulaJson();
return;
@ -588,6 +533,66 @@ void MainControlService::processFrontEndMessage(weak_ptr<WebSocket> webSocket, j
}
}
void MainControlService::processFrontEndMessage(weak_ptr<WebSocket> webSocket, json& cmd, json& receipt) {
string cmdstr = cmd["command"];
processFrontEndMessage_userOperate(webSocket, cmd, receipt);
processFrontEndMessage_systemOperate(webSocket, cmd, receipt);
processFrontEndMessage_Disinfection(webSocket, cmd, receipt);
processFrontEndMessage_test(webSocket, cmd, receipt);
processFrontEndMessage_setting(webSocket, cmd, receipt);
processFrontEndMessage_processFormulaCmd(webSocket, cmd, receipt);
/*******************************************************************************
* getState *
*******************************************************************************/
if (cmdstr == "getState") {
receipt["state"]["isLogin"] = m_deviceStateService->isLogin();
receipt["state"]["loginuser"] = m_deviceStateService->getLoginUid();
receipt["state"]["permissionLevel"] = m_deviceStateService->getLoginPermissionLevel();
// receipt["state"]["workState"] = m_disinfectionCtrlService->isDisinfectionRunning();
/*******************************************************************************
* disinfectionState *
*******************************************************************************/
receipt["state"]["replenishingFluidsWorkState"] = m_disinfectionCtrlService->getReplenishingFluidsWorkState();
receipt["state"]["drainingWorkState"] = m_disinfectionCtrlService->getDrainingWorkState();
/**
* @brief
*/
receipt["state"]["preHeat"] = m_disinfectionCtrlService->isPreheatState();
receipt["state"]["preHeatRaminTimeS"] = m_disinfectionCtrlService->getPreHeatRaminTimeS(); // 预热剩余时间
receipt["state"]["estimatedRemainingTimeS"] = m_disinfectionCtrlService->getEstimatedRemainingTimeS();
receipt["state"]["disinfection_id"] = m_disinfectionCtrlService->getDisinfectionID();
// 消毒状态
receipt["state"]["disinfectionWorkState"] = m_disinfectionCtrlService->getDisinfectionWorkState();
receipt["state"]["disinfectionState"]["id"] = m_disinfectionCtrlService->getDisinfectionID();
receipt["state"]["disinfectionState"]["estimatedRemainingTimeS"] = m_disinfectionCtrlService->getEstimatedRemainingTimeS();
receipt["state"]["disinfectionState"]["workState"] = m_disinfectionCtrlService->getDisinfectionWorkState();
receipt["state"]["disinfectionState"]["preHeat"] = m_disinfectionCtrlService->isPreheatState();
receipt["state"]["disinfectionState"]["preHeatRaminTimeS"] = m_disinfectionCtrlService->getPreHeatRaminTimeS(); // 预热剩余时间
receipt["state"]["disinfectionState"]["logval"] = m_disinfectionCtrlService->m_context.m_nowLoglevel;
/*******************************************************************************
* sensor *
*******************************************************************************/
receipt["state"]["sensor_data"] = createSensorDataJson();
/*******************************************************************************
* disinfectionConfig *
*******************************************************************************/
receipt["disinfectionConfig"]["loglevel"] = m_disinfectionCtrlService->m_context.m_targetLoglevel;
receipt["disinfectionConfig"]["injection_pump_speed"] = m_disinfectionCtrlService->m_context.injection_pump_speed;
receipt["disinfectionConfig"]["stoped_gs"] = m_disinfectionCtrlService->m_context.stoped_gs;
receipt["disinfectionConfig"]["continued_gs"] = m_disinfectionCtrlService->m_context.continued_gs;
receipt["disinfectionConfig"]["stoped_satur"] = m_disinfectionCtrlService->m_context.stoped_satur;
receipt["disinfectionConfig"]["continued_satur"] = m_disinfectionCtrlService->m_context.continued_satur;
receipt["disinfectionConfig"]["stoped_humi"] = m_disinfectionCtrlService->m_context.stoped_humi;
receipt["disinfectionConfig"]["continued_humi"] = m_disinfectionCtrlService->m_context.continued_humi;
return;
}
}
HttpResponsePtr MainControlService::hello_world( //
HttpRequestPtr request, shared_ptr<RestfulServer::Context> context, std::shared_ptr<ConnectionState>) {
return std::make_shared<HttpResponse>(200, "OK", HttpErrorCode::Ok, WebSocketHttpHeaders(), "hello_world");

3
src/main_control_service.hpp

@ -94,9 +94,10 @@ class MainControlService : public enable_shared_from_this<MainControlService> {
void processFrontEndMessage_Disinfection(weak_ptr<WebSocket> webSocket, json& cmd, json& receipt);
void processFrontEndMessage_test(weak_ptr<WebSocket> webSocket, json& cmd, json& receipt);
void processFrontEndMessage_setting(weak_ptr<WebSocket> webSocket, json& cmd, json& receipt);
void processFrontEndMessage_processFormulaCmd(weak_ptr<WebSocket> webSocket, json& cmd, json& receipt);
json createSensorDataJson();
void dosystem(string order) ;
void dosystem(string order);
};
} // namespace iflytop
Loading…
Cancel
Save