diff --git a/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp b/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp index 475b207..8ba1322 100644 --- a/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp +++ b/appsrc/baseservice/front_msg_processer/front_msg_processer.cpp @@ -40,15 +40,9 @@ json FrontMsgProcesser::geFnList() { // fnlist json fn; for (auto& var : m_msgProcesserList) { - fn["className"] = var->className; - fn["fnName"] = var->fnName; - fn["params"] = var->params; - fn["retTypeInfo"] = var->retTypeInfo; - fn["paramsTypeInfo"] = var->paramsTypeInfo; - fnlist.push_back(fn); + fnlist.push_back(msgProcesserToJson(var)); } rely["fnlist"] = fnlist; - // typeInfoList json typeInfoList; for (auto& var : typeInfoMap) { @@ -58,11 +52,72 @@ json FrontMsgProcesser::geFnList() { typeInfo["enumValues"] = var.second.enumValues; typeInfoList.push_back(typeInfo); } - rely["typeInfoList"] = typeInfoList; rely["fnlist"] = fnlist; return rely; } +json FrontMsgProcesser::geTypeInfoList() { + json rely; + json typeInfoList; + for (auto& var : typeInfoMap) { + json typeInfo; + typeInfo["typeName"] = var.second.typeName; + typeInfo["isEnum"] = !var.second.enumValues.empty(); + typeInfo["enumValues"] = var.second.enumValues; + typeInfoList.push_back(typeInfo); + } + rely["typeInfoList"] = typeInfoList; + return rely; +} + +json FrontMsgProcesser::geMenuList() { + json rely; + + // for (auto& var : m_fnMenuMap) { + // json menu; + // menu["className"] = var.second.className; + // menu["classDispName"] = var.second.classDispName; + // rely.push_back(menu); + // } + + for (auto& var : m_fnMenu) { + json menu; + menu["className"] = var.className; + menu["classDispName"] = var.classDispName; + rely.push_back(menu); + } + + return rely; +} +json FrontMsgProcesser::msgProcesserToJson(shared_ptr processer) { + json j; + j["className"] = processer->className; + j["fnName"] = processer->fnName; + j["params"] = processer->params; + j["retTypeInfo"] = processer->retTypeInfo; + j["paramsTypeInfo"] = processer->paramsTypeInfo; + if (processer->fnDispName.empty()) { + j["fnDispName"] = processer->fnName; // 如果没有显示名称,则使用函数名称 + } else { + j["fnDispName"] = processer->fnDispName; + } + if (processer->paramDispNames.empty()) { + j["paramDispNames"] = processer->params; // 如果没有显示名称,则使用参数名称 + } else { + j["paramDispNames"] = processer->paramDispNames; + } + return j; +} + +json FrontMsgProcesser::geFnListByClass(string className) { + json fnlist; + for (auto& var : m_msgProcesserList) { + if (var->className == className) { + fnlist.push_back(msgProcesserToJson(var)); + } + } + return fnlist; +} void FrontMsgProcesser::processMsg(shared_ptr cxt) { logger->debug("processMsg"); @@ -82,6 +137,32 @@ void FrontMsgProcesser::processMsg(shared_ptr cxt) { cxt->receipt["fromClass"] = "FNScheduler"; cxt->receipt["fromFn"] = "geFnList"; return; + } else if (fn == "FNScheduler.geMenuList") { + cxt->receipt["ackcode"] = 0; + cxt->receipt["rely"] = geMenuList(); + cxt->receipt["fromClass"] = "FNScheduler"; + cxt->receipt["fromFn"] = "geMenuList"; + return; + } else if (fn == "FNScheduler.geTypeInfoList") { + cxt->receipt["ackcode"] = 0; + cxt->receipt["rely"] = geTypeInfoList(); + cxt->receipt["fromClass"] = "FNScheduler"; + cxt->receipt["fromFn"] = "geTypeInfoList"; + return; + } else if (fn == "FNScheduler.geFnListByClass") { + if (cxt->params.find("className") == cxt->params.end()) { + cxt->receipt["fromClass"] = "FNScheduler"; + cxt->receipt["fromFn"] = "geFnListByClass"; + cxt->receipt["ackcode"] = 0; + cxt->receipt["rely"] = json::array(); + return; + } + string className = cxt->params["className"]; + cxt->receipt["ackcode"] = 0; + cxt->receipt["rely"] = geFnListByClass(className); + cxt->receipt["fromClass"] = "FNScheduler"; + cxt->receipt["fromFn"] = "geFnListByClass"; + return; } if (m_msgProcesserMap.find(key) != m_msgProcesserMap.end()) { diff --git a/appsrc/baseservice/front_msg_processer/front_msg_processer.hpp b/appsrc/baseservice/front_msg_processer/front_msg_processer.hpp index 4b74328..dd0d568 100644 --- a/appsrc/baseservice/front_msg_processer/front_msg_processer.hpp +++ b/appsrc/baseservice/front_msg_processer/front_msg_processer.hpp @@ -62,13 +62,21 @@ class MsgProcesser { string fnDispName; }; +class FnMenu { + public: + string className; + string classDispName; +}; + class FrontMsgProcesser { THISCLASS(FrontMsgProcesser); public: private: map> m_msgProcesserMap; - list> m_msgProcesserList; + + list> m_msgProcesserList; + list m_fnMenu; map typeInfoMap; FrontMsgProcesser() {}; @@ -88,6 +96,17 @@ class FrontMsgProcesser { void processMsg(shared_ptr cxt); json geFnList(); + json geMenuList(); + json geTypeInfoList(); + json geFnListByClass(string className); + json msgProcesserToJson(shared_ptr processer); + + void addMenu(const string& className, const string& classDispName) { + FnMenu menu; + menu.className = className; + menu.classDispName = classDispName; + m_fnMenu.push_back(menu); + } public: template @@ -214,3 +233,8 @@ static inline T jsonGet(json j) { { \ FrontMsgProcesser::ins().setProcesserName(thisClass.className, #fn, dispName, {}); \ } + +#define REG_CLASS(classDispName) \ + { \ + FrontMsgProcesser::ins().addMenu(thisClass.className, classDispName); \ + } diff --git a/appsrc/service/app/disinfection_ctrl_service_ext.cpp b/appsrc/service/app/disinfection_ctrl_service_ext.cpp index e96e823..06343e8 100644 --- a/appsrc/service/app/disinfection_ctrl_service_ext.cpp +++ b/appsrc/service/app/disinfection_ctrl_service_ext.cpp @@ -40,6 +40,8 @@ void DisinfectionCtrlServiceExt::initialize() { GET_TO_SERVICE(ds); GET_TO_SERVICE(dcs); + REG_CLASS("消毒控制") + REG_EXTFN(start, void(string), loglevel); REG_EXTFN(startWithFormula, void(string), formulaid); REG_EXTFN_VOID(stop, void()); diff --git a/appsrc/service/app/pipeline_pressure_control.cpp b/appsrc/service/app/pipeline_pressure_control.cpp index 6ef7a5d..34963c0 100644 --- a/appsrc/service/app/pipeline_pressure_control.cpp +++ b/appsrc/service/app/pipeline_pressure_control.cpp @@ -90,6 +90,10 @@ void PipelinePressureControl::setIntensity(shared_ptr cxt, in m_intensity = intensity; syncPressureValueState(); } + void PipelinePressureControl::pressurePropCtrl(shared_ptr cxt, PressureType type, int intensity){ + + } + void PipelinePressureControl::getState(shared_ptr cxt) { cxt->rely = getState(); } json PipelinePressureControl::getState() { json state; diff --git a/appsrc/service/app/pipeline_pressure_control.hpp b/appsrc/service/app/pipeline_pressure_control.hpp index 69ffd69..7f65031 100644 --- a/appsrc/service/app/pipeline_pressure_control.hpp +++ b/appsrc/service/app/pipeline_pressure_control.hpp @@ -68,6 +68,9 @@ class PipelinePressureControl : public enable_shared_from_this cxt, PressureType type); void setIntensity(shared_ptr cxt, int intensity); + + void pressurePropCtrl(shared_ptr cxt, PressureType type, int intensity); + void getState(shared_ptr cxt); void getConfig(shared_ptr cxt); diff --git a/appsrc/service/app_core.cpp b/appsrc/service/app_core.cpp index e89fc53..ac7cbff 100644 --- a/appsrc/service/app_core.cpp +++ b/appsrc/service/app_core.cpp @@ -110,6 +110,7 @@ static void installEcodeInfo() { } void AppCore::initialize() { + REG_CLASS("AppCore"); REG_ENUM_TYPE(SettingId, SettingId::getEnumStrList()); REG_ENUM_TYPE(AirLeakTestMode, AirLeakTestMode::getEnumStrList()); REG_ENUM_TYPE(UsrRoleType, UsrRoleType::getEnumStrList()); @@ -157,7 +158,6 @@ void AppCore::initialize() { // BUILD_AND_REG_SERRVICE(AuditMgrService); BUILD_AND_REG_SERRVICE(DisinfectionLogsService); - BUILD_AND_REG_SERRVICE(FrontEndRealtimeDisplayContentMgr); // 前端实时信息显示服务 // Device BUILD_AND_REG_SERRVICE(UartPrinter); @@ -174,13 +174,13 @@ void AppCore::initialize() { BUILD_AND_REG_SERRVICE(DisinfectionCtrlService); BUILD_AND_REG_SERRVICE(DisinfectionCtrlServiceExt); BUILD_AND_REG_SERRVICE(DrainLiquidService); - BUILD_AND_REG_SERRVICE(DebugPageTestService); - BUILD_AND_REG_SERRVICE(H2O2LiquidWeightSensorCalibrationService); // H2O2液体重量传感器校准 - BUILD_AND_REG_SERRVICE(ExtSettingMgrService); BUILD_AND_REG_SERRVICE(EquipmentUsageInfoMgrService); - BUILD_AND_REG_SERRVICE(DeviceMonitorService); + BUILD_AND_REG_SERRVICE(H2O2LiquidWeightSensorCalibrationService); // H2O2液体重量传感器校准 + BUILD_AND_REG_SERRVICE(ExtSettingMgrService); + BUILD_AND_REG_SERRVICE(DebugPageTestService); + // int cnt = 0; // while (true) { // uint64_t tp = zsys_get_ticket(); diff --git a/appsrc/service/audit_mgr_service.cpp b/appsrc/service/audit_mgr_service.cpp index 624a31e..3d1fab8 100644 --- a/appsrc/service/audit_mgr_service.cpp +++ b/appsrc/service/audit_mgr_service.cpp @@ -12,6 +12,7 @@ using namespace iflytop; void AuditMgrService::initialize() { GET_TO_SERVICE(m_udiskMgr); + REG_CLASS("审计"); REG_EXTFN_VOID(exportData, void()); REG_EXTFN(getRecords, void(int, int), page, pageSize); REG_EXTFN_VOID(pushTestData, void()); diff --git a/appsrc/service/calibration/h2o2_liquid_weight_sensor_calibration_service.cpp b/appsrc/service/calibration/h2o2_liquid_weight_sensor_calibration_service.cpp index cec9f1a..beb189a 100644 --- a/appsrc/service/calibration/h2o2_liquid_weight_sensor_calibration_service.cpp +++ b/appsrc/service/calibration/h2o2_liquid_weight_sensor_calibration_service.cpp @@ -5,6 +5,7 @@ using namespace std; using namespace core; void H2O2LiquidWeightSensorCalibrationService::initialize() { + REG_CLASS("存液桶校准"); GET_TO_SERVICE(m_disinfectantWeightUpdateService); REG_EXTFN_VOID(getWeight, json(void)); // diff --git a/appsrc/service/debug_page_test_service.cpp b/appsrc/service/debug_page_test_service.cpp index cd8c6c0..a60dbcf 100644 --- a/appsrc/service/debug_page_test_service.cpp +++ b/appsrc/service/debug_page_test_service.cpp @@ -3,6 +3,8 @@ #include "hardware/device_io_ctrl_service.hpp" using namespace iflytop; void DebugPageTestService::initialize() { + REG_CLASS("代码调试"); + REG_EXTFN_VOID(enterTestMode, void(void)); REG_EXTFN_VOID(exitTestMode, void(void)); REG_EXTFN(startGenFakeH2O2Data, void(json), data); @@ -136,5 +138,4 @@ void DebugPageTestService::triggerPromptEvent(shared_ptr cxt, AppEventBus::ins()->pushPromoptEvent(message); } void DebugPageTestService::triggerAppCheckPointFailEvent(shared_ptr cxt) { // - } diff --git a/appsrc/service/device_info_mgr_service.cpp b/appsrc/service/device_info_mgr_service.cpp index ee3dbc5..67d2163 100644 --- a/appsrc/service/device_info_mgr_service.cpp +++ b/appsrc/service/device_info_mgr_service.cpp @@ -10,6 +10,7 @@ DeviceInfoMgrService::DeviceInfoMgrService() {} void DeviceInfoMgrService::initialize() { GET_TO_SERVICE(m_ds); + REG_CLASS("设备信息"); REG_EXTFN_VOID(getDeviceInfo, void()); REG_EXTFN_VOID(getSubDeviceInfo, void()); } diff --git a/appsrc/service/disinfection_logs_service.cpp b/appsrc/service/disinfection_logs_service.cpp index d4feb41..fa09018 100644 --- a/appsrc/service/disinfection_logs_service.cpp +++ b/appsrc/service/disinfection_logs_service.cpp @@ -108,6 +108,7 @@ void DisinfectionLogsService::initialize() { GET_TO_SERVICE(m_ds); GET_TO_SERVICE(m_udiskMgrService); + REG_CLASS("消毒日志管理"); REG_EXTFN_VOID(getRecordList, void()); REG_EXTFN_VOID(getRecordsStorageState, void()); REG_EXTFN(getRecord, void(string), logName); @@ -581,7 +582,7 @@ void DisinfectionLogsService::exportAllRecord(shared_ptr cxt) for (auto& var : m_recordFiles) { logNames.push_back(var); } - exportDisinfectionData(logNames); + cxt->ackcode = exportDisinfectionData(logNames); } void DisinfectionLogsService::exportRecord(shared_ptr cxt, vector logNames) { diff --git a/appsrc/service/equipment_usage_info_mgr_service.cpp b/appsrc/service/equipment_usage_info_mgr_service.cpp index 05a18fb..c61b6c2 100644 --- a/appsrc/service/equipment_usage_info_mgr_service.cpp +++ b/appsrc/service/equipment_usage_info_mgr_service.cpp @@ -5,6 +5,7 @@ using namespace std; using namespace core; void EquipmentUsageInfoMgrService::initialize() { + REG_CLASS("设备使用情况统计"); REG_EXTFN_VOID(showHelp, json(void)); // REG_EXTFN_VOID(getEquipmentUsageInfo, void(void)); // REG_EXTFN_VOID(setCurTimeAsFactoryTime, void(void)); // diff --git a/appsrc/service/front_end_realtime_display_content_mgr.cpp b/appsrc/service/front_end_realtime_display_content_mgr.cpp index 5423af4..ca0d8bb 100644 --- a/appsrc/service/front_end_realtime_display_content_mgr.cpp +++ b/appsrc/service/front_end_realtime_display_content_mgr.cpp @@ -3,92 +3,92 @@ #include "service/hardware/device_io_ctrl_service.hpp" using namespace iflytop; -void FrontEndRealtimeDisplayContentMgr::initialize() { // - REG_EXTFN_VOID(readH2O2SensorData, json()); - REG_EXTFN_VOID(readH2O2SensorRawData, json()); - REG_EXTFN_VOID(readH2O2SensorSnapshot, json()); - - // - stateUpdateThread.reset(new Thread("FERDC-stateUpdateThread", [this]() { - while (!ThisThread().getExitFlag()) { - try { - SEND_CLASS_REPORT(thisClass.className, "stateUpdate", readH2O2SensorData()); - } catch (const std::exception& e) { - logger->error("stateUpdateThread error:{}", e.what()); - } - ThisThread().sleepForMs(3000); - } - })); -} +// void FrontEndRealtimeDisplayContentMgr::initialize() { // +// REG_CLASS("首页信息显示(废弃中)") +// REG_EXTFN_VOID(readH2O2SensorData, json()); +// REG_EXTFN_VOID(readH2O2SensorRawData, json()); +// REG_EXTFN_VOID(readH2O2SensorSnapshot, json()); -json FrontEndRealtimeDisplayContentMgr::readH2O2SensorData() { - auto h2o2SSSS = h2o2SensorStateSyncService; +// // +// stateUpdateThread.reset(new Thread("FERDC-stateUpdateThread", [this]() { +// while (!ThisThread().getExitFlag()) { +// try { +// SEND_CLASS_REPORT(thisClass.className, "stateUpdate", readH2O2SensorData()); +// } catch (const std::exception& e) { +// logger->error("stateUpdateThread error:{}", e.what()); +// } +// ThisThread().sleepForMs(3000); +// } +// })); +// } - // h2o2Mgr->getCacheData() - json sensordata = json::array(); - int i = 0; +// json FrontEndRealtimeDisplayContentMgr::readH2O2SensorData() { +// auto h2o2SSSS = h2o2SensorStateSyncService; - sensordata[i]["type"] = H2O2SensorType::Internal; - sensordata[i]["sensorId"] = 1; - sensordata[i]["h2o2"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->h2o2; - sensordata[i]["temp"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->temp; - sensordata[i]["rh"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->rh; - sensordata[i]["rs"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->rs; - sensordata[i]["online"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->isOnline; - sensordata[i]["preheartWell"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->preHeatWell; +// // h2o2Mgr->getCacheData() +// json sensordata = json::array(); +// int i = 0; - i++; - if (PORT.getExtH2O2SensorNum() >= 1) { - sensordata[i]["type"] = H2O2SensorType::WiredExtSensor; - sensordata[i]["sensorId"] = 1; - sensordata[i]["h2o2"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->h2o2; - sensordata[i]["temp"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->temp; - sensordata[i]["rh"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->rh; - sensordata[i]["rs"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->rs; - sensordata[i]["online"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->isOnline; - sensordata[i]["preheartWell"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->preHeatWell; - } +// sensordata[i]["type"] = H2O2SensorType::Internal; +// sensordata[i]["sensorId"] = 1; +// sensordata[i]["h2o2"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->h2o2; +// sensordata[i]["temp"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->temp; +// sensordata[i]["rh"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->rh; +// sensordata[i]["rs"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->rs; +// sensordata[i]["online"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->isOnline; +// sensordata[i]["preheartWell"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::Internal, 1)->preHeatWell; - i++; - if (PORT.getExtH2O2SensorNum() >= 2) { - sensordata[i]["type"] = H2O2SensorType::WiredExtSensor; - sensordata[i]["sensorId"] = 2; - sensordata[i]["h2o2"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->h2o2; - sensordata[i]["temp"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->temp; - sensordata[i]["rh"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->rh; - sensordata[i]["rs"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->rs; - sensordata[i]["online"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->isOnline; - sensordata[i]["preheartWell"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->preHeatWell; - } +// i++; +// if (PORT.getExtH2O2SensorNum() >= 1) { +// sensordata[i]["type"] = H2O2SensorType::WiredExtSensor; +// sensordata[i]["sensorId"] = 1; +// sensordata[i]["h2o2"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->h2o2; +// sensordata[i]["temp"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->temp; +// sensordata[i]["rh"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->rh; +// sensordata[i]["rs"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->rs; +// sensordata[i]["online"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->isOnline; +// sensordata[i]["preheartWell"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->preHeatWell; +// } - json rely; - rely["sensordata"] = sensordata; - rely["internalSensorNum"] = 1; - rely["wiredExSensorNum"] = PORT.getExtH2O2SensorNum(); +// i++; +// if (PORT.getExtH2O2SensorNum() >= 2) { +// sensordata[i]["type"] = H2O2SensorType::WiredExtSensor; +// sensordata[i]["sensorId"] = 2; +// sensordata[i]["h2o2"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->h2o2; +// sensordata[i]["temp"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->temp; +// sensordata[i]["rh"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->rh; +// sensordata[i]["rs"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->rs; +// sensordata[i]["online"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->isOnline; +// sensordata[i]["preheartWell"] = h2o2SSSS->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->preHeatWell; +// } - return rely; -} +// json rely; +// rely["sensordata"] = sensordata; +// rely["internalSensorNum"] = 1; +// rely["wiredExSensorNum"] = PORT.getExtH2O2SensorNum(); -void FrontEndRealtimeDisplayContentMgr::readH2O2SensorData(shared_ptr cxt) { cxt->rely["val"] = readH2O2SensorData(); } -void FrontEndRealtimeDisplayContentMgr::readH2O2SensorSnapshot(shared_ptr cxt) { - auto h2o2SSSS = h2o2SensorStateSyncService; - cxt->rely = *h2o2SSSS->takeSnapshot(); +// return rely; +// } -} +// void FrontEndRealtimeDisplayContentMgr::readH2O2SensorData(shared_ptr cxt) { cxt->rely["val"] = readH2O2SensorData(); } +// void FrontEndRealtimeDisplayContentMgr::readH2O2SensorSnapshot(shared_ptr cxt) { +// auto h2o2SSSS = h2o2SensorStateSyncService; +// cxt->rely = *h2o2SSSS->takeSnapshot(); +// } -void FrontEndRealtimeDisplayContentMgr::readH2O2SensorRawData(shared_ptr cxt) { - // h2o2Mgr->getCacheData() - json sensordata = json::array(); - if (PORT.getExtH2O2SensorNum() >= 0) { - sensordata[0] = json(h2o2SensorStateSyncService->getCacheDataCpy(H2O2SensorType::Internal, 1)->reportData); - } +// void FrontEndRealtimeDisplayContentMgr::readH2O2SensorRawData(shared_ptr cxt) { +// // h2o2Mgr->getCacheData() +// json sensordata = json::array(); +// if (PORT.getExtH2O2SensorNum() >= 0) { +// sensordata[0] = json(h2o2SensorStateSyncService->getCacheDataCpy(H2O2SensorType::Internal, 1)->reportData); +// } - if (PORT.getExtH2O2SensorNum() >= 1) { - sensordata[1] = json(h2o2SensorStateSyncService->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->reportData); - } +// if (PORT.getExtH2O2SensorNum() >= 1) { +// sensordata[1] = json(h2o2SensorStateSyncService->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 1)->reportData); +// } - if (PORT.getExtH2O2SensorNum() >= 2) { - sensordata[2] = json(h2o2SensorStateSyncService->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->reportData); - } - cxt->rely["val"] = sensordata; -} +// if (PORT.getExtH2O2SensorNum() >= 2) { +// sensordata[2] = json(h2o2SensorStateSyncService->getCacheDataCpy(H2O2SensorType::WiredExtSensor, 2)->reportData); +// } +// cxt->rely["val"] = sensordata; +// } diff --git a/appsrc/service/front_end_realtime_display_content_mgr.hpp b/appsrc/service/front_end_realtime_display_content_mgr.hpp index afbfbaa..c447a33 100644 --- a/appsrc/service/front_end_realtime_display_content_mgr.hpp +++ b/appsrc/service/front_end_realtime_display_content_mgr.hpp @@ -12,23 +12,23 @@ #include "baseservice/baseservice.hpp" #include "service/hardware/h2o2_sensor_state_sync.hpp" -namespace iflytop { -class FrontEndRealtimeDisplayContentMgr : public enable_shared_from_this { - THISCLASS(FrontEndRealtimeDisplayContentMgr); +// namespace iflytop { +// class FrontEndRealtimeDisplayContentMgr : public enable_shared_from_this { +// THISCLASS(FrontEndRealtimeDisplayContentMgr); - SERVICE(H2O2SensorStateSyncService, h2o2SensorStateSyncService); +// SERVICE(H2O2SensorStateSyncService, h2o2SensorStateSyncService); - shared_ptr m_ds; - unique_ptr stateUpdateThread; +// shared_ptr m_ds; +// unique_ptr stateUpdateThread; - public: - void initialize(); +// public: +// void initialize(); - private: - json readH2O2SensorData(); - void readH2O2SensorData(shared_ptr cxt); - void readH2O2SensorSnapshot(shared_ptr cxt); - void readH2O2SensorRawData(shared_ptr cxt); -}; +// private: +// json readH2O2SensorData(); +// void readH2O2SensorData(shared_ptr cxt); +// void readH2O2SensorSnapshot(shared_ptr cxt); +// void readH2O2SensorRawData(shared_ptr cxt); +// }; -} // namespace iflytop +// } // namespace iflytop diff --git a/appsrc/service/h2o2_sensor_mgr.cpp b/appsrc/service/h2o2_sensor_mgr.cpp index 825c9c3..ffecdd1 100644 --- a/appsrc/service/h2o2_sensor_mgr.cpp +++ b/appsrc/service/h2o2_sensor_mgr.cpp @@ -40,6 +40,7 @@ void H2O2SensorMgr::initialize() { } })); + REG_CLASS("H2O2探头管理"); REG_EXTFN(getH2O2DataRecordList, void(H2O2SensorType, int, int64_t, int64_t, int64_t), type, id, since, interval, before); REG_EXTFN(getDisinfectionH2O2DataRecordList, void(H2O2SensorType, int, int64_t), type, id, interval); REG_EXTFN_VOID(getH2O2SensorList, void()); diff --git a/appsrc/service/hardware/device_io_ctrl_service.cpp b/appsrc/service/hardware/device_io_ctrl_service.cpp index 0942714..ce5baf0 100644 --- a/appsrc/service/hardware/device_io_ctrl_service.cpp +++ b/appsrc/service/hardware/device_io_ctrl_service.cpp @@ -41,6 +41,8 @@ static bool isInTestMode() { } void DeviceIoControlService::initialize() { + REG_CLASS("底层设备控制(Debug)"); + REG_FN_VOID(AddLiquidPump_addLiquid, void(void)); REG_FN(AddLiquidPump_run, void(int), rpm); REG_FN_VOID(AddLiquidPump_drainLiquid, void(void)); @@ -96,7 +98,6 @@ void DeviceIoControlService::initialize() { * @brief 初始化所有硬件状态 */ - heartThread.reset(new Thread("heartThread", [this]() { while (true) { if (VIRTUAL_DEVICE()) { diff --git a/appsrc/service/os_mgr_service.cpp b/appsrc/service/os_mgr_service.cpp index 18c47a1..579e8af 100644 --- a/appsrc/service/os_mgr_service.cpp +++ b/appsrc/service/os_mgr_service.cpp @@ -7,6 +7,7 @@ OsMgrService::OsMgrService() {} void OsMgrService::initialize() { GET_TO_SERVICE(m_ds); + REG_CLASS("OS管理"); REG_EXTFN_VOID(shutdown, void()); REG_EXTFN(updateDate, void(int, int, int), year, month, day); REG_EXTFN(updateTime, void(int, int, int), hour, min, second); @@ -34,6 +35,4 @@ void OsMgrService::updateTime(shared_ptr cxt, int hour, int m dosystem(fmt::format("hwclock -w").c_str()); } -void OsMgrService::getTime(shared_ptr cxt) { - cxt->rely["time"] = duration_cast(system_clock::now().time_since_epoch()).count(); -} +void OsMgrService::getTime(shared_ptr cxt) { cxt->rely["time"] = duration_cast(system_clock::now().time_since_epoch()).count(); } diff --git a/appsrc/service/setting/ext_setting_mgr_service.cpp b/appsrc/service/setting/ext_setting_mgr_service.cpp index 10c8b27..cc8a569 100644 --- a/appsrc/service/setting/ext_setting_mgr_service.cpp +++ b/appsrc/service/setting/ext_setting_mgr_service.cpp @@ -4,8 +4,27 @@ using namespace iflytop; using namespace std; using namespace core; -void ExtSettingMgrService::initVal(shared_ptr cxt, ProjectTypeEnum projType, int year, int month, int day, int index) { DeviceExtSettingV2Dao::ins()->initVal(projType, year, month, day, index); } -void ExtSettingMgrService::initVal(shared_ptr cxt, ProjectTypeEnum projType, string deviceId) { DeviceExtSettingV2Dao::ins()->initVal(projType, deviceId); } +void ExtSettingMgrService::initVal1(shared_ptr cxt, ProjectTypeEnum projType, int year, int month, int day, int index) { DeviceExtSettingV2Dao::ins()->initVal(projType, year, month, day, index); } +void ExtSettingMgrService::initVal2(shared_ptr cxt, string deviceId) { + int deviceTypeLen = deviceId.length() - 9; + if (deviceTypeLen < 6) { + cxt->rely["error"] = fmt::format("设备ID格式错误,设备ID长度{}<15", deviceId.length()); + return; + } + string deviceType = deviceId.substr(0, deviceTypeLen); + ProjectTypeEnum dtype = ProjectTypeEnum(deviceType); + if (dtype.getId() == ProjectTypeEnum::kunkown) { + cxt->rely["error"] = fmt::format("设备ID格式错误,不支持的设备类型:{}", deviceType); + return; + } + + int year = stoi(deviceId.substr(deviceTypeLen, 2)); + int month = stoi(deviceId.substr(deviceTypeLen + 2, 2)); + int day = stoi(deviceId.substr(deviceTypeLen + 4, 2)); + int index = stoi(deviceId.substr(deviceTypeLen + 6, 3)); + + DeviceExtSettingV2Dao::ins()->initVal(dtype, deviceId); +} void ExtSettingMgrService::getSetting(shared_ptr cxt) { cxt->rely = DeviceExtSettingV2Dao::ins()->getSetting(); } void ExtSettingMgrService::getSettingCH(shared_ptr cxt) { cxt->rely = DeviceExtSettingV2Dao::ins()->getSettingCH(); } @@ -32,8 +51,13 @@ void ExtSettingMgrService::rebootDevice(shared_ptr cxt) { sys void ExtSettingMgrService::restartProgram(shared_ptr cxt) { system("systemctl restart zapp &"); } void ExtSettingMgrService::initialize() { - REG_EXTFN(initVal, void(ProjectTypeEnum, int, int, int, int), projType, year, month, day, index); - REG_EXTFN(initVal, void(ProjectTypeEnum, string), projType, deviceId); + REG_CLASS("设备扩展配置"); + + REG_EXTFN(initVal1, void(ProjectTypeEnum, int, int, int, int), projType, year, month, day, index); + REG_EXTFN_VOID_DISPNAME(initVal1, "初始化设备"); + + REG_EXTFN(initVal2, void(string), deviceId); + REG_EXTFN_VOID_DISPNAME(initVal2, "初始化设备"); REG_EXTFN_VOID(getSetting, json()); REG_EXTFN_VOID_DISPNAME(getSetting, "获取设备扩展设置"); @@ -42,52 +66,52 @@ void ExtSettingMgrService::initialize() { REG_EXTFN_VOID_DISPNAME(getSettingCH, "获取设备扩展设置(中文)"); REG_EXTFN(setCanIF, void(string), val); - REG_EXTFN_DISPNAME(setCanIF, "CAN接口", "val"); + REG_EXTFN_DISPNAME(setCanIF, "设置CAN接口", "val"); REG_EXTFN(setCanBitrate, void(int), val); - REG_EXTFN_DISPNAME(setCanBitrate, "CAN波特率", "val"); + REG_EXTFN_DISPNAME(setCanBitrate, "设置CAN波特率", "val"); REG_EXTFN(setPrinterUartPath, void(string), val); - REG_EXTFN_DISPNAME(setPrinterUartPath, "打印机串口路径", "val"); + REG_EXTFN_DISPNAME(setPrinterUartPath, "设置打印机串口路径", "val"); REG_EXTFN(setH2o2SensorExpireTimeMonth, void(int), val); - REG_EXTFN_DISPNAME(setH2o2SensorExpireTimeMonth, "H2O2传感器过期时间(月)", "val"); + REG_EXTFN_DISPNAME(setH2o2SensorExpireTimeMonth, "设置H2O2传感器过期时间(月)", "val"); REG_EXTFN(setH2o2Sensorh2o2MinVal, void(int), val); - REG_EXTFN_DISPNAME(setH2o2Sensorh2o2MinVal, "H2O2传感器最小值", "val"); + REG_EXTFN_DISPNAME(setH2o2Sensorh2o2MinVal, "设置H2O2传感器最小值", "val"); REG_EXTFN(setSensorPreheartTimeS, void(int), val); - REG_EXTFN_DISPNAME(setSensorPreheartTimeS, "传感器预热时间(秒)", "val"); + REG_EXTFN_DISPNAME(setSensorPreheartTimeS, "设置传感器预热时间(秒)", "val"); REG_EXTFN(setExtWiredSensorNum, void(int), val); - REG_EXTFN_DISPNAME(setExtWiredSensorNum, "外部有线探头数量", "val"); + REG_EXTFN_DISPNAME(setExtWiredSensorNum, "设置外部有线探头数量", "val"); REG_EXTFN(setEmptyThePipeLineTimeS, void(int), val); - REG_EXTFN_DISPNAME(setEmptyThePipeLineTimeS, "排空加液管道时间(秒)", "val"); + REG_EXTFN_DISPNAME(setEmptyThePipeLineTimeS, "设置排空加液管道时间(秒)", "val"); REG_EXTFN(setEmptyingLiquidStorageTankCondtionG, void(int), val); - REG_EXTFN_DISPNAME(setEmptyingLiquidStorageTankCondtionG, "排空液体储存罐阈值(G)", "val"); + REG_EXTFN_DISPNAME(setEmptyingLiquidStorageTankCondtionG, "设置排空液体阈值(g)", "val"); REG_EXTFN(setLeakTestInflationTimeMs, void(int), val); - REG_EXTFN_DISPNAME(setLeakTestInflationTimeMs, "泄漏测试充气时间(毫秒)", "val"); + REG_EXTFN_DISPNAME(setLeakTestInflationTimeMs, "设置泄漏测试充气时间(毫秒)", "val"); REG_EXTFN(setLeakTestStabilizationTimeS, void(int), val); - REG_EXTFN_DISPNAME(setLeakTestStabilizationTimeS, "泄漏测试稳定时间(秒)", "val"); + REG_EXTFN_DISPNAME(setLeakTestStabilizationTimeS, "设置泄漏测试稳定时间(秒)", "val"); REG_EXTFN(setDisinfectantBucketCapacity, void(int), val); - REG_EXTFN_DISPNAME(setDisinfectantBucketCapacity, "消毒液桶体积", "val"); + REG_EXTFN_DISPNAME(setDisinfectantBucketCapacity, "设置消毒液桶体积", "val"); REG_EXTFN(setUserBehaviorRecordDbMaxRecords, void(int), val); - REG_EXTFN_DISPNAME(setUserBehaviorRecordDbMaxRecords, "用户行为记录数据库最大记录数", "val"); + REG_EXTFN_DISPNAME(setUserBehaviorRecordDbMaxRecords, "设置用户行为最大记录数", "val"); REG_EXTFN(setGpmToSpeedRadio, void(float), val); - REG_EXTFN_DISPNAME(setGpmToSpeedRadio, "GPM转速比率", "val"); + REG_EXTFN_DISPNAME(setGpmToSpeedRadio, "设置GPM转速比率", "val"); REG_EXTFN(setSprayLineEmptyTimeS, void(int), val); - REG_EXTFN_DISPNAME(setSprayLineEmptyTimeS, "喷液管道排空时间(秒)", "val"); + REG_EXTFN_DISPNAME(setSprayLineEmptyTimeS, "设置喷液管道排空时间(秒)", "val"); REG_EXTFN(setSprayLineEmptyVelRPM, void(int), val); - REG_EXTFN_DISPNAME(setSprayLineEmptyVelRPM, "喷液管道排空速度(RPM)", "val"); + REG_EXTFN_DISPNAME(setSprayLineEmptyVelRPM, "设置喷液管道排空速度(RPM)", "val"); REG_EXTFN_VOID(rebootDevice, void(void)); REG_EXTFN_VOID_DISPNAME(rebootDevice, "重启设备"); diff --git a/appsrc/service/setting/ext_setting_mgr_service.hpp b/appsrc/service/setting/ext_setting_mgr_service.hpp index 5b4ef20..59fe365 100644 --- a/appsrc/service/setting/ext_setting_mgr_service.hpp +++ b/appsrc/service/setting/ext_setting_mgr_service.hpp @@ -19,8 +19,8 @@ class ExtSettingMgrService : public enable_shared_from_this cxt, ProjectTypeEnum projType, int year, int month, int day, int index); - void initVal(shared_ptr cxt, ProjectTypeEnum projType, string deviceId); + void initVal1(shared_ptr cxt, ProjectTypeEnum projType, int year, int month, int day, int index); + void initVal2(shared_ptr cxt, string deviceId); void getSetting(shared_ptr cxt); void getSettingCH(shared_ptr cxt); diff --git a/appsrc/service/setting_mgr_service.cpp b/appsrc/service/setting_mgr_service.cpp index 150ddcb..b2756de 100644 --- a/appsrc/service/setting_mgr_service.cpp +++ b/appsrc/service/setting_mgr_service.cpp @@ -10,6 +10,7 @@ SettingMgrService::SettingMgrService() {} void SettingMgrService::initialize() { GET_TO_SERVICE(m_ds); + REG_CLASS("基础设置"); REG_EXTFN_VOID(getAllSetting, void()); REG_EXTFN(setSettingVal, void(string, string), settingName, settingVal); REG_EXTFN_VOID(getAllFormula, json()); diff --git a/appsrc/service/test_page_ctrl_service.cpp b/appsrc/service/test_page_ctrl_service.cpp index e6998d0..bcf2369 100644 --- a/appsrc/service/test_page_ctrl_service.cpp +++ b/appsrc/service/test_page_ctrl_service.cpp @@ -8,27 +8,55 @@ using namespace testpage; * @brief * * - * WARNING: 这个页面接口的接口已经废弃,仅为了兼容老版本,接口不会再更新 - * Date: 2024-12-05 * */ void TestPageCtrlService::initialize() { + REG_CLASS("测试页面控制服务"); REG_EXTFN(sprayPumpDoForward, void(int32_t), gpm); + REG_EXTFN_DISPNAME(sprayPumpDoForward, "喷液泵正转"); + REG_EXTFN(sprayPumpDoBackward, void(int32_t), gpm); + REG_EXTFN_DISPNAME(sprayPumpDoBackward, "喷液泵反转") + REG_EXTFN_VOID(sprayPumpDoStop, void()); + REG_EXTFN_DISPNAME(sprayPumpDoStop, "喷液泵停止"); + REG_EXTFN_VOID(liquidFillingPumpDoLiquidFilling, void()); + REG_EXTFN_DISPNAME(liquidFillingPumpDoLiquidFilling, "加液"); + REG_EXTFN_VOID(liquidFillingPumpDoLiquidDischarge, void()); + REG_EXTFN_DISPNAME(liquidFillingPumpDoLiquidDischarge, "排液"); + REG_EXTFN_VOID(liquidFillingPumpDoStop, void()); + REG_EXTFN_DISPNAME(liquidFillingPumpDoStop, "停止加液"); + REG_EXTFN_VOID(airCompressorDoOpen, void()); + REG_EXTFN_DISPNAME(airCompressorDoOpen, "空压机打开"); + REG_EXTFN_VOID(airCompressorDoClose, void()); + REG_EXTFN_DISPNAME(airCompressorDoClose, "空压机关闭"); + REG_EXTFN_VOID(blowerDoOpen, void()); + REG_EXTFN_DISPNAME(blowerDoOpen, "鼓风机打开"); + REG_EXTFN_VOID(blowerDoClose, void()); + REG_EXTFN_DISPNAME(blowerDoClose, "鼓风机关闭"); + REG_EXTFN_VOID(heatingDoOpen, void()); + REG_EXTFN_DISPNAME(heatingDoOpen, "加热器打开"); + REG_EXTFN_VOID(heatingDoClose, void()); + REG_EXTFN_DISPNAME(heatingDoClose, "加热器关闭"); + REG_EXTFN_VOID(printerDoTest, void()); + REG_EXTFN_DISPNAME(printerDoTest, "打印机测试"); + REG_EXTFN(airLeakDetectTestModeDoSetMode, void(string mode), mode); + REG_EXTFN_DISPNAME(airLeakDetectTestModeDoSetMode, "气路通道设置"); + REG_FN_VOID(readState, void()); + m_thread.reset(new Thread("TestPageCtrlServiceReportThread", [this]() { while (!ThisThread().getExitFlag()) { @@ -106,9 +134,9 @@ void TestPageCtrlService::airLeakDetectTestModeDoSetMode(shared_ptrgetAirCompressorCurrent(); - state["blowerCurrent"] = sensorStateSyncService->getBlowerCurrent(); - state["heaterCurrent"] = sensorStateSyncService->getHeaterCurrent(); - state["heaterTemperature"] = sensorStateSyncService->getHeaterTemperature(); + state["airCompressorCurrent"] = sensorStateSyncService->getAirCompressorCurrent(); + state["blowerCurrent"] = sensorStateSyncService->getBlowerCurrent(); + state["heaterCurrent"] = sensorStateSyncService->getHeaterCurrent(); + state["heaterTemperature"] = sensorStateSyncService->getHeaterTemperature(); return state; } diff --git a/appsrc/service/user_mgr_service.cpp b/appsrc/service/user_mgr_service.cpp index 0088f1d..1d539b3 100644 --- a/appsrc/service/user_mgr_service.cpp +++ b/appsrc/service/user_mgr_service.cpp @@ -7,6 +7,7 @@ using namespace core; void UserMgrService::initialize() { GET_TO_SERVICE(m_deviceStateService); + REG_CLASS("用户管理"); REG_EXTFN(login, void(string, string), name, pwd); REG_EXTFN_VOID(unlogin, void()); REG_EXTFN(addUser, void(string, string, UsrRoleType), name, passwd, roleType); @@ -77,8 +78,8 @@ void UserMgrService::updateUserName(shared_ptr cxt, int id, s ADD_USER_BEHAVIOR(DS->getLoginName(), fmt::format("修改用户名{}->{}", oldname, name)); } void UserMgrService::getAllUser(shared_ptr cxt) { - auto users = UserDao::ins()->getAllUserJson(); - cxt->rely = users; + auto users = UserDao::ins()->getAllUserJson(); + cxt->rely = users; return; } @@ -86,11 +87,11 @@ void UserMgrService::getLoginUser(shared_ptr cxt) { string loginName = m_deviceStateService->getLoginName(); bool isLogin = m_deviceStateService->isLogin(); - cxt->rely["isLogin"] = isLogin; + cxt->rely["isLogin"] = isLogin; if (isLogin) { - cxt->rely["loginUser"] = UserDao::ins()->getUserJson(loginName); + cxt->rely["loginUser"] = UserDao::ins()->getUserJson(loginName); } else { - cxt->rely["loginUser"] = {}; + cxt->rely["loginUser"] = {}; } return; } diff --git a/html/debug/index.html b/html/debug/index.html index 4062992..ec93668 100644 --- a/html/debug/index.html +++ b/html/debug/index.html @@ -22,7 +22,9 @@
- + + +
连接 @@ -30,39 +32,47 @@
+ + - +
+
-
- {{item.fnName}} -
-
- + style="margin-bottom: 5px;background:white;padding:5px;border-radius: 5px; "> + + + + {{item.fnDispName}} + + +
+ + + {{enumValue}} + + - +
- 执行 + +
-
+
+ - @@ -75,6 +85,7 @@
清空日志
+
@@ -98,9 +109,6 @@
- - -