datacollectorcore.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "datacollectorcore.h"
  2. DataCollectorCore::DataCollectorCore(QObject *parent) : QObject(parent)
  3. {
  4. mqttIdx = 1;
  5. logthread = new logThread(this);
  6. logthread->start();
  7. dataSub = new DataCollectorSub(this);
  8. connect(dataSub,&DataCollectorSub::sendDevData,this,&DataCollectorCore::receiveDevData);
  9. dataPub = new DataCollectorPub(this);
  10. connect(dataPub,&DataCollectorPub::publishDevData,this,&DataCollectorCore::publishDevData);
  11. connect(dataPub,&DataCollectorPub::dataListLog,this,&DataCollectorCore::dataListLog);
  12. m_client = new QMQTT::Client(QHostAddress("47.98.201.73"),1883,this);
  13. connect(m_client,&QMQTT::Client::connected,this,&DataCollectorCore::onConnected);
  14. m_client->setUsername("usky");
  15. m_client->setPassword("usky");
  16. m_client->setCleanSession(true);
  17. m_client->connectToHost();
  18. }
  19. DataCollectorCore::~DataCollectorCore()
  20. {
  21. logthread->stop();
  22. dataPub->stop();
  23. }
  24. void DataCollectorCore::start()
  25. {
  26. dataPub->start();
  27. dataSub->start();
  28. }
  29. void DataCollectorCore::dataListLog(QString log)
  30. {
  31. logthread->appendData(log);
  32. }
  33. void DataCollectorCore::publishDevData(QByteArray data)
  34. {
  35. if((m_client->connectionState()==QMQTT::STATE_DISCONNECTED)||(m_client->connectionState()==QMQTT::STATE_INIT)){
  36. m_client->connectToHost();
  37. }
  38. m_client->publish(QMQTT::Message(mqttIdx++,"data-collector",data));
  39. if(mqttIdx > 9999)
  40. {
  41. mqttIdx = 1;
  42. }
  43. }
  44. void DataCollectorCore::onConnected()
  45. {
  46. printf("onConnected\n");
  47. }
  48. void DataCollectorCore::receiveDevData(QString topic,QByteArray data)
  49. {
  50. dataPub->devMessage(DevData(topic,data));
  51. }