From de5978dd2f47fb313868e36b9f839e1fe3106fa3 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 5 Sep 2023 13:31:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BF=AE=E6=94=B9=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main_control_service.cpp | 41 ++++++++++++++++++++++++++++++++--------- src/main_control_service.hpp | 2 ++ 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/main_control_service.cpp b/src/main_control_service.cpp index 5718333..4276d24 100644 --- a/src/main_control_service.cpp +++ b/src/main_control_service.cpp @@ -30,6 +30,11 @@ static T jsonGet(json j) { return val; } +void MainControlService::dosystem(string order) { + logger->info("do:{}", order); + system(order.c_str()); +} + void MainControlService::initialize() { GET_TO_SERVICE(m_zconfig); // system("systemctl restart zchromium.service"); @@ -220,10 +225,10 @@ void MainControlService::processFrontEndMessage(weak_ptr webSocket, j if (cmdstr == "shutdown") { int delayms = jsonGet(cmd["delayms"]); logger->info("shutdown {} ms", delayms); - m_autoshutdownThread.reset(new Thread("autoShutdown", [delayms]() { + m_autoshutdownThread.reset(new Thread("autoShutdown", [delayms, this]() { ThisThread thisThread; thisThread.sleepForMs(delayms); - system("shutdown -h now"); + dosystem("shutdown -h now"); })); return; } @@ -231,10 +236,10 @@ void MainControlService::processFrontEndMessage(weak_ptr webSocket, j if (cmdstr == "shutdown") { int delayms = jsonGet(cmd["delayms"]); logger->info("shutdown {} ms", delayms); - m_autoshutdownThread.reset(new Thread("autoShutdown", [delayms]() { + m_autoshutdownThread.reset(new Thread("autoShutdown", [delayms, this]() { ThisThread thisThread; thisThread.sleepForMs(delayms); - system("shutdown -h now"); + dosystem("shutdown -h now"); })); return; } @@ -247,21 +252,39 @@ void MainControlService::processFrontEndMessage(weak_ptr webSocket, j "year":2023, "month":8, "day":25, +} +#endif + int32_t year = jsonGet(cmd["year"]); + int32_t month = jsonGet(cmd["month"]); + int32_t day = jsonGet(cmd["day"]); + logger->info("updateDate {} {} {}", year, month, day); + // date -s "2023-01-02 02:32:32" + dosystem(fmt::format("date -s \"{}{}{} `date +%T`\"", year, month, day).c_str()); + dosystem(fmt::format("hwclock -w").c_str()); + + return; + } + + if (cmdstr == "updateTime") { +#if 0 +{ + "command":"updateTime", + "messageId":"1111222333444555", "hour":11, "min":12, "second":13, } #endif - int32_t year = jsonGet(cmd["year"]); - int32_t month = jsonGet(cmd["month"]); - int32_t day = jsonGet(cmd["day"]); int32_t hour = jsonGet(cmd["hour"]); int32_t min = jsonGet(cmd["min"]); int32_t second = jsonGet(cmd["second"]); - logger->info("updateDate {} {} {} {}:{}:{}", year, month, day, hour, min, second); + logger->info("updateDate {}:{}:{}", hour, min, second); + // date -s "2023-01-02 02:32:32" + dosystem(fmt::format("date -s \"`date +%Y-%m-%d` {}:{}:{}\"", hour, min, second).c_str()); + dosystem(fmt::format("hwclock -w").c_str()); + return; } - /******************************************************************************* * 消毒相关指令 * *******************************************************************************/ diff --git a/src/main_control_service.hpp b/src/main_control_service.hpp index 2d20102..92ff745 100644 --- a/src/main_control_service.hpp +++ b/src/main_control_service.hpp @@ -90,5 +90,7 @@ class MainControlService : public enable_shared_from_this { void processFrontEndMessage(weak_ptr webSocket, json& cmd, json& receipt); json createSensorDataJson(); + + void dosystem(string order) ; }; } // namespace iflytop \ No newline at end of file