front_terminal_manager.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading;
  6. using System.Threading.Tasks;
  7. using chutian_parking_terminal.data_buffer;
  8. using tool;
  9. namespace chutian_parking_terminal.front_terminal_manager
  10. {
  11. //终端管理 检查数据缓存
  12. class Front_terminal_manager : Singleton<Front_terminal_manager>
  13. {
  14. //状态枚举
  15. public enum front_terminal_manager_statu
  16. {
  17. TERMINAL_MANAGER_UNKNOW = 0,//未知
  18. TERMINAL_MANAGER_INIT = 1,//初始化
  19. TERMINAL_MANAGER_READY = 2,//准备
  20. TERMINAL_MANAGER_ERROR = 3,//错误
  21. };
  22. private Front_terminal_manager()
  23. {
  24. m_check_data_buffer_condition = false;
  25. m_check_data_buffer_thread = new Thread(check_data_buffer_thread);
  26. m_ground_radar_data_bufferr = new Ground_radar_data_buffer();
  27. m_parkspace_status_data_buffer = new Parkspace_status_data_buffer();
  28. m_singlechip_data_buffer = new Singlechip_data_buffer();
  29. m_tip_data_bufferr = new Tip_data_buffer();
  30. m_unnormalized_module_data_buffer = new Unnormalized_module_data_buffer();
  31. m_event_exit = new EventWaitHandle(false, EventResetMode.ManualReset);
  32. }
  33. /// <summary>
  34. /// 初始化(取车单片机连接数)
  35. /// </summary>
  36. public void front_terminal_manager_init(int t_connect_count)
  37. {
  38. m_statu = front_terminal_manager_statu.TERMINAL_MANAGER_INIT;
  39. m_ground_radar_data_bufferr.ground_radar_data_buffer_init();
  40. m_singlechip_data_buffer.singlechip_data_buffer_init(t_connect_count);
  41. m_check_data_buffer_thread.Start();
  42. }
  43. /// <summary>
  44. /// 反初始化
  45. /// </summary>
  46. /// <param name="t_connect_count"></param>
  47. public void front_terminal_manager_uninit()
  48. {
  49. m_statu = front_terminal_manager_statu.TERMINAL_MANAGER_UNKNOW;
  50. m_check_data_buffer_condition = false;
  51. m_check_data_buffer_thread.Abort();
  52. }
  53. /// <summary>
  54. /// 检查数据缓存线程函数
  55. /// </summary>
  56. public void check_data_buffer_thread()
  57. {
  58. while (m_check_data_buffer_condition && !m_event_exit.WaitOne(1))
  59. {
  60. if (m_check_data_buffer_condition)
  61. {
  62. }
  63. }
  64. }
  65. /// <summary>
  66. /// 检查状态
  67. /// </summary>
  68. /// <returns></returns>
  69. public bool check_statu()
  70. {
  71. if (m_statu == front_terminal_manager_statu.TERMINAL_MANAGER_READY)
  72. {
  73. return true;
  74. }
  75. return false;
  76. }
  77. /// <summary>
  78. /// 获取雷达数据
  79. /// </summary>
  80. /// <returns></returns>
  81. public Ground_radar_data_buffer get_ground_radar_data_buffer()
  82. {
  83. return m_ground_radar_data_bufferr;
  84. }
  85. /// <summary>
  86. /// 获取车位状态数据
  87. /// </summary>
  88. /// <returns></returns>
  89. public Parkspace_status_data_buffer get_parkspace_status_data_buffer()
  90. {
  91. return m_parkspace_status_data_buffer;
  92. }
  93. /// <summary>
  94. /// 获取单片机数据
  95. /// </summary>
  96. /// <returns></returns>
  97. public Singlechip_data_buffer get_singlechip_data_bufferr()
  98. {
  99. return m_singlechip_data_buffer;
  100. }
  101. /// <summary>
  102. /// 获取非标节点数据
  103. /// </summary>
  104. /// <returns></returns>
  105. public Unnormalized_module_data_buffer get_unnormalized_module_data_bufferr()
  106. {
  107. return m_unnormalized_module_data_buffer;
  108. }
  109. /// <summary>
  110. /// 获取提示消息数据
  111. /// </summary>
  112. /// <returns></returns>
  113. public Tip_data_buffer get_tip_data_buffer()
  114. {
  115. return m_tip_data_bufferr;
  116. }
  117. //检查数据缓存线程
  118. protected Thread m_check_data_buffer_thread;
  119. //数据缓存线程条件变量
  120. protected bool m_check_data_buffer_condition;
  121. //状态
  122. protected front_terminal_manager_statu m_statu;
  123. //雷达数据缓存
  124. protected Ground_radar_data_buffer m_ground_radar_data_bufferr;
  125. //车位状态数据缓存
  126. protected Parkspace_status_data_buffer m_parkspace_status_data_buffer;
  127. //单片机数据缓存
  128. protected Singlechip_data_buffer m_singlechip_data_buffer;
  129. //提示信息数据缓存
  130. protected Tip_data_buffer m_tip_data_bufferr;
  131. //非标节点数据缓存
  132. protected Unnormalized_module_data_buffer m_unnormalized_module_data_buffer;
  133. protected EventWaitHandle m_event_exit; //防止CPU卡死
  134. }
  135. }