dataupdatethread.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #ifndef DATAUPDATETHREAD_H
  2. #define DATAUPDATETHREAD_H
  3. #include <QObject>
  4. #include <QThread>
  5. #include <QtSql>
  6. #include "widget.h"
  7. #include <QDebug>
  8. #define SHM_NAME "/smartPDU_shm"
  9. #include "pdu_ctrl.h"
  10. struct smartPDU_shm_data
  11. {
  12. //电源数据
  13. int bPDUSet;
  14. int nSelectPowerCH;
  15. int nMaxCh;
  16. float fV;
  17. float fA;
  18. float fW;
  19. float fF;
  20. float fS;
  21. int nStatus;
  22. //传感器数据
  23. int nSelectSensor;
  24. float fT;//温度
  25. float fH;//湿度
  26. float fCO2;//co2
  27. char strVer[20];//版本号
  28. //三项数据
  29. int bT_ACType;//三相类型
  30. int nSelectPh;//当前通道的三相ph参数:0:A相 1:B相 2:C相 -1通道总计
  31. };
  32. class DataUpdateThread : public QThread
  33. {
  34. Q_OBJECT
  35. public:
  36. DataUpdateThread(QObject *parent);
  37. ~DataUpdateThread();
  38. void InitSql();
  39. void run();
  40. void ReadSqlData(int nCHID=0);
  41. void ReadMaxCh();
  42. //共享内存初始化
  43. int initShm();
  44. void deleteShm();
  45. void setShmChRead(int nCh,int nPhID);
  46. void ReadShmData();
  47. void ReadShmMaxch();
  48. void ReadShmVer();
  49. int isT_ACType();//三相标志
  50. public:
  51. //窗口
  52. Widget* pwidget;
  53. //sql地址
  54. QString strSqliteAddress;
  55. QSqlDatabase m_db;
  56. bool isRunStats;
  57. bool isDBOpen;
  58. QString strV;
  59. QString strA;
  60. QString strW;
  61. QString strF;
  62. QString strS;
  63. QString strT;
  64. QString strH;
  65. QString strCO2;
  66. QString strStatus;
  67. QString strVer;
  68. int nMaxCh;
  69. int nReadType;
  70. int shm_fd;
  71. int bTacStatus;
  72. smartPDU_shm_data* m_shmData;
  73. };
  74. #endif // DATAUPDATETHREAD_H