From d47205c405d0a45d67b3abba5f24fcaf784ed207 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 28 Nov 2024 16:09:35 +0800 Subject: [PATCH] update --- ui/ui.h | 1 + usrc/uicontroler/base/ui_state.hpp | 3 ++- usrc/uicontroler/page/navi_page.cpp | 20 ++++++++++++++++---- usrc/uicontroler/page/popwin_page.cpp | 10 ++++++++-- usrc/uicontroler/ui_controler.hpp | 2 ++ 5 files changed, 29 insertions(+), 7 deletions(-) diff --git a/ui/ui.h b/ui/ui.h index 722c343..0b0b663 100644 --- a/ui/ui.h +++ b/ui/ui.h @@ -135,6 +135,7 @@ #define ob_navi_t2 25 #define ob_navi_muNone 26 #define ob_navi_lastPage 27 +#define ob_navi_powerOff 28 //muInterval.objs #define ob_muInterval_muInterval 0 #define ob_muInterval_t0 1 diff --git a/usrc/uicontroler/base/ui_state.hpp b/usrc/uicontroler/base/ui_state.hpp index c164efa..3c01b93 100644 --- a/usrc/uicontroler/base/ui_state.hpp +++ b/usrc/uicontroler/base/ui_state.hpp @@ -4,6 +4,7 @@ namespace iflytop { typedef enum { + UI_POP_WIN_TYPE_POWER_OFF_INFO, UI_POP_WIN_TYPE_INFO, UI_POP_WIN_TYPE_WARNING_INFO, UI_POP_WIN_TYPE_CONFIRM, @@ -24,6 +25,6 @@ class UIPublicState { static int getPopInfoNum(); static bool setLoadingState(bool state); - static bool getLoadingState() ; + static bool getLoadingState(); }; } // namespace iflytop \ No newline at end of file diff --git a/usrc/uicontroler/page/navi_page.cpp b/usrc/uicontroler/page/navi_page.cpp index db4a69e..a9fda96 100644 --- a/usrc/uicontroler/page/navi_page.cpp +++ b/usrc/uicontroler/page/navi_page.cpp @@ -1,5 +1,6 @@ // #include "db/dao/user_dao.hpp" +#include "service/statistics_sync_service.hpp" #include "ui/ui.h" #include "uicontroler/base/page_processer.hpp" namespace iflytop { @@ -50,7 +51,9 @@ static muInfoTable_t usrMuInfoTable = // .muInfo = { {ob_navi_muInterval, pg_muInterval}, // 加酸间隔 {ob_navi_muChangePwd, pg_muChangePasswd}, // 修改密码 - {ob_navi_muLoginOut, 0} // 退出登录 + {ob_navi_muLoginOut, 0}, // 退出登录 + {ob_navi_powerOff, 0} // 关机 + }}; // 库管菜单配置 static muInfoTable_t storeKeeperMuInfoTable = // @@ -61,7 +64,9 @@ static muInfoTable_t storeKeeperMuInfoTable = // {ob_navi_muChangePwd, pg_muChangePasswd}, // 修改密码 {ob_navi_muAcidTakeMgr, pg_muAcidDistMgr}, // 领酸管理 {ob_navi_muAcidUseRecd, pg_muAcidUseRecd}, // 用酸记录 - {ob_navi_muLoginOut, 0} // 退出登录 + {ob_navi_muLoginOut, 0}, // 退出登录 + {ob_navi_powerOff, 0} // 关机 + }}; // 管理员菜单配置 static muInfoTable_t adminMuInfoTable = // @@ -79,7 +84,8 @@ static muInfoTable_t adminMuInfoTable = // {ob_navi_muReCtlerBind, pg_muReCtlerBind}, // 手柄绑定 {ob_navi_muChangePwd, pg_muChangePasswd}, // 修改密码 {ob_navi_muDeviceInfo, pg_muDeviceInfo}, // 设备信息 - {ob_navi_muLoginOut, 0} // 退出登录 + {ob_navi_muLoginOut, 0}, // 退出登录 + {ob_navi_powerOff, 0} // 关机 }}; /*********************************************************************************************************************** @@ -144,7 +150,13 @@ class NaviPage : public IPageProcesser { if (curMuTable->muInfo[muIndex].page != 0) { UIControler::ins()->chpage(curMuTable->muInfo[muIndex].page, true); } else { - UIControler::ins()->chpage(pg_login, true); + UILoadingCxt cxt; + StatisticsSyncService::doSyncOnUnLoginOrPowerOff(); + if (curMuTable->muInfo[muIndex].bid == ob_navi_powerOff) { + UIControler::ins()->popPowerOffWin("已关机,请关闭设备电源"); + } else if (curMuTable->muInfo[muIndex].bid == ob_navi_muLoginOut) { + UIControler::ins()->chpage(pg_login, true); + } } } } diff --git a/usrc/uicontroler/page/popwin_page.cpp b/usrc/uicontroler/page/popwin_page.cpp index d92fa8a..084a8da 100644 --- a/usrc/uicontroler/page/popwin_page.cpp +++ b/usrc/uicontroler/page/popwin_page.cpp @@ -127,6 +127,8 @@ class PopWinPage : public IPageProcesser { UIControler::ins()->setTxt(thisPage, ob_popwin_popTil, "消息(%d)", messageNum); } else if (type == UI_POP_WIN_TYPE_FATAL_ERROR) { UIControler::ins()->setTxt(thisPage, ob_popwin_popTil, "错误(%d)", messageNum); + } else if (type == UI_POP_WIN_TYPE_POWER_OFF_INFO) { + UIControler::ins()->setTxt(thisPage, ob_popwin_popTil, "消息"); } } @@ -141,7 +143,7 @@ class PopWinPage : public IPageProcesser { void initPopWindowsInfo(UIPopInfo_t* info) { displayNum = UIPublicState::getPopInfoNum() + 1; - if (info->type == UI_POP_WIN_TYPE_INFO) { + if (info->type == UI_POP_WIN_TYPE_INFO || info->type == UI_POP_WIN_TYPE_POWER_OFF_INFO) { // 消息 updateTitle(info->type, displayNum); UIControler::ins()->sendcmd("p[%d].b[%d].pco=%d", thisPage, ob_popwin_popTil, 10591 /*蓝色*/); @@ -150,8 +152,12 @@ class PopWinPage : public IPageProcesser { UIControler::ins()->sendcmd("p[%d].b[%d].pco=%d", thisPage, ob_popwin_info, 0 /*黑色*/); visEx(ob_popwin_canclekey, 0); + if (info->type == UI_POP_WIN_TYPE_POWER_OFF_INFO) { + visEx(ob_popwin_confirmkey, 0); + } + } - } else if (info->type == UI_POP_WIN_TYPE_WARNING_INFO) { + else if (info->type == UI_POP_WIN_TYPE_WARNING_INFO) { // 警告消息 updateTitle(info->type, displayNum); UIControler::ins()->sendcmd("p[%d].b[%d].pco=%d", thisPage, ob_popwin_popTil, 63488 /*红色*/); diff --git a/usrc/uicontroler/ui_controler.hpp b/usrc/uicontroler/ui_controler.hpp index 8668c13..32324d6 100644 --- a/usrc/uicontroler/ui_controler.hpp +++ b/usrc/uicontroler/ui_controler.hpp @@ -85,6 +85,8 @@ class UIControler { void popFatalErrorWin(const char* info) { popWin(UI_POP_WIN_TYPE_FATAL_ERROR, info, nullptr); } void popConfirmWin(const char* info, function onConfirm) { popWin(UI_POP_WIN_TYPE_CONFIRM, info, onConfirm); } void popInfoWin(const char* info) { popWin(UI_POP_WIN_TYPE_INFO, info, nullptr); } + void popPowerOffWin(const char* info) { popWin(UI_POP_WIN_TYPE_POWER_OFF_INFO, info, nullptr); } + void setLoadingState(bool state) { { zlock_guard lg(m_cmdlock);