| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- #ifndef PDU_CTRL_H
- #define PDU_CTRL_H
- #include "common.h"
- #include "global.h"
- #include "widget.h"
- #include "qt_pdu_msgq.h"
- #define hightSmartPDU
- //#define RS485Type
- //#define RS485IpType
- //#define PDU_sys
- #define pduRun
- enum WidgetType
- {
- widgetType_Main=0, //轮询页面
- widgetType_Setting=1, //设置页面
- };
- enum WidgetMain_T_AC
- {
- WidgetMain_CH=0, //三项总
- WidgetMain_PHA=1, //A相
- WidgetMain_PHB=2, //B相
- WidgetMain_PHC=3, //C相
- };
- enum SettingMode
- {
- settingMode_Modbus=0,
- settingMode_LimitV=1,
- settingMode_LimitA=2,
- settingMode_IP=3,
- };
- enum BtnDownType
- {
- BtnDown_C=0,//点击
- BtnDown_D=1, //双击
- BtnDown_L=2, //长按
- BtnDown_Null=-1//清空
- };
- enum GPIOLED
- {
- GPIO_LED0=106,
- GPIO_LED1=105,
- #ifdef RS485Type
- GPIO_KEY1=160,
- GPIO_KEY2=161,
- GPIO_KEY3=162,
- GPIO_KEY4=103,
- #endif
- #ifdef hightSmartPDU
- GPIO_KEY1=102,
- GPIO_KEY2=101,
- GPIO_KEY3=104,
- GPIO_KEY4=103,
- GPIO_X=113,//方向传感器
- GPIO_Y=115//方向传感器
- #endif
- };
- /*
- QString g_product_type_str[] = {
- "SmartPDU(DC)",
- "SmartPDU(AC)",
- "SmartPDU(Tree_AC_Tree)",
- "SmartPDU(Tree_AC_One)",
- };*/
- struct CHOverMG
- {
- int nCHID;
- int nAddrID;
- int nAddrCHID;
- int nCHType;
- QString strName;
- GlobalOverManager OverData;
- };
- class qt_pdu_msgq;
- class pdu_Ctrl : public QObject
- {
- Q_OBJECT
- public:
- //单例初始化
- static pdu_Ctrl* instance() {
- QMutexLocker locker(&mutex);
- if (!m_instance) {
- static QMutex mutex;
- if (!m_instance) {
- m_instance = new pdu_Ctrl();
- }
- }
- return m_instance;
- }
- static void distory()
- {
- QMutexLocker locker(&mutex);
- if (m_instance) {
- delete m_instance;
- m_instance = nullptr;
- }
- }
- void InitData(Widget* pWidget,QGraphicsProxyWidget* pProxy ,QGraphicsView* pView,int nWidth, int nHeight);
- void ReadModbusInit();
- void SaveModbusInit();
- QSqlDatabase& getDB(){return m_db;}
- //
- int getPowerBoard(GlobalPowerCtrlBoard*& pPowerBoard){
- pPowerBoard= m_PowerBoard;
- return nPowerBoardSize;
- }
- void setPowerBoard(size_t nMaxData,GlobalPowerCtrlBoard* pPowerBoard)
- {
- m_PowerBoard=pPowerBoard;
- nPowerBoardSize=nMaxData;
- }
- void clearPowerBoard()
- {
- m_PowerBoard=nullptr;
- nPowerBoardSize=0;
- }
- //获取超限数据
- QMap<int,QMap<int,CHOverMG>>& getOverMG(){return m_chOverMG;}
- //更新或添加超限数据
- void AddOverMG(CHOverMG& pData);
- //获取报警信息
- PowerWarningInfo* getWarningData(int nAddrID,int nAddrCHID);
- //======设置所通道开关=======
- void setCHCtrl(int nCh,int nStatus);//-1则是全部控制
- private:
- //处理多个点
- void ButtonDown(int nButtonID, BtnDownType nDownType);
- //===================MAIN界面下按钮控制============================
- void Main_UPBtnSet(BtnDownType nbtnType);
- void Main_FunBtnSet(BtnDownType nbtnType);
- void Main_DownBtnSet(BtnDownType nbtnType);
- //===================SETTING界面下按钮控制=========================
- void Setting_UPBtnSet(BtnDownType nbtnType);
- void Setting_FunBtnSet(BtnDownType nbtnType);
- void Setting_DownBtnSet(BtnDownType nbtnType);
- //======切换视图=========
- void ChangeView(WidgetType widgetType,int nIndex);
- //======恢复出厂设置=========
- void ResetAll();
- void RestartSys();
- signals:
- public slots:
- void slot_setAngel(int nAngle);
- void slot_ClickBtn(int nButton);
- void slot_DClickBtn(int nButton);
- void slot_LClickBtn(int nButton);
- void slot_BtnClear(int nButton);
- private:
- //单例数据
- explicit pdu_Ctrl(QObject *parent = nullptr);
- ~pdu_Ctrl();
- static pdu_Ctrl* m_instance;
- static QMutex mutex;
- WidgetType nViewShowType;//
- int nSettingType;//设置页面
- //记录三个按钮的状态
- int nButtonStatus[3];//上中下
- //当前显示页面ID
- int nChidIndex;
- int nChidPHIndex;
- int m_nAngle;
- //其他界面指针
- QGraphicsProxyWidget* m_pAngleCtrl;
- QGraphicsView* m_pView;
- Widget* m_pWidget;
- int m_nWidth;
- int m_nHeight;
- //数据库类
- QSqlDatabase m_db;
- //共享数据类
- size_t nPowerBoardSize;
- GlobalPowerCtrlBoard* m_PowerBoard;
- //超限设置
- QMap<int,QMap<int,CHOverMG>> m_chOverMG;
- //modbus设置
- public:
- int m_nModbusSelect;
- int m_nModbusAddress;//从机地址
- int m_nModbusMSType;//主从
- int m_nSaveData;
- QString strSqliteAddress;
- int isT_ACType;
- int lastACIndex;
- qt_pdu_msgq* pMsgq;
- };
- #endif // PDU_CTRL_H
|