|
@@ -25,8 +25,15 @@ namespace UnNomalized_node
|
|
|
private FormArrow m_form_arrow = new FormArrow();
|
|
|
Thread m_freash_arrow_thread = null;
|
|
|
bool m_bexit = false;
|
|
|
- //System.Windows.Forms.Timer m_timer = new System.Windows.Forms.Timer();
|
|
|
+ System.Windows.Forms.Timer m_timer = new System.Windows.Forms.Timer();
|
|
|
+ class LED_STATU
|
|
|
+ {
|
|
|
+ public LED_STATU() { }
|
|
|
+ public BroadcastSquareBoard.Entrance_statu entrance_statu;
|
|
|
+ public string set_disp_str;
|
|
|
+ }
|
|
|
|
|
|
+ LED_STATU m_last_led_statu=new LED_STATU();
|
|
|
public Form1()
|
|
|
{
|
|
|
InitializeComponent();
|
|
@@ -77,12 +84,12 @@ namespace UnNomalized_node
|
|
|
m_freash_arrow_thread = new Thread(fresh_image);
|
|
|
m_freash_arrow_thread.Start();
|
|
|
|
|
|
- /*m_timer.Tick += new EventHandler(HandleTime);
|
|
|
+ m_timer.Tick += new EventHandler(HandleTime);
|
|
|
//使timer可用
|
|
|
m_timer.Enabled = true;
|
|
|
//设置时间间隔,以毫秒为单位
|
|
|
m_timer.Interval = 100;//1s
|
|
|
- m_timer.Start();*/
|
|
|
+ m_timer.Start();
|
|
|
|
|
|
|
|
|
//this.Size = new System.Drawing.Size(1920, 1080);
|
|
@@ -103,62 +110,72 @@ namespace UnNomalized_node
|
|
|
//m_hk_camera.Camera.draw_image_to_wnd(pictureBox_camera.Handle);
|
|
|
//跟新led
|
|
|
update_led_screen();
|
|
|
+ Thread.Sleep(100);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ public void HandleTime(object sender, EventArgs e)
|
|
|
+ {
|
|
|
+ //跟新投影仪界面车辆信息
|
|
|
+ string car_number_str = "";
|
|
|
+ if (communication_data.Instance.car_license.IsTimeout() == false)
|
|
|
+ {
|
|
|
+ car_number_str = communication_data.Instance.car_license.Value;
|
|
|
+ }
|
|
|
|
|
|
- //跟新投影仪界面车辆信息
|
|
|
- string car_number_str = "";
|
|
|
- if (communication_data.Instance.car_license.IsTimeout() == false)
|
|
|
- {
|
|
|
- car_number_str = communication_data.Instance.car_license.Value;
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
- //显示车辆信息
|
|
|
- string car_info_str = " ";
|
|
|
- TimedData<Message.Ground_status_msg> lidar_statu = communication_data.Instance.lidar_statu;
|
|
|
- Message.Locate_information locate_info = lidar_statu.Value.LocateInformationRealtime;
|
|
|
- //
|
|
|
- if (lidar_statu.IsTimeout() == false)
|
|
|
+ //显示车辆信息
|
|
|
+ string car_info_str = " ";
|
|
|
+ TimedData<Message.Ground_status_msg> lidar_statu = communication_data.Instance.lidar_statu;
|
|
|
+ Message.Locate_information locate_info = lidar_statu.Value.LocateInformationRealtime;
|
|
|
+ //
|
|
|
+ if (m_form_arrow.m_last_moving_statu.STATU != null)
|
|
|
+ {
|
|
|
+ Message.Ground_status_msg statu = m_form_arrow.m_last_moving_statu.STATU;
|
|
|
+ car_info_str += string.Format("最近静止X:{0:0.000}m Y:{1:0.000}m 角度:{2:0.00}°" +
|
|
|
+ "轴距:{3:0.000}m 车宽:{4:0.000}m 前轮角:{5:0.00}°", statu.LocateInformationRealtime.LocateX,
|
|
|
+ statu.LocateInformationRealtime.LocateY, statu.LocateInformationRealtime.LocateAngle,
|
|
|
+ statu.LocateInformationRealtime.LocateWheelBase, statu.LocateInformationRealtime.LocateWheelWidth,
|
|
|
+ statu.LocateInformationRealtime.LocateFrontTheta);
|
|
|
+ }
|
|
|
+ if (lidar_statu.IsTimeout() == false)
|
|
|
+ {
|
|
|
+
|
|
|
+ if (lidar_statu.Value.GroundStatus == Ground_statu.CarCorrect
|
|
|
+ || lidar_statu.Value.GroundStatus == Ground_statu.CarBorderReached)
|
|
|
{
|
|
|
|
|
|
- if (lidar_statu.Value.GroundStatus == Ground_statu.CarCorrect
|
|
|
- || lidar_statu.Value.GroundStatus == Ground_statu.CarBorderReached)
|
|
|
+ if (locate_info != null)
|
|
|
{
|
|
|
|
|
|
- if (locate_info != null)
|
|
|
- {
|
|
|
+ car_info_str += string.Format("\n 当前实时X:{0:0.000}m Y:{1:0.000}m 角度:{2:0.00}°" +
|
|
|
+ "轴距:{3:0.000}m 车宽:{4:0.000}m 前轮角:{5:0.00}°", locate_info.LocateX,
|
|
|
+ locate_info.LocateY, locate_info.LocateAngle,
|
|
|
+ locate_info.LocateWheelBase, locate_info.LocateWheelWidth,
|
|
|
+ locate_info.LocateFrontTheta);
|
|
|
|
|
|
- car_info_str += string.Format("X:{0:0.000}m Y:{1:0.000}m 角度:{2:0.00}°" +
|
|
|
- "轴距:{3:0.000}m 车宽:{4:0.000}m 前轮角:{5:0.00}°", locate_info.LocateX,
|
|
|
- locate_info.LocateY, locate_info.LocateAngle,
|
|
|
- locate_info.LocateWheelBase, locate_info.LocateWheelWidth,
|
|
|
- locate_info.LocateFrontTheta);
|
|
|
-
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- //更新投影仪提示箭头
|
|
|
- this.Invoke((Action)(() =>
|
|
|
- {
|
|
|
- label_car_info.Text = car_info_str;
|
|
|
- car_number.Text = car_number_str + "\n" + "欢迎光临";
|
|
|
- m_form_arrow.Update_arrow();
|
|
|
- }));
|
|
|
- Thread.Sleep(100);
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
- public void HandleTime(object sender, EventArgs e)
|
|
|
- {
|
|
|
+
|
|
|
+ //更新投影仪提示箭头
|
|
|
+
|
|
|
+ label_car_info.Text = car_info_str;
|
|
|
+ car_number.Text = car_number_str + "\n" + "欢迎光临";
|
|
|
+ m_form_arrow.Update_arrow();
|
|
|
}
|
|
|
private void update_led_screen()
|
|
|
{
|
|
|
//刷新led屏
|
|
|
+ LED_STATU statu = new LED_STATU();
|
|
|
if (communication_data.Instance.parkspace_statu.IsTimeout())
|
|
|
{
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
- BroadcastSquareBoard.Entrance_statu.ENTRANCE_NOSIGNAL, false);
|
|
|
+ statu.entrance_statu = BroadcastSquareBoard.Entrance_statu.ENTRANCE_NOSIGNAL;
|
|
|
+ /* BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
+ BroadcastSquareBoard.Entrance_statu.ENTRANCE_NOSIGNAL, false);*/
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -171,46 +188,68 @@ namespace UnNomalized_node
|
|
|
{
|
|
|
if (terminal_statu.SinglechipData.InsideExistenceFlag == 1)
|
|
|
{
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
- BroadcastSquareBoard.Entrance_statu.ENTRANCE_OCCUPIED, false);
|
|
|
+ statu.entrance_statu = BroadcastSquareBoard.Entrance_statu.ENTRANCE_OCCUPIED;
|
|
|
+ /*BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
+ BroadcastSquareBoard.Entrance_statu.ENTRANCE_OCCUPIED, false);*/
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
- BroadcastSquareBoard.Entrance_statu.ENTRANCE_LEISURE, false);
|
|
|
+ statu.entrance_statu = BroadcastSquareBoard.Entrance_statu.ENTRANCE_LEISURE;
|
|
|
+ /* BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
+ BroadcastSquareBoard.Entrance_statu.ENTRANCE_LEISURE, false);*/
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//单片机无数据显示无连接
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
- BroadcastSquareBoard.Entrance_statu.ENTRANCE_NOSIGNAL, false);
|
|
|
+ statu.entrance_statu = BroadcastSquareBoard.Entrance_statu.ENTRANCE_NOSIGNAL;
|
|
|
+ /*BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
+ BroadcastSquareBoard.Entrance_statu.ENTRANCE_NOSIGNAL, false);*/
|
|
|
}
|
|
|
}
|
|
|
Message.Parkspace_allocation_status_msg parkspace_msg = communication_data.Instance.parkspace_statu.Value;
|
|
|
+
|
|
|
+ if (parkspace_msg.LargeParkspaceRemainingNumber != 0)
|
|
|
+ {
|
|
|
+ statu.set_disp_str = " 限高:2.00";
|
|
|
+ //BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(third_led);
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (parkspace_msg.MediumParkspaceRemainingNumber != 0)
|
|
|
+ {
|
|
|
+ statu.set_disp_str = " 限高:1.70";
|
|
|
+ // BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(third_led);
|
|
|
+ }
|
|
|
+ else if (parkspace_msg.SmallParkspaceRemainingNumber != 0)
|
|
|
+ {
|
|
|
+ statu.set_disp_str = " 限高:1.50";
|
|
|
+ // BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(third_led);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ statu.set_disp_str = " 车位已满";
|
|
|
+ statu.entrance_statu = BroadcastSquareBoard.Entrance_statu.ENTRANCE_FULL;
|
|
|
+ /*BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
+ BroadcastSquareBoard.Entrance_statu.ENTRANCE_FULL, false);
|
|
|
+ BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(" 车位已满");*/
|
|
|
+ }
|
|
|
+
|
|
|
+ if(m_last_led_statu.entrance_statu!=statu.entrance_statu)
|
|
|
+ {
|
|
|
+ BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(statu.entrance_statu, false);
|
|
|
+ m_last_led_statu.entrance_statu = statu.entrance_statu;
|
|
|
+ //Console.WriteLine("change statu " + statu.entrance_statu.ToString());
|
|
|
+ }
|
|
|
+ if(m_last_led_statu.set_disp_str!=statu.set_disp_str)
|
|
|
+ {
|
|
|
+ BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(statu.set_disp_str);
|
|
|
+ m_last_led_statu.set_disp_str = statu.set_disp_str;
|
|
|
+ //Console.WriteLine("change disp_str " + statu.set_disp_str);
|
|
|
+ }
|
|
|
|
|
|
- if (parkspace_msg.LargeParkspaceRemainingNumber != 0)
|
|
|
- {
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(" 限高:2.00");
|
|
|
- }
|
|
|
- else if (parkspace_msg.MediumParkspaceRemainingNumber != 0)
|
|
|
- {
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(" 限高:1.70");
|
|
|
- }
|
|
|
- else if (parkspace_msg.SmallParkspaceRemainingNumber != 0)
|
|
|
- {
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(" 限高:1.50");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
- BroadcastSquareBoard.Entrance_statu.ENTRANCE_FULL, false);
|
|
|
- BroadcastBoardManager.Instance.squareBoardList[0].set_disp_str(" 车位已满");
|
|
|
- }
|
|
|
|
|
|
-
|
|
|
}
|
|
|
private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
|
|
|
{
|
|
@@ -227,7 +266,7 @@ namespace UnNomalized_node
|
|
|
BroadcastBoardManager.Instance.squareBoardList[0].UpdateStatus(
|
|
|
BroadcastSquareBoard.Entrance_statu.ENTRANCE_NOSIGNAL, false);
|
|
|
m_bexit = true;
|
|
|
- //m_timer.Stop();
|
|
|
+ m_timer.Stop();
|
|
|
BroadcastBoardManager.Instance.Close();
|
|
|
if (m_freash_arrow_thread.IsAlive)
|
|
|
{
|