#ifndef DATAUPDATETHREAD_H #define DATAUPDATETHREAD_H #include "widget.h" #include "mainwidget.h" #include "global.h" #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通道总计 //报警列表 0表示空,1表示写入,2表示已确认可清空。 int nTypeCtrlType[10]; char strMSG[10][64]; }; //自定义共享内存类 struct smartPDU_shm_5_inch_data { //电源数据 pid_t nIPD; size_t array_size; // int nLinkType; //连接类型 // int nSignalLevel; //信号强度 GlobalPowerCtrlBoard m_pData[]; }; class DataUpdateThread : public QThread { Q_OBJECT public: DataUpdateThread(QObject *parent); ~DataUpdateThread(); void InitSql(); void run(); void ReadSqlData(int nCHID=0); void ReadMaxCh(); bool CheckPowerBoard(); //共享内存初始化 int initShm(); void deleteShm(); void setShmChRead(int nCh,int nPhID); void ReadShmData(); void ReadShmMaxch(); int isT_ACType();//三相标志 void initShmPowerBoard(); void deleteShmPowerBoard(); public: //窗口 Widget* pwidget; MainWidget* pMainWidget;//5寸窗口 //sql地址 QString strSqliteAddress; bool isRunStats; bool isDBOpen; QString strV; QString strA; QString strW; QString strF; QString strS; QString strT; QString strH; QString strStatus; int nMaxCh; int nReadType; int shm_fd; int shm_PowerBord; int bTacStatus; smartPDU_shm_data* m_shmData; //电源数据 smartPDU_shm_5_inch_data* pPowerBoard; int nTimeindex; }; #endif // DATAUPDATETHREAD_H