dataupdatethread.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #ifndef DATAUPDATETHREAD_H
  2. #define DATAUPDATETHREAD_H
  3. #include "widget.h"
  4. #include "mainwidget.h"
  5. #include "global.h"
  6. #define SHM_NAME "/smartPDU_shm"
  7. #include "pdu_ctrl.h"
  8. struct smartPDU_shm_data
  9. {
  10. //电源数据
  11. int bPDUSet;
  12. int nSelectPowerCH;
  13. int nMaxCh;
  14. float fV;
  15. float fA;
  16. float fW;
  17. float fF;
  18. float fS;
  19. int nStatus;
  20. //传感器数据
  21. int nSelectSensor;
  22. float fT;//温度
  23. float fH;//湿度
  24. float fCO2;//co2
  25. char strVer[20];//版本号
  26. //三项数据
  27. int bT_ACType;//三相类型
  28. int nSelectPh;//当前通道的三相ph参数:0:A相 1:B相 2:C相 -1通道总计
  29. //报警列表 0表示空,1表示写入,2表示已确认可清空。
  30. int nTypeCtrlType[10];
  31. char strMSG[10][64];
  32. };
  33. //自定义共享内存类
  34. struct smartPDU_shm_5_inch_data
  35. {
  36. //电源数据
  37. pid_t nIPD;
  38. size_t array_size;
  39. // int nLinkType; //连接类型
  40. // int nSignalLevel; //信号强度
  41. GlobalPowerCtrlBoard m_pData[];
  42. };
  43. class DataUpdateThread : public QThread
  44. {
  45. Q_OBJECT
  46. public:
  47. DataUpdateThread(QObject *parent);
  48. ~DataUpdateThread();
  49. void InitSql();
  50. void run();
  51. void ReadSqlData(int nCHID=0);
  52. void ReadMaxCh();
  53. bool CheckPowerBoard();
  54. //共享内存初始化
  55. int initShm();
  56. void deleteShm();
  57. void setShmChRead(int nCh,int nPhID);
  58. void ReadShmData();
  59. void ReadShmMaxch();
  60. int isT_ACType();//三相标志
  61. void initShmPowerBoard();
  62. void deleteShmPowerBoard();
  63. public:
  64. //窗口
  65. Widget* pwidget;
  66. MainWidget* pMainWidget;//5寸窗口
  67. //sql地址
  68. QString strSqliteAddress;
  69. bool isRunStats;
  70. bool isDBOpen;
  71. QString strV;
  72. QString strA;
  73. QString strW;
  74. QString strF;
  75. QString strS;
  76. QString strT;
  77. QString strH;
  78. QString strStatus;
  79. int nMaxCh;
  80. int nReadType;
  81. int shm_fd;
  82. int shm_PowerBord;
  83. int bTacStatus;
  84. smartPDU_shm_data* m_shmData;
  85. //电源数据
  86. smartPDU_shm_5_inch_data* pPowerBoard;
  87. int nTimeindex;
  88. };
  89. #endif // DATAUPDATETHREAD_H