dataupdatethread.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. // int nLinkType; //连接类型
  35. // int nSignalLevel; //信号强度
  36. GlobalPowerCtrlBoard m_pData[];
  37. };
  38. class DataUpdateThread : public QThread
  39. {
  40. Q_OBJECT
  41. public:
  42. DataUpdateThread(QObject *parent);
  43. ~DataUpdateThread();
  44. void InitSql();
  45. void run();
  46. void ReadSqlData(int nCHID=0);
  47. void ReadMaxCh();
  48. bool CheckPowerBoard();
  49. //共享内存初始化
  50. int initShm();
  51. void deleteShm();
  52. void setShmChRead(int nCh,int nPhID);
  53. void ReadShmData();
  54. void ReadShmMaxch();
  55. int isT_ACType();//三相标志
  56. void initShmPowerBoard();
  57. void deleteShmPowerBoard();
  58. public:
  59. //窗口
  60. Widget* pwidget;
  61. MainWidget* pMainWidget;//5寸窗口
  62. //sql地址
  63. QString strSqliteAddress;
  64. bool isRunStats;
  65. bool isDBOpen;
  66. QString strV;
  67. QString strA;
  68. QString strW;
  69. QString strF;
  70. QString strS;
  71. QString strT;
  72. QString strH;
  73. QString strStatus;
  74. int nMaxCh;
  75. int nReadType;
  76. int shm_fd;
  77. int shm_PowerBord;
  78. int bTacStatus;
  79. smartPDU_shm_data* m_shmData;
  80. //电源数据
  81. smartPDU_shm_5_inch_data* pPowerBoard;
  82. int nTimeindex;
  83. };
  84. #endif // DATAUPDATETHREAD_H