| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- #ifndef PDU_CTRL_H
- #define PDU_CTRL_H
- #include <QObject>
- #include <QMutex>
- #include <QGraphicsProxyWidget>
- #include <QGraphicsView>
- #include "widget.h"
- #define hightSmartPDU
- //#define RS485Type
- //#define RS485IpType
- 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
- };
- 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();
- void ReadPDUinit();
- void SetPDUInit();
- bool updateIniValue(const QString& filePath, const QString& section, const QString& key, const QString& newValue);
- 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);
- static pdu_Ctrl* m_instance;
- static QMutex mutex;
- WidgetType nViewShowType;//
- int nSettingType;//设置页面
- //记录三个按钮的状态
- int nButtonStatus[3];//上中下
- //当前显示页面ID
- int nChidIndex;
- int nChidPHIndex;
- int m_nAngle;
- int m_nSaveAngle;//配置文件中的数据
- //其他界面指针
- QGraphicsProxyWidget* m_pAngleCtrl;
- QGraphicsView* m_pView;
- Widget* m_pWidget;//主界面
- int m_nWidth;
- int m_nHeight;
- //modbus设置
- public:
- int m_nModbusSelect;
- int m_nModbusAddress;//从机地址
- int m_nModbusMSType;//主从
- int m_nSaveData;
- QString strSqliteAddress;
- int isT_ACType;
- int lastACIndex;
- int nMonway;//1:总检测 2:分监分控 3:分监不控
- };
- #endif // PDU_CTRL_H
|