TDAgent.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "TDAgent.h"
  2. #include "TDengine.h"
  3. TDengine objTD;
  4. TDAgent::TDAgent()
  5. : QObject()
  6. {
  7. }
  8. TDAgent::~TDAgent()
  9. {
  10. }
  11. void TDAgent::SubCB(const std::string topic, const std::string msg)
  12. {
  13. emit sigEvent(topic, msg);
  14. }
  15. bool TDAgent::Connect(tagSetup ts)
  16. {
  17. objTD.Setup(ts);
  18. return true;
  19. }
  20. bool TDAgent::Subscribe(std::list<std::string> topics)
  21. {
  22. bool ret = true;
  23. std::list<std::string>::iterator itr;
  24. for (itr = topics.begin(); itr != topics.end(); ++itr)
  25. {
  26. objTD.subscribe(itr->c_str(), this);
  27. }
  28. objTD.start();
  29. return ret;
  30. }
  31. void TDAgent::Publish(std::string szKey,QVariant v)
  32. {
  33. std::string szContent;
  34. switch( v.type() )
  35. {
  36. case QMetaType::Bool:
  37. szContent = v.toBool() ? "true":"false";
  38. break;
  39. case QMetaType::Int:
  40. szContent = std::to_string(v.toInt());
  41. break;
  42. case QMetaType::UInt:
  43. szContent = std::to_string(v.toUInt());
  44. break;
  45. case QMetaType::LongLong:
  46. szContent = std::to_string(v.toLongLong());
  47. break;
  48. case QMetaType::ULongLong:
  49. szContent = std::to_string(v.toULongLong());
  50. break;
  51. case QMetaType::Double:
  52. szContent = std::to_string(v.toDouble());
  53. break;
  54. case QMetaType::QString:
  55. szContent = v.toString().toLocal8Bit().toStdString();
  56. break;
  57. }
  58. // objRedis.publish(szKey.c_str(), szContent.c_str()); //把数据发送到对应主题
  59. }