dataupdatethread.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  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. //三项数据
  25. int bT_ACType;//三相类型
  26. int nSelectPh;//当前通道的三相ph参数:0:A相 1:B相 2:C相 -1通道总计
  27. };
  28. //自定义共享内存类
  29. struct smartPDU_shm_5_inch_data
  30. {
  31. //电源数据
  32. pid_t nIPD;
  33. size_t array_size;
  34. GlobalPowerCtrlBoard m_pData[];
  35. };
  36. class DataUpdateThread : public QThread
  37. {
  38. Q_OBJECT
  39. public:
  40. DataUpdateThread(QObject *parent);
  41. ~DataUpdateThread();
  42. void InitSql();
  43. void run();
  44. void ReadSqlData(int nCHID=0);
  45. void ReadMaxCh();
  46. bool CheckPowerBoard();
  47. //共享内存初始化
  48. int initShm();
  49. void deleteShm();
  50. void setShmChRead(int nCh,int nPhID);
  51. void ReadShmData();
  52. void ReadShmMaxch();
  53. int isT_ACType();//三相标志
  54. void initShmPowerBoard();
  55. void deleteShmPowerBoard();
  56. public:
  57. //窗口
  58. Widget* pwidget;
  59. MainWidget* pMainWidget;//5寸窗口
  60. //sql地址
  61. QString strSqliteAddress;
  62. bool isRunStats;
  63. bool isDBOpen;
  64. QString strV;
  65. QString strA;
  66. QString strW;
  67. QString strF;
  68. QString strS;
  69. QString strT;
  70. QString strH;
  71. QString strStatus;
  72. int nMaxCh;
  73. int nReadType;
  74. int shm_fd;
  75. int shm_PowerBord;
  76. int bTacStatus;
  77. smartPDU_shm_data* m_shmData;
  78. //电源数据
  79. smartPDU_shm_5_inch_data* pPowerBoard;
  80. int nTimeindex;
  81. };
  82. #endif // DATAUPDATETHREAD_H