From 7c264be282c33feedbd4478f7e674ebac8fd55db Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期六, 21 三月 2026 15:39:22 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/model/protocol/RgvProtocol.java | 80 +++++++++++++++++++++++++---------------
1 files changed, 50 insertions(+), 30 deletions(-)
diff --git a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
index be7cb68..e92e36b 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -430,8 +430,30 @@
return map.get(RgvPos);
}
+ // 涓婁竴娆′綅缃紙鐢ㄤ簬闃茶烦鍙橈級
+ private Integer lastRgvPos1 = null;
+ private Integer lastRgvPos2 = null;
+
+ // ================= 鍏叡鏂规硶 =================
+ private Integer getClosestSite(int rgvPos, Map<Integer, Integer> posMap, int tolerance) {
+ int minDiff = Integer.MAX_VALUE;
+ Integer result = 0;
+
+ for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
+ int diff = Math.abs(rgvPos - entry.getValue());
+ if (diff < minDiff) {
+ minDiff = diff;
+ result = entry.getKey();
+ }
+ }
+
+ // 鈿狅笍 涓嶅啀杩斿洖0锛屽己鍒惰繑鍥炴渶杩戠偣
+ return result;
+ }
+
+ // ================= RGV1 =================
public Integer getRgvPosI1() {
- // key: 绔欑偣鍙� value: 鍩哄噯鐗╃悊浣嶇疆
+
Map<Integer, Integer> posMap = new HashMap<>();
posMap.put(1004, 6534);
posMap.put(1007, 33634);
@@ -444,44 +466,42 @@
posMap.put(1031, 288194);
posMap.put(1035, 314954);
+ int tolerance = 500;
-
- int tolerance = 200; // 鍏佽璇樊鑼冨洿
-
- for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
- int site = entry.getKey();
- int basePos = entry.getValue();
- if (Math.abs(RgvPos - basePos) <= tolerance) {
- return site;
- }
+ // ========= 寮傚父淇濇姢 =========
+ if (RgvPos < 0 || RgvPos > 400000) {
+ return 0;
}
- return 0; // 娌″尮閰嶅埌绔欑偣
+ lastRgvPos1 = RgvPos;
+
+ return getClosestSite(RgvPos, posMap, tolerance);
}
+
+ // ================= RGV2 =================
public Integer getRgvPosI2() {
- // key: 绔欑偣鍙� value: 鍩哄噯鐗╃悊浣嶇疆
+
Map<Integer, Integer> posMap = new HashMap<>();
- posMap.put(2003, 314954);
- posMap.put(2006, 288094);
- posMap.put(2009, 246574);
- posMap.put(2012, 219584);
- posMap.put(2015, 177934);
- posMap.put(2018, 138126);
- posMap.put(2021, 102124);
- posMap.put(2024, 75174);
- posMap.put(2027, 33748);
- posMap.put(2030, 6449);
- int tolerance = 200; // 鍏佽璇樊鑼冨洿
+ posMap.put(2030, 314954);
+ posMap.put(2027, 288094);
+ posMap.put(2024, 246574);
+ posMap.put(2021, 219584);
+ posMap.put(2018, 177934);
+ posMap.put(2015, 138126);
+ posMap.put(2012, 102124);
+ posMap.put(2009, 75174);
+ posMap.put(2006, 33748);
+ posMap.put(2003, 6449);
- for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
- int site = entry.getKey();
- int basePos = entry.getValue();
- if (Math.abs(RgvPos - basePos) <= tolerance) {
- return site;
- }
+ int tolerance = 500;
+
+ // ========= 寮傚父淇濇姢 =========
+ if (RgvPos < 0 || RgvPos > 400000) {
+ return 0;
}
+ lastRgvPos2 = RgvPos;
- return 0; // 娌″尮閰嶅埌绔欑偣
+ return getClosestSite(RgvPos, posMap, tolerance);
}
--
Gitblit v1.9.1