林豪 左 3 jaren geleden
bovenliggende
commit
52dbf7b282
1 gewijzigde bestanden met toevoegingen van 19 en 4 verwijderingen
  1. 19 4
      Projects/永冠OPP/WCS.Service/Extensions/DeviceExtension.cs

+ 19 - 4
Projects/永冠OPP/WCS.Service/Extensions/DeviceExtension.cs

@@ -163,7 +163,7 @@ namespace WCS.Service.Extensions
         /// <returns></returns>
         public float Distance(RGVDevice rgv)
         {
-            return Math.Abs((Position - rgv.Position) % Length);
+            return DevEX.Distance(Position, rgv.Position, Length);
         }
 
         /// <summary>
@@ -173,7 +173,7 @@ namespace WCS.Service.Extensions
         /// <returns></returns>
         public float Distance(StationDeviceGroup dev)
         {
-            return Math.Abs((Position - dev.Position) % Length);
+            return DevEX.Distance(Position, dev.Position, Length);
         }
 
         /// <summary>
@@ -419,7 +419,7 @@ namespace WCS.Service.Extensions
         /// <returns></returns>
         public float Distance(RGVDevice after)
         {
-            return Math.Abs((Position - after.Position) % Length);
+            return DevEX.Distance(Position, after.Position, Length);
         }
 
         /// <summary>
@@ -780,8 +780,23 @@ namespace WCS.Service.Extensions
     /// <summary>
     /// 异常处理
     /// </summary>
-    public static class ExceptionEX
+    public static class DevEX
     {
+        /// <summary>
+        /// 计算两点距离
+        /// </summary>
+        /// <param name="start">起始点</param>
+        /// <param name="end">结束点</param>
+        /// <param name="total">总长</param>
+        /// <returns></returns>
+        public static float Distance(float start, float end, float total)
+        {
+            float distance = 0;
+            if (start > end) distance = (total - start) + end;
+            else distance = end - start;
+            return distance;
+        }
+
         public static void DoExceptionEX(this DoException ex, WCS_DEVICE Entity)
         {
             InfoLog.INFO_INFO($"[{Entity.CODE}]--{ex.Message}");