MeasureTopicPublisher.cpp 912 B

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // Created by zx on 2019/11/25.
  3. //
  4. #include "MeasureTopicPublisher.h"
  5. #include "sys/time.h"
  6. #include "unistd.h"
  7. #include "math.h"
  8. MeasureTopicPublisher* MeasureTopicPublisher::g_publisher=0;
  9. MeasureTopicPublisher* MeasureTopicPublisher::GetInstance()
  10. {
  11. if(g_publisher==0)
  12. {
  13. g_publisher=new MeasureTopicPublisher(CONNECTSTRING);
  14. }
  15. return g_publisher;
  16. }
  17. MeasureTopicPublisher::MeasureTopicPublisher(std::string connectStr)
  18. {
  19. m_sock.bind(connectStr);
  20. gettimeofday(&m_last_time,0);
  21. }
  22. bool MeasureTopicPublisher::Publish(std::string data)
  23. {
  24. std::lock_guard<std::mutex> lk(m_lock);
  25. /*double tick=0;
  26. do{
  27. struct timeval tm;
  28. gettimeofday(&tm, 0);
  29. tick=fabs((tm.tv_sec-m_last_time.tv_sec)*1000.0+(tm.tv_usec-m_last_time.tv_usec)/1000.0);
  30. m_last_time=tm;
  31. }while(tick<10);*/
  32. usleep(100);
  33. return m_sock.send(data)==data.length();
  34. }