dataupdatethread.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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. //报警列表 0表示空,1表示写入,2表示已确认可清空。
  32. int nTypeCtrlType[10];
  33. char strMSG[10][64];
  34. };
  35. enum MSGCtrlType
  36. {
  37. MSGCtrl_Null=0,
  38. MSGCtrl_Write=1,
  39. MSGCtrl_Click=2,
  40. MSGCtrl_ReWrite=3,
  41. };
  42. class DataUpdateThread : public QThread
  43. {
  44. Q_OBJECT
  45. public:
  46. DataUpdateThread(QObject *parent);
  47. ~DataUpdateThread();
  48. void InitSql();
  49. void run();
  50. void SetShowWidget(Widget* pShowWidget);
  51. void ReadSqlData(int nCHID=0);
  52. void ReadMaxCh();
  53. //共享内存初始化
  54. int initShm();
  55. void deleteShm();
  56. void setShmChRead(int nCh,int nPhID);
  57. void ReadShmData();
  58. void ReadShmMaxch();
  59. void ReadShmVer();
  60. int isT_ACType();//三相标志
  61. void ReadMSG();//获取报警提示
  62. int NextIndex();
  63. void ShowMSGWidget(QString strShowData);
  64. signals:
  65. void signal_ShowMSGWidget(QString strShowData);
  66. public slots:
  67. void slot_ClickMSG();//确认msg
  68. public:
  69. //窗口
  70. Widget* pwidget;
  71. //sql地址
  72. QString strSqliteAddress;
  73. QSqlDatabase m_db;
  74. bool isRunStats;
  75. bool isDBOpen;
  76. QString strV;
  77. QString strA;
  78. QString strW;
  79. QString strF;
  80. QString strS;
  81. QString strT;
  82. QString strH;
  83. QString strCO2;
  84. QString strStatus;
  85. QString strVer;
  86. int nMaxCh;
  87. //读取状态:-1空删除,0
  88. int nReadType;
  89. int shm_fd;
  90. int bTacStatus;
  91. smartPDU_shm_data* m_shmData;
  92. //显示msg位置
  93. int nIndexMSG;
  94. QString strNowMSG;//当前显示的名字
  95. };
  96. #endif // DATAUPDATETHREAD_H