led_outlet.cpp 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. //
  2. // Created by huli on 2021/12/30.
  3. //
  4. #include "led_outlet.h"
  5. /*
  6. //更新车辆信息
  7. void Led_outlet::update_car_information(std::string car_licence, int unit_id, int outlet_id, Outlet_car_status outlet_car_status, int m_time_remaining)
  8. {
  9. auto iter = Led_outlet_show_map.begin();
  10. for (; iter != Led_outlet_show_map.end(); ++iter)
  11. {
  12. if ( iter->second.m_car_licence == car_licence )
  13. {
  14. iter->second.m_unit_id = unit_id;
  15. iter->second.m_outlet_id = outlet_id;
  16. iter->second.m_outlet_car_status = outlet_car_status;
  17. iter->second.m_time_remaining = m_time_remaining;
  18. break;
  19. }
  20. }
  21. if ( iter == Led_outlet_show_map.end() )
  22. {
  23. std::chrono::system_clock::time_point t_time = std::chrono::system_clock::now();
  24. Led_outlet_show_map[t_time] = Outlet_car_information();
  25. Led_outlet_show_map[t_time].m_car_licence = car_licence;
  26. Led_outlet_show_map[t_time].m_unit_id = unit_id;
  27. Led_outlet_show_map[t_time].m_outlet_id = outlet_id;
  28. Led_outlet_show_map[t_time].m_outlet_car_status = outlet_car_status;
  29. Led_outlet_show_map[t_time].m_time_remaining = m_time_remaining;
  30. }
  31. return;
  32. }
  33. //更新车辆信息
  34. void Led_outlet::update_car_information(std::string car_licence, Outlet_car_status outlet_car_status, int m_time_remaining)
  35. {
  36. auto iter = Led_outlet_show_map.begin();
  37. for (; iter != Led_outlet_show_map.end(); ++iter)
  38. {
  39. if ( iter->second.m_car_licence == car_licence )
  40. {
  41. iter->second.m_outlet_car_status = outlet_car_status;
  42. iter->second.m_time_remaining = m_time_remaining;
  43. break;
  44. }
  45. }
  46. if ( iter == Led_outlet_show_map.end() )
  47. {
  48. std::chrono::system_clock::time_point t_time = std::chrono::system_clock::now();
  49. Led_outlet_show_map[t_time] = Outlet_car_information();
  50. Led_outlet_show_map[t_time].m_car_licence = car_licence;
  51. Led_outlet_show_map[t_time].m_outlet_car_status = outlet_car_status;
  52. Led_outlet_show_map[t_time].m_time_remaining = m_time_remaining;
  53. }
  54. return;
  55. }
  56. //删除车辆信息
  57. void Led_outlet::delete_car_information(std::string car_licence)
  58. {
  59. auto iter = Led_outlet_show_map.begin();
  60. for (; iter != Led_outlet_show_map.end(); ++iter)
  61. {
  62. if ( iter->second.m_car_licence == car_licence )
  63. {
  64. Led_outlet_show_map.erase(iter);
  65. }
  66. }
  67. return;
  68. }
  69. std::string Led_outlet::get_show_string()
  70. {
  71. std::string t_result;
  72. for (auto iter = Led_outlet_show_map.begin(); iter != Led_outlet_show_map.end(); ++iter)
  73. {
  74. //时间字符串
  75. time_t tt = std::chrono::system_clock::to_time_t(iter->first);
  76. tm time_tm=*localtime(&tt);
  77. char strTime[100] = "";
  78. sprintf(strTime, "%02d:%02d:%02d", time_tm.tm_hour, time_tm.tm_min, time_tm.tm_sec);
  79. std::string t_time_string = strTime;
  80. //出口
  81. char t_char1 = 'A' + iter->second.m_unit_id-1;
  82. char t_buf1[256];
  83. if ( iter->second.m_outlet_id != -1 )
  84. {
  85. sprintf(t_buf1, "%c单元%d号出口", t_char1, iter->second.m_outlet_id);
  86. }
  87. else
  88. {
  89. sprintf(t_buf1, "%c单元 ", t_char1 );
  90. }
  91. std::string t_outlet_string = std::string(t_buf1);
  92. //取车状态
  93. std::string t_outlet_car_status_string ;
  94. switch ( iter->second.m_outlet_car_status )
  95. {
  96. case OUTLET_CAR_STATUS_UNKNOW:
  97. {
  98. t_outlet_car_status_string = "未知 ";
  99. break;
  100. }
  101. case OUTLET_CAR_STATUS_READY:
  102. {
  103. t_outlet_car_status_string = "准备中";
  104. break;
  105. }
  106. case OUTLET_CAR_STATUS_WORKING:
  107. {
  108. t_outlet_car_status_string = "工作中";
  109. break;
  110. }
  111. case OUTLET_CAR_STATUS_OVER:
  112. {
  113. t_outlet_car_status_string = "已完成";
  114. break;
  115. }
  116. case OUTLET_CAR_STATUS_FAULT:
  117. {
  118. t_outlet_car_status_string = "故障 ";
  119. break;
  120. }
  121. default:
  122. {
  123. t_outlet_car_status_string = "未知 ";
  124. break;
  125. }
  126. }
  127. //剩余时间
  128. char t_buf2[256];
  129. if ( iter->second.m_time_remaining != -1 )
  130. {
  131. sprintf(t_buf2, "剩余%d秒", iter->second.m_time_remaining);
  132. }
  133. else
  134. {
  135. sprintf(t_buf2, "剩余X秒");
  136. }
  137. std::string t_time_remaining_string = std::string(t_buf2);
  138. //字符串拼接
  139. t_result += t_time_string + " "
  140. + iter->second.m_car_licence + " 取到 "
  141. + t_outlet_string + " "
  142. + t_outlet_car_status_string + " "
  143. + t_time_remaining_string + "\\n";
  144. }
  145. return t_result;
  146. }
  147. */