From 82374fe4b32d58956810f445b7889f1a370f1ab9 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 27 十月 2025 15:26:13 +0800
Subject: [PATCH] #配置信号

---
 src/main/java/com/zy/core/model/protocol/RgvProtocol.java |  150 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 148 insertions(+), 2 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 a0bfe6d..d6d78f9 100644
--- a/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -1,6 +1,7 @@
 package com.zy.core.model.protocol;
 
 import com.zy.asrs.entity.BasRgv;
+import com.zy.asrs.entity.BasRgvErrorLog;
 import com.zy.core.enums.RgvModeType;
 import com.zy.core.enums.RgvStatusType;
 import lombok.Data;
@@ -36,6 +37,10 @@
      */
     public Short wrkTaskPri;
 
+    public Short wrkTaskMove1;
+
+    public Short wrkTaskMove2;
+
 
     /**
      * RGV褰撳墠鐘舵�佸伐浣�1
@@ -55,6 +60,10 @@
      * 宸ヤ綅1浠诲姟鍙�
      */
     public Integer taskNo1 = 0;
+    /**
+     * 宸ヤ綅1鐩爣绔�
+     */
+    public Integer staNo1 = 0;
 
     /**
      * RGV宸ヤ綅1褰撳墠鐘舵��
@@ -94,12 +103,12 @@
     public Short walkPos;
 
     /**
-     * 鎬ュ仠
+     * 鎬ュ仠瑙﹀彂
      */
     public Boolean err1;
 
     /**
-     * 鏈夌墿鏃犺祫鏂�
+     *
      */
     public Boolean err2;
 
@@ -128,11 +137,21 @@
      */
     public Boolean err7;
 
+    public Boolean err8;
+    public Boolean err9;
+    public Boolean err10;
+    public Boolean err11;
+    public Boolean err12;
+
     //////////////////////     宸ヤ綅2瀹氫箟   //////////////////////////////////////////////////
     /**
      * 宸ヤ綅2浠诲姟鍙�
      */
     public Integer taskNo2 = 0;
+    /**
+     * 宸ヤ綅1鐩爣绔�
+     */
+    public Integer staNo2 = 0;
 
     /**
      * RGV宸ヤ綅2褰撳墠鐘舵��
@@ -190,7 +209,51 @@
 
 
     ///////////////////////////////////////////////////////////////////////////////////////
+    //閰嶇疆淇″彿-----------------------------------------------------------------------------
+    // 鏁呴殰璇诲彇閿佸畾鏍囪
+    private boolean errorMk = false;
+    //鍐欏叆鏍囪
+    private boolean writeMk = true;
+    private Boolean chainForward1 = false;       // 閾炬潯鍓嶈繘 1
+    private Boolean chainReverse1 = false;       // 閾炬潯鍚庨�� 1
+    private Boolean inverterAlarm = false;       // 鍙橀鍣ㄦ姤璀�
+    private Boolean leftOverlimit2 = false;      // 宸﹁秴闄� 2
+    private Boolean rightOverlimit2 = false;     // 鍙宠秴闄� 2
+    private Boolean leftAtPosition2 = false;     // 宸﹀埌浣� 2
+    private Boolean rightAtPosition2 = false;    // 鍙冲埌浣� 2
+    private Boolean cargoSpeedReduction = false; // 璐х墿鍑忛��
+    private Boolean conveyorInverterAlarm2 = false; // 杈撻�佸彉棰戝櫒鎶ヨ 2
 
+    private Boolean emergencyStop = false;       // 鎬ュ仠瑙﹀彂
+    private Boolean slot1EmptyNoData = false;    // 1鍙蜂綅鏈夌墿鏃犺祫鏂�
+    private Boolean slot2EmptyNoData = false;    // 2鍙蜂綅鏈夌墿鏃犺祫鏂�
+    private Boolean commandErrorChainConflict = false; // 鍛戒护閿欒璧伴摼鏉″啿绐�
+    private Boolean targetPositionIssue = false; // 鐩爣浣嶄笅鍙戦敊璇�
+    private Boolean travelInverterError = false; // 璧拌鍙橀鍣ㄥ紓甯�
+    private Boolean photoelectric1Error = false; // 1鍙峰厜鐢靛紓甯�
+    private Boolean photoelectric2Error = false; // 2鍙峰厜鐢靛紓甯�
+    private Boolean timeoutConnectionWithLine = false; // 涓庤緭绾挎椂鎺ヨ秴鏃�
+    private Boolean leftRollerTimeout = false;    // 宸︿晶婊氱瓛杩愯瓒呮椂
+    private Boolean rightRollerTimeout = false;   // 鍙充晶婊氱瓛杩愯瓒呮椂
+    private Boolean rgvRunTimeout = false;        // rgv杩愯瓒呮椂
+    private Boolean position1ChainInverterError = false; // 1鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父
+    private Boolean position2ChainInverterError = false; // 2鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父
+    private Boolean frontRearLimit = false;      // 鍓嶅悗鏋侀檺浣�
+    private Boolean emergencyButton = false;     // 鎬ュ仠鎸夐挳
+    private Boolean forwardButton = false;       // 鍓嶈繘鎸夐挳
+    private Boolean reverseButton = false;       // 鍚庨��鎸夐挳
+    private Boolean localRemote = false;         // 鏈湴/杩滅▼
+    private Boolean reset = false;               // 澶嶄綅
+    private Boolean travelBrakeSwitch = false;   // 璧拌鎶遍椄寮�鍏抽挳
+    private Boolean travelSpeedLimitPhotoelectric = false; // 璧拌寮哄埗鍑忛�熷厜鐢�
+    private Boolean leftOverlimit1 = false;      // 宸﹁秴闄� 1
+    private Boolean rightOverlimit1 = false;     // 鍙宠秴闄� 1
+    private Boolean leftAtPosition1 = false;     // 宸﹀埌浣� 1
+    private Boolean rightAtPosition1 = false;    // 鍙冲埌浣� 1
+
+    private Boolean rightConveyor2 = false;      // 鍙宠緭閫� 2
+    private Boolean leftConveyor2 = false;       // 宸﹁緭閫� 2
+    //---------------------------------------------------------------------
     /**
      * 寮傚父鐮�
      */
@@ -225,6 +288,51 @@
      * 鍫嗗灈鏈虹疮璁¤蛋琛屾椂闀縣
      */
     public Float xDuration;
+
+
+    public BasRgvErrorLog toSqlModelError(){
+        BasRgvErrorLog basRgvErrorLog = new BasRgvErrorLog();
+        basRgvErrorLog.setRgvNo((int) RgvNo);// 璁惧鍙凤紙鍋囪鏈夊畾涔� siteId锛�
+        basRgvErrorLog.setChainForward1(chainForward1 ? "Y" : "N");       // 閾炬潯鍓嶈繘 1
+        basRgvErrorLog.setChainReverse1(chainReverse1 ? "Y" : "N");       // 閾炬潯鍚庨�� 1
+        basRgvErrorLog.setInverterAlarm(inverterAlarm ? "Y" : "N");       // 鍙橀鍣ㄦ姤璀�
+        basRgvErrorLog.setLeftOverlimit2(leftOverlimit2 ? "Y" : "N");      // 宸﹁秴闄� 2
+        basRgvErrorLog.setRightOverlimit2(rightOverlimit2 ? "Y" : "N");     // 鍙宠秴闄� 2
+        basRgvErrorLog.setLeftAtPosition2(leftAtPosition2 ? "Y" : "N");     // 宸﹀埌浣� 2
+        basRgvErrorLog.setRightAtPosition2(rightAtPosition2 ? "Y" : "N");    // 鍙冲埌浣� 2
+        basRgvErrorLog.setCargoSpeedReduction(cargoSpeedReduction ? "Y" : "N"); // 璐х墿鍑忛��
+        basRgvErrorLog.setConveyorInverterAlarm2(conveyorInverterAlarm2 ? "Y" : "N"); // 杈撻�佸彉棰戝櫒鎶ヨ 2
+        basRgvErrorLog.setEmergencyStop(emergencyStop ? "Y" : "N");       // 鎬ュ仠瑙﹀彂
+        basRgvErrorLog.setSlot1EmptyNoData(slot1EmptyNoData ? "Y" : "N");    // 1鍙蜂綅鏈夌墿鏃犺祫鏂�
+        basRgvErrorLog.setSlot2EmptyNoData(slot2EmptyNoData ? "Y" : "N");    // 2鍙蜂綅鏈夌墿鏃犺祫鏂�
+        basRgvErrorLog.setCommandErrorChainConflict(commandErrorChainConflict ? "Y" : "N"); // 鍛戒护閿欒璧伴摼鏉″啿绐�
+        basRgvErrorLog.setTargetPositionIssue(targetPositionIssue ? "Y" : "N"); // 鐩爣浣嶄笅鍙戦敊璇�
+        basRgvErrorLog.setTravelInverterError(travelInverterError ? "Y" : "N"); // 璧拌鍙橀鍣ㄥ紓甯�
+        basRgvErrorLog.setPhotoelectric1Error(photoelectric1Error ? "Y" : "N"); // 1鍙峰厜鐢靛紓甯�
+        basRgvErrorLog.setPhotoelectric2Error(photoelectric2Error ? "Y" : "N"); // 2鍙峰厜鐢靛紓甯�
+        basRgvErrorLog.setTimeoutConnectionWithLine(timeoutConnectionWithLine ? "Y" : "N"); // 涓庤緭绾挎椂鎺ヨ秴鏃�
+        basRgvErrorLog.setLeftRollerTimeout(leftRollerTimeout ? "Y" : "N");    // 宸︿晶婊氱瓛杩愯瓒呮椂
+        basRgvErrorLog.setRightRollerTimeout(rightRollerTimeout ? "Y" : "N");   // 鍙充晶婊氱瓛杩愯瓒呮椂
+        basRgvErrorLog.setRgvRunTimeout(rgvRunTimeout ? "Y" : "N");        // rgv杩愯瓒呮椂
+        basRgvErrorLog.setPosition1ChainInverterError(position1ChainInverterError ? "Y" : "N"); // 1鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父
+        basRgvErrorLog.setPosition2ChainInverterError(position2ChainInverterError ? "Y" : "N"); // 2鍙峰伐浣嶉摼鏉″彉棰戝櫒寮傚父
+        basRgvErrorLog.setFrontRearLimit(frontRearLimit ? "Y" : "N");      // 鍓嶅悗鏋侀檺浣�
+        basRgvErrorLog.setEmergencyButton(emergencyButton ? "Y" : "N");     // 鎬ュ仠鎸夐挳
+        basRgvErrorLog.setForwardButton(forwardButton ? "Y" : "N");       // 鍓嶈繘鎸夐挳
+        basRgvErrorLog.setReverseButton(reverseButton ? "Y" : "N");       // 鍚庨��鎸夐挳
+        basRgvErrorLog.setLocalRemote(localRemote ? "Y" : "N");         // 鏈湴/杩滅▼
+        basRgvErrorLog.setReset(reset ? "Y" : "N");               // 澶嶄綅
+        basRgvErrorLog.setTravelBrakeSwitch(travelBrakeSwitch ? "Y" : "N");   // 璧拌鎶遍椄寮�鍏抽挳
+        basRgvErrorLog.setTravelSpeedLimitPhotoelectric(travelSpeedLimitPhotoelectric ? "Y" : "N"); // 璧拌寮哄埗鍑忛�熷厜鐢�
+        basRgvErrorLog.setLeftOverlimit1(leftOverlimit1 ? "Y" : "N");      // 宸﹁秴闄� 1
+        basRgvErrorLog.setRightOverlimit1(rightOverlimit1 ? "Y" : "N");     // 鍙宠秴闄� 1
+        basRgvErrorLog.setLeftAtPosition1(leftAtPosition1 ? "Y" : "N");     // 宸﹀埌浣� 1
+        basRgvErrorLog.setRightAtPosition1(rightAtPosition1 ? "Y" : "N");    // 鍙冲埌浣� 1
+        basRgvErrorLog.setRightConveyor2(rightConveyor2 ? "Y" : "N");      // 鍙宠緭閫� 2
+        basRgvErrorLog.setLeftConveyor2(leftConveyor2 ? "Y" : "N");       // 宸﹁緭閫� 2
+
+        return basRgvErrorLog;
+    }
 
     public void setMode(Short mode) {
         this.mode = mode;
@@ -322,6 +430,44 @@
         return map.get(RgvPos);
     }
 
+    public Integer getRgvPosI2() {
+        // key: 绔欑偣鍙�  value: 鍩哄噯鐗╃悊浣嶇疆
+        Map<Integer, Integer> posMap = new HashMap<>();
+        posMap.put(1004, 6534);
+        posMap.put(1007, 33634);
+        posMap.put(1010, 75174);
+        posMap.put(1014, 102124);
+        posMap.put(1018, 138224);
+        posMap.put(1021, 178034);
+        posMap.put(1024, 219684);
+        posMap.put(1028, 246724);
+        posMap.put(1031, 288194);
+        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; // 鍏佽璇樊鑼冨洿
+
+        for (Map.Entry<Integer, Integer> entry : posMap.entrySet()) {
+            int site = entry.getKey();
+            int basePos = entry.getValue();
+            if (Math.abs(RgvPos - basePos) <= tolerance) {
+                return site;
+            }
+        }
+
+        return 0; // 娌″尮閰嶅埌绔欑偣
+    }
+
+
     @Override
     public RgvProtocol clone() {
         try {

--
Gitblit v1.9.1