From 13610d4b55fb5d2871a4f12e3e8df4ab86bf33f7 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期四, 17 十月 2024 16:01:55 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/controller/RgvController.java |   28 ++++++++++------------------
 src/main/java/com/zy/asrs/utils/Utils.java              |   24 +++++++++++++++++++++++-
 2 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/RgvController.java b/src/main/java/com/zy/asrs/controller/RgvController.java
index 33a715a..1f36c8c 100644
--- a/src/main/java/com/zy/asrs/controller/RgvController.java
+++ b/src/main/java/com/zy/asrs/controller/RgvController.java
@@ -11,6 +11,7 @@
 import com.zy.asrs.domain.vo.*;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.mapper.BasRgvErrMapper;
+import com.zy.asrs.service.BasDevpPositionService;
 import com.zy.asrs.service.BasRgvService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.service.impl.MainServiceImpl;
@@ -61,6 +62,8 @@
     private BasRgvService basRgvService;
     @Autowired
     private MainServiceImpl mainService;
+    @Autowired
+    private BasDevpPositionService basDevpPositionService;
 
     @PostMapping("/table/rgv/state")
     @ManagerAuth(memo = "RGV淇℃伅琛�")
@@ -343,7 +346,7 @@
             ringThroughParam.setIndex(rgv.getId());
 //            ringThroughParam.setIndex(i);
 //            double[] doubles = Utils.RingThroughXY2(1737000.0, NumUtils.GetRandomIntInRange(183));
-            double[] doubles = Utils.RingThroughXY2(1737000.0, rgvProtocol.RgvPos.doubleValue());
+            double[] doubles = Utils.RingThroughXYRgv(1737000.0, 1737000.0-rgvProtocol.RgvPos.doubleValue());
 //            double[] doubles = Utils.RingThroughXY2(183.0, 100*i );
 
             ringThroughParam.setValueX(doubles[0]-2.94);
@@ -359,24 +362,13 @@
 //    @ManagerAuth(memo = "绔欑偣淇℃伅")
     public R ringThroughDev(){
         List<RingThroughParam> result = new ArrayList<>();
-//        for (RgvSlave rgv : slaveProperties.getRgv()) {
-        for (int i = 1;i<10;i++) {
-//            // 鑾峰彇RGV淇℃伅
-//            RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
-//            if (rgvThread == null) {
-//                continue;
-//            }
-//            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-//            if (rgvProtocol == null) {
-//                continue;
-//            }
+        List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<>());
+        for (BasDevpPosition basDevpPosition : basDevpPositions){
             RingThroughParam ringThroughParam = new RingThroughParam();
-
-//            ringThroughParam.setIndex(rgv.getId());
-            ringThroughParam.setIndex(i);
-            double[] doubles = Utils.RingThroughXY2(183.0, 100*i );
-            ringThroughParam.setValueX(doubles[0]+2.94);
-            ringThroughParam.setValueY(doubles[1]+2.94);
+            ringThroughParam.setIndex(basDevpPosition.getDevNo());
+            double[] doubles = Utils.RingThroughXYSta(1737000.0, 1737000.0-basDevpPosition.getPlcPosition());
+            ringThroughParam.setValueX(doubles[0]+5);
+            ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1);
             result.add(ringThroughParam);
         }
         return R.ok().add(result);
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index f0955c7..fd24456 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -87,7 +87,7 @@
         return new double[]{x,y};
     }
 
-    public static double[] RingThroughXY2(double a,double b) {
+    public static double[] RingThroughXYRgv(double a,double b) {
         double l = b / a;
 
         // 鍦嗙殑宸茬煡鍙傛暟
@@ -109,5 +109,27 @@
         return new double[]{x, y};
     }
 
+    public static double[] RingThroughXYSta(double a,double b) {
+        double l = b / a;
+
+        // 鍦嗙殑宸茬煡鍙傛暟
+        double radius = 50; // 鍗婂緞涓�48
+//        double circumference = ; // 璁$畻鍦嗗懆闀�
+        double arcLength = 2 * Math.PI * radius * l; // 缁欏嚭鐨勫姬闀�
+
+        // 鍦嗗績鍧愭爣
+        double centerX = 55;
+        double centerY = 45;
+
+        // 姹傚姬搴�
+        double theta = arcLength / radius;
+
+        // 璁$畻鐐圭殑鍧愭爣
+        double x = 100-(centerX + radius * Math.cos(theta));
+        double y = centerY + radius * Math.sin(theta);
+
+        return new double[]{x, y};
+    }
+
 
 }

--
Gitblit v1.9.1