ComStatistics.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #include "ComStatistics.h"
  2. #include <QMutex>
  3. #include <QDateTime>
  4. #include <QFile>
  5. #include <QDir>
  6. #include <QTextStream>
  7. ComStatistics::ComStatistics(QString sensor_name):
  8. tag_name(sensor_name)
  9. {
  10. request_count = 0;
  11. crcerror_count = 0;
  12. timeout_count = 0;
  13. max_recvtime = 0;
  14. min_recvtime = 0;
  15. total_recvtime = 0;
  16. }
  17. void ComStatistics::ReQuestCount_increase()
  18. {
  19. request_count++;
  20. }
  21. void ComStatistics::CrcErrorCount_increase()
  22. {
  23. crcerror_count++;
  24. }
  25. void ComStatistics::TimeoutCount_increase()
  26. {
  27. timeout_count++;
  28. }
  29. void ComStatistics::Update_Recvtime(int ms)
  30. {
  31. if(ms > max_recvtime){
  32. max_recvtime = ms;
  33. }
  34. if(ms < min_recvtime){
  35. min_recvtime = ms;
  36. }
  37. total_recvtime += ms;
  38. }
  39. void ComStatistics::Save2File(QString filepath)
  40. {
  41. static QMutex mutex;
  42. mutex.lock();
  43. QString time=QDateTime::currentDateTime().toString(QString("[ yyyy-MM-dd HH:mm:ss:zzz ]"));
  44. QString mmsg;
  45. mmsg = time + "["+ tag_name +"]:";
  46. mmsg += "\r\n";
  47. QString requestString;
  48. requestString = "\t ReQuestCount:" + QString::number(request_count) + "\r\n";
  49. QString crcString;
  50. crcString = "\t CrcErrorCount:" + QString::number(crcerror_count) + "\r\n";
  51. QString timeoutString;
  52. timeoutString = "\t TimeoutCount:" + QString::number(timeout_count) + "\r\n";
  53. QString maxtimeString;
  54. maxtimeString = "\t max_Recvtime:" + QString::number(max_recvtime) + " ms\r\n";
  55. QString mintimeString;
  56. mintimeString = "\t min_Recvtime:" + QString::number(min_recvtime) + " ms\r\n";
  57. QString averagetimeString;
  58. averagetimeString = "\t Averagetime:" + QString::number(total_recvtime/request_count) + " ms\r\n";
  59. QFile file(filepath);
  60. file.open(QIODevice::ReadWrite | QIODevice::Append);
  61. QTextStream stream(&file);
  62. stream << mmsg;
  63. stream << requestString;
  64. stream << crcString;
  65. stream << timeoutString;
  66. stream << maxtimeString;
  67. stream << mintimeString;
  68. stream << averagetimeString;
  69. stream << "\r\n";
  70. file.flush();
  71. file.close();
  72. mutex.unlock();
  73. }