Browse Source

update

storage-in-realtime
zhaohe 12 months ago
parent
commit
28af895090
  1. 25
      TESTCMD.md
  2. 4
      appsrc/service/test_page_mgr_service.cpp
  3. 17
      appsrc/service/testpage/test_page_processer.cpp

25
TESTCMD.md

@ -12,4 +12,29 @@
"timeStamp": 1234 "timeStamp": 1234
} }
```
### 启动上报
```json
{
"messageType": "Command",
"fnName": "startReportState",
"className": "TestPageMgrService",
"messageId":"1234",
"timeStamp": 1234
}
```
### 停止上报
```json
{
"messageType": "Command",
"fnName": "stopReportState",
"className": "TestPageMgrService",
"messageId":"1234",
"timeStamp": 1234
}
``` ```

4
appsrc/service/test_page_mgr_service.cpp

@ -89,9 +89,9 @@ void TestPageMgrService::initialize() {
}); });
m_testPageItemMgr.insertStates("heatingState", {"heatingTemperature", "heatingCurrent"}, [this](string stateName) { // m_testPageItemMgr.insertStates("heatingState", {"heatingTemperature", "heatingCurrent"}, [this](string stateName) { //
if (stateName == "temperature") {
if (stateName == "heatingTemperature") {
return "25"; return "25";
} else if (stateName == "current") {
} else if (stateName == "heatingCurrent") {
return "1.2"; return "1.2";
} }
return "error"; return "error";

17
appsrc/service/testpage/test_page_processer.cpp

@ -116,8 +116,8 @@ void TestPageItemMgr::processOnButton(json cmd) {
vector<string> params; vector<string> params;
for (auto& p : buttons->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()); THROW_APP_EXCEPTION(err::kappe_missing_param, "missing parameter %s", p.name.c_str());
} }
params.push_back(it->get<string>()); params.push_back(it->get<string>());
@ -134,20 +134,27 @@ void TestPageItemMgr::processOnButton(json cmd) {
} }
} }
void TestPageItemMgr::startReportState(int interval) { 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]() { 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(); json state = readState();
onState(state); onState(state);
m_thread->sleepForMs(interval * 1000);
thisThread.sleepForMs(interval );
} }
logger->info("TestPageItemMgr thread exit");
})); }));
} }
void TestPageItemMgr::stopReportState() { void TestPageItemMgr::stopReportState() {
if (m_thread) { if (m_thread) {
m_thread->wake(); m_thread->wake();
m_thread->join(); m_thread->join();
m_thread = nullptr;
} }
} }
json TestPageItemMgr::readState() { json TestPageItemMgr::readState() {

Loading…
Cancel
Save