#pragma once #include "uappbase/appcfg/appcfg.hpp" #include "uappbase/appdep.hpp" #include "uappbase/bean/bean.hpp" // #include "app_protocols/ble_through/ble_proto.h" namespace iflytop { using namespace std; #define GSM GStateMgr::ins() #define CH_NUM 4 class GStateMgr { private: bool m_powerOn = true; /** * @brief 用户状态 */ char m_loginUsr[MAX_USR_NAME_SIZE + 1]; int m_loginUsrId = -1; user_role_t m_loginUsrType = kuser; bool m_isLogin = false; /** * @brief 遥控器状态 */ int32_t m_RemoterS; // 遥控器状态 1:在线,0:离线 char m_RemoterName[20]; /** * @brief 设备工作状态 */ hand_acid_mode_t m_RunMode = khand_acid_m_jog_mode; // 运行模式 bool m_pumpSelectState[CH_NUM] = {false}; // 选择的泵 /** * @brief 统计数据 */ float acidUsed[CH_NUM] = {0.0}; float acidRemain[CH_NUM] = {0.0}; zmutex m_mutex = {"GStateMgr"}; public: bool supperAdmin = false; public: static GStateMgr* ins() { static GStateMgr instance; return &instance; } void initialize(); /** * @brief powerOn * */ void setPowerOn(bool state) { m_powerOn = state; } bool getPowerOn() { return m_powerOn; } /** * @brief 用户状态 */ void setLogin(int loginUsrId, const char* usrName, user_role_t role); void setUnLogin(); bool isLogin(); user_role_t getLoginUsrType(); const char* getLoginUsr(); int getUserId(); /** * @brief 遥控器状态 */ void setRemoterS(int32_t state, const char* name); void setRemoterHeart(int32_t state, uint8_t * name); const char* getRemoterName(); /** * @brief 设备工作状态 */ void setRunMode(hand_acid_mode_t mode); void changeToNextRunMode(); void setPumpSelectState(int32_t index, bool state); int32_t getRemoterS(); hand_acid_mode_t getRunMode(); bool isHasPumpSelect(); bool getPumpSelectState(int32_t index); /** * @brief 统计数据 */ /** * @brief * * * 1.剩余量: * .补酸时修改 * .用酸时修改 * * 2.使用量: * .登录时初始化为零 * .使用时候修改,实时存储 * .登出时清零,并存储 * * 相关数据库 * .总量 * .使用记录 * * 1. * */ void setAcidRemain(int32_t index, float val); void setAcidUsed(int32_t index, float val); float getAcidRemain(int32_t index); float getAcidUsed(int32_t index); // void placeHolder() {} }; } // namespace iflytop