From 4e8bf084f8a04617a9f542099183b8d829fa7c4b Mon Sep 17 00:00:00 2001
From: patrick <patrick.xu@broconcentric.com>
Date: 星期五, 18 十月 2019 19:07:51 +0800
Subject: [PATCH] 1. 修改机器人通信协议及相关流程触发和操作

---
 src/Bro.Device.SeerAGV/SeerAGVDriver.cs |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/Bro.Device.SeerAGV/SeerAGVDriver.cs b/src/Bro.Device.SeerAGV/SeerAGVDriver.cs
index e64d17c..c5247c7 100644
--- a/src/Bro.Device.SeerAGV/SeerAGVDriver.cs
+++ b/src/Bro.Device.SeerAGV/SeerAGVDriver.cs
@@ -96,7 +96,7 @@
         byte[] buffer = new byte[1024];
 
         string currentPosition = "";
-        string CurrentPosition
+        public string CurrentPosition
         {
             get => currentPosition;
             set
@@ -105,13 +105,16 @@
                 {
                     currentPosition = value;
 
-                    OnAGVPositoinChanged?.Invoke(this, currentPosition);
+                    if (!string.IsNullOrWhiteSpace(currentPosition))
+                    {
+                        OnAGVPositoinChanged?.Invoke(this, currentPosition);
+                    }
                 }
             }
         }
 
         AGVTaskStatus taskStatus = AGVTaskStatus.None;
-        AGVTaskStatus TaskStatus
+        public AGVTaskStatus TaskStatus
         {
             get => taskStatus;
             set
@@ -119,7 +122,11 @@
                 if (taskStatus != value)
                 {
                     taskStatus = value;
-                    OnAGVTaskStatusChanged?.Invoke(this, taskStatus);
+
+                    if (taskStatus != AGVTaskStatus.None)
+                    {
+                        OnAGVTaskStatusChanged?.Invoke(this, taskStatus);
+                    }
                 }
             }
         }
@@ -219,8 +226,15 @@
             SendMsg(client_Guide, IConfig.GuidePort, msg);
         }
 
+        public void PauseTask()
+        {
+            SeerMessage msg = new SeerMessage((int)AGVCode.PauseTask, SID);
+            SendMsg(client_Guide, IConfig.GuidePort, msg);
+        }
+
         public void TaskOrder(string dest)
         {
+            CurrentPosition = "";
             SeerMessage msg = new SeerMessage((int)AGVCode.TaskOrder, SID, JsonConvert.SerializeObject(new { id = dest }));
             SendMsg(client_Guide, IConfig.GuidePort, msg);
         }

--
Gitblit v1.8.0