dataupdatethread.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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][50];
  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. public slots:
  65. void slot_ClickMSG();//确认msg
  66. public:
  67. //窗口
  68. Widget* pwidget;
  69. //sql地址
  70. QString strSqliteAddress;
  71. QSqlDatabase m_db;
  72. bool isRunStats;
  73. bool isDBOpen;
  74. QString strV;
  75. QString strA;
  76. QString strW;
  77. QString strF;
  78. QString strS;
  79. QString strT;
  80. QString strH;
  81. QString strCO2;
  82. QString strStatus;
  83. QString strVer;
  84. int nMaxCh;
  85. //读取状态:-1空删除,0
  86. int nReadType;
  87. int shm_fd;
  88. int bTacStatus;
  89. smartPDU_shm_data* m_shmData;
  90. //显示msg位置
  91. int nIndexMSG;
  92. QString strNowMSG;//当前显示的名字
  93. };
  94. #endif // DATAUPDATETHREAD_H