From 28af8950901e3cacd9b7c8ec3d5f6ed789074b1f Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 15 Aug 2024 15:43:44 +0800 Subject: [PATCH] update --- TESTCMD.md | 25 +++++++++++++++++++++++++ appsrc/service/test_page_mgr_service.cpp | 4 ++-- appsrc/service/testpage/test_page_processer.cpp | 17 ++++++++++++----- 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/TESTCMD.md b/TESTCMD.md index 5c55391..2b8da10 100644 --- a/TESTCMD.md +++ b/TESTCMD.md @@ -12,4 +12,29 @@ "timeStamp": 1234 } +``` + +### 启动上报 + +```json +{ + "messageType": "Command", + "fnName": "startReportState", + "className": "TestPageMgrService", + "messageId":"1234", + "timeStamp": 1234 +} +``` + +### 停止上报 + + +```json +{ + "messageType": "Command", + "fnName": "stopReportState", + "className": "TestPageMgrService", + "messageId":"1234", + "timeStamp": 1234 +} ``` \ No newline at end of file diff --git a/appsrc/service/test_page_mgr_service.cpp b/appsrc/service/test_page_mgr_service.cpp index fe3880a..11eeaf0 100644 --- a/appsrc/service/test_page_mgr_service.cpp +++ b/appsrc/service/test_page_mgr_service.cpp @@ -89,9 +89,9 @@ void TestPageMgrService::initialize() { }); m_testPageItemMgr.insertStates("heatingState", {"heatingTemperature", "heatingCurrent"}, [this](string stateName) { // - if (stateName == "temperature") { + if (stateName == "heatingTemperature") { return "25"; - } else if (stateName == "current") { + } else if (stateName == "heatingCurrent") { return "1.2"; } return "error"; diff --git a/appsrc/service/testpage/test_page_processer.cpp b/appsrc/service/testpage/test_page_processer.cpp index ab1ffbb..39d159c 100644 --- a/appsrc/service/testpage/test_page_processer.cpp +++ b/appsrc/service/testpage/test_page_processer.cpp @@ -116,8 +116,8 @@ void TestPageItemMgr::processOnButton(json cmd) { vector params; for (auto& p : buttons->params) { - auto it = cmd.find(p.name); - if (it == cmd.end()) { + auto it = cmd["params"].find(p.name); + if (it == cmd["params"].end()) { THROW_APP_EXCEPTION(err::kappe_missing_param, "missing parameter %s", p.name.c_str()); } params.push_back(it->get()); @@ -134,20 +134,27 @@ void TestPageItemMgr::processOnButton(json cmd) { } } void TestPageItemMgr::startReportState(int interval) { - if (m_thread) m_thread->wake(); + if (m_thread) { + m_thread->wake(); + return; + } m_thread.reset(new Thread("TestPageItemMgr", [this, interval]() { - while (!m_thread->getExitFlag()) { + logger->info("TestPageItemMgr thread start"); + ThisThread thisThread; + while (!thisThread.getExitFlag()) { json state = readState(); onState(state); - m_thread->sleepForMs(interval * 1000); + thisThread.sleepForMs(interval ); } + logger->info("TestPageItemMgr thread exit"); })); } void TestPageItemMgr::stopReportState() { if (m_thread) { m_thread->wake(); m_thread->join(); + m_thread = nullptr; } } json TestPageItemMgr::readState() {