#ifndef DATAUPDATETHREAD_H #define DATAUPDATETHREAD_H #include #include #include #include "widget.h" #include #define SHM_NAME "/smartPDU_shm" #include "pdu_ctrl.h" struct smartPDU_shm_data { //电源数据 int bPDUSet; int nSelectPowerCH; int nMaxCh; float fV; float fA; float fW; float fF; float fS; int nStatus; //传感器数据 int nSelectSensor; float fT;//温度 float fH;//湿度 float fCO2;//co2 char strVer[20];//版本号 //三项数据 int bT_ACType;//三相类型 int nSelectPh;//当前通道的三相ph参数:0:A相 1:B相 2:C相 -1通道总计 }; class DataUpdateThread : public QThread { Q_OBJECT public: DataUpdateThread(QObject *parent); ~DataUpdateThread(); void InitSql(); void run(); void ReadSqlData(int nCHID=0); void ReadMaxCh(); //共享内存初始化 int initShm(); void deleteShm(); void setShmChRead(int nCh,int nPhID); void ReadShmData(); void ReadShmMaxch(); void ReadShmVer(); int isT_ACType();//三相标志 public: //窗口 Widget* pwidget; //sql地址 QString strSqliteAddress; QSqlDatabase m_db; bool isRunStats; bool isDBOpen; QString strV; QString strA; QString strW; QString strF; QString strS; QString strT; QString strH; QString strCO2; QString strStatus; QString strVer; int nMaxCh; int nReadType; int shm_fd; int bTacStatus; smartPDU_shm_data* m_shmData; }; #endif // DATAUPDATETHREAD_H