|
|
@ -31,17 +31,22 @@ static T jsonGet(json j) { |
|
|
|
} |
|
|
|
|
|
|
|
void MainControlService::initialize() { |
|
|
|
GET_TO_SERVICE(m_zconfig); |
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief 构造系统中的单例服务 |
|
|
|
*/ |
|
|
|
BUILD_AND_REG_SERRVICE(DeviceStateService); |
|
|
|
GET_SERVICE(DeviceStateService)->initialize(); |
|
|
|
GET_TO_SERVICE(m_deviceStateService); |
|
|
|
|
|
|
|
BUILD_AND_REG_SERRVICE(ZCanHost); |
|
|
|
GET_SERVICE(ZCanHost)->initialize(m_zconfig->get_iflytopSubDeviceCanIFName(), m_zconfig->get_iflytopSubDeviceCanBitrate(), false); |
|
|
|
GET_TO_SERVICE(m_zcanhost); |
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Get the to service object |
|
|
|
*/ |
|
|
|
GET_TO_SERVICE(m_zconfig); |
|
|
|
GET_TO_SERVICE(m_deviceStateService); |
|
|
|
|
|
|
|
m_disinfectionCtrlService.reset(new DisinfectionCtrlService()); |
|
|
|
m_disinfectionCtrlService->initialize(); |
|
|
@ -55,14 +60,21 @@ void MainControlService::initialize() { |
|
|
|
m_iflytopwsService.reset(new IflytopFrontEndService()); |
|
|
|
m_iflytopwsService->initialize("0.0.0.0"); |
|
|
|
m_iflytopwsService->onMessage.connect([this](weak_ptr<WebSocket> webSocket, json& cmd, json& receipt) { processFrontEndMessage(webSocket, cmd, receipt); }); |
|
|
|
m_iflytopwsService->onUdpCmdMessage.connect([this](struct sockaddr_in* from, char* data, size_t len) { |
|
|
|
//
|
|
|
|
string retmsg; |
|
|
|
bool suc = m_zcanhost->execcmd(string(data, len), retmsg); |
|
|
|
string retmsgstr = fmt::format("{},{}", suc ? "suc" : "fail", retmsg); |
|
|
|
|
|
|
|
m_iflytopwsService->sendToUDP(from, retmsgstr.c_str(), retmsgstr.size()); |
|
|
|
}); |
|
|
|
m_iflytopwsService->startListen(); |
|
|
|
|
|
|
|
m_dbService.reset(new DBService()); |
|
|
|
m_dbService->initialize(); |
|
|
|
|
|
|
|
shared_ptr<ZCanReceiverHost> zcanReceiverHost = make_shared<ZCanReceiverHost>(); |
|
|
|
|
|
|
|
zcanReceiverHost->initialize(m_zconfig->get_iflytopSubDeviceCanIFName(), m_zconfig->get_iflytopSubDeviceCanBitrate(), false); |
|
|
|
// shared_ptr<ZCanReceiverHost> zcanReceiverHost = make_shared<ZCanReceiverHost>();
|
|
|
|
// zcanReceiverHost->initialize(m_zconfig->get_iflytopSubDeviceCanIFName(), m_zconfig->get_iflytopSubDeviceCanBitrate(), false);
|
|
|
|
// while (true) {
|
|
|
|
// shared_ptr<ZCanReceiverCMD> cmd = make_shared<ZCanReceiverCMD>();
|
|
|
|
// cmd->packetindex = 1;
|
|
|
@ -190,15 +202,15 @@ void MainControlService::processFrontEndMessage(weak_ptr<WebSocket> webSocket, j |
|
|
|
auto usr = m_dbService->getUser(uid); |
|
|
|
if (usr == nullptr) { |
|
|
|
logger->warn("login fail, user {} not exist", uid); |
|
|
|
receipt["ackcode"] = err::error_code_get_get_ecode(err::kcommon_error_code, err::kuser_not_exist); |
|
|
|
receipt["ackcodeInfo"] = err::error_code_get_desc(err::kcommon_error_code, err::kuser_not_exist, ""); |
|
|
|
receipt["ackcode"] = err::error_code_get_get_ecode(err::kce, err::kuser_not_exist); |
|
|
|
receipt["ackcodeInfo"] = err::error_code_get_desc(err::kce, err::kuser_not_exist, ""); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (usr->passwd != pwd) { |
|
|
|
logger->warn("login fail, user {} passwd error", uid); |
|
|
|
receipt["ackcode"] = err::error_code_get_get_ecode(err::kcommon_error_code, err::kpasswd_error); |
|
|
|
receipt["ackcodeInfo"] = err::error_code_get_desc(err::kcommon_error_code, err::kpasswd_error, ""); |
|
|
|
receipt["ackcode"] = err::error_code_get_get_ecode(err::kce, err::kpasswd_error); |
|
|
|
receipt["ackcodeInfo"] = err::error_code_get_desc(err::kce, err::kpasswd_error, ""); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
@ -293,8 +305,8 @@ void MainControlService::processFrontEndMessage(weak_ptr<WebSocket> webSocket, j |
|
|
|
int settingVal = jsonGet<int>(cmd["settingVal"]); |
|
|
|
bool suc = m_dbService->setSettingVal(settingName, settingVal); |
|
|
|
if (!suc) { |
|
|
|
receipt["ackcode"] = err::error_code_get_get_ecode(err::kcommon_error_code, err::kdb_operate_error); |
|
|
|
receipt["ackcodeInfo"] = err::error_code_get_desc(err::kcommon_error_code, err::kdb_operate_error, "setSettingVal fail"); |
|
|
|
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, "setSettingVal fail"); |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|