From aa759e28b7f93b16c3d8dc5d3313e4bd485e4401 Mon Sep 17 00:00:00 2001
From: yxFwq <1>
Date: 星期三, 08 一月 2025 13:57:36 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/JarThread.java |  113 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 99 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/JarThread.java b/src/main/java/com/zy/core/thread/JarThread.java
index 9471b80..70b4af7 100644
--- a/src/main/java/com/zy/core/thread/JarThread.java
+++ b/src/main/java/com/zy/core/thread/JarThread.java
@@ -20,7 +20,6 @@
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.JarSlave;
 import com.zy.core.model.Task;
-import com.zy.core.model.command.CrnCommand;
 import com.zy.core.model.command.JarCommand;
 import com.zy.core.model.protocol.JarProtocol;
 import lombok.Data;
@@ -64,7 +63,7 @@
                         break;
                     // 鍐欐暟鎹� ID+鐩爣绔�
                     case 2:
-                        write(null);
+                        write((JarCommand) task.getData());
                         break;
                     default:
                         break;
@@ -119,14 +118,34 @@
     private void readStatus(){
         try {
             if (slave.getId()>4){
-                return;
-            }
-            OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 26);
-            if (result.IsSuccess) {
                 if (null == jarProtocol) {
                     jarProtocol = new JarProtocol();
                     jarProtocol.setJarNo(slave.getId());
                 }
+                jarProtocol.setJarNo(slave.getId());
+                jarProtocol.setMode(2);//妯″紡
+                jarProtocol.setStatus((short)0);//鐘舵��
+                jarProtocol.setAutoing(true);//鑷姩
+
+                jarProtocol.setRightDoor(true);//宸﹂棬鐘舵��  //鍑烘枡闂�
+                jarProtocol.setLeftDoor(true);//鍙抽棬鐘舵��  //杩涙枡闂�
+
+                jarProtocol.setLeftDoorOpen(0);//open the left door  //杩涙枡闂�
+                jarProtocol.setLeftDoorClose(0);//close the left door  //杩涙枡闂�
+                jarProtocol.setRightDoorOpen(0);//open the right door  //鍑烘枡闂�
+                jarProtocol.setRightDoorClose(0);//close the right door  //鍑烘枡闂�
+
+                jarProtocol.setJarTemperature(0.0F);
+                return;
+            }
+            OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 30);
+            OperateResultExOne<byte[]> result338 = siemensS7Net.Read("V338", (short) 4);
+            if (result.IsSuccess && result338.IsSuccess) {
+                if (null == jarProtocol) {
+                    jarProtocol = new JarProtocol();
+                    jarProtocol.setJarNo(slave.getId());
+                }
+                jarProtocol.setJarNo(slave.getId());
                 if (slave.getId() == 1 || slave.getId() == 3){
                     jarProtocol.setRightDoor(siemensS7Net.getByteTransform().TransInt16(result.Content, 0) != 0);//宸﹂棬鐘舵��  //鍑烘枡闂�
                     jarProtocol.setLeftDoor(siemensS7Net.getByteTransform().TransInt16(result.Content, 2) != 0);//鍙抽棬鐘舵��  //杩涙枡闂�
@@ -153,8 +172,74 @@
                 jarProtocol.setMode((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 12));//妯″紡
                 jarProtocol.setJarErr((int)siemensS7Net.getByteTransform().TransInt16(result.Content, 14));//寮傚父鐮�
                 jarProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 16));//鐘舵��
+                jarProtocol.setJarTemperature(siemensS7Net.getByteTransform().TransSingle(result.Content, 26));//娓╁害
+
+                jarProtocol.setJarPressure(siemensS7Net.getByteTransform().TransSingle(result338.Content, 0));//鍘嬪姏
 
                 jarProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 12) == 2);//鑷姩
+
+//                if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+//                    jarProtocol.setHoldingSign(!jarProtocol.getStatus().equals(jarProtocol.getUpStatus()));
+//                } else
+                if (jarProtocol.statusType .equals(JarStatusType.SOS2)){
+                    jarProtocol.setHoldingSign(!jarProtocol.getStatus().equals(jarProtocol.getUpStatus()));
+                    if (!jarProtocol.rightDoorClose.equals(jarProtocol.leftDoorClose)) {
+                        if (jarProtocol.rightDoorClose == 0 || jarProtocol.leftDoorClose == 0){
+                            if (jarProtocol.rightDoorClose == 2 || jarProtocol.leftDoorClose == 2){
+                                jarProtocol.setLeftDoorClose(0);//close the left door  //杩涙枡闂�
+                                jarProtocol.setRightDoorClose(0);//close the right door  //鍑烘枡闂�
+                            }
+                        }
+                        if (jarProtocol.rightDoorOpen == 0 || jarProtocol.leftDoorOpen == 0){
+                            if (jarProtocol.rightDoorOpen == 2 || jarProtocol.leftDoorOpen == 2){
+                                jarProtocol.setLeftDoorOpen(0);//open the left door  //杩涙枡闂�
+                                jarProtocol.setRightDoorOpen(0);//open the right door  //鍑烘枡闂�
+                            }
+                        }
+                    }
+                } else if (jarProtocol.statusType .equals(JarStatusType.WAITING3) || jarProtocol.statusType .equals(JarStatusType.WAITING4)){
+                    jarProtocol.setOpenDoorSign(!jarProtocol.getStatus().equals(jarProtocol.getUpStatus()));
+                } else if (jarProtocol.statusType .equals(JarStatusType.WAITING5) || jarProtocol.statusType .equals(JarStatusType.OFF_LINE)){
+                    jarProtocol.setCloseDoorSign(!jarProtocol.getStatus().equals(jarProtocol.getUpStatus()));
+                } else if (jarProtocol.statusType .equals(JarStatusType.WAITING2)){
+                    if (jarProtocol.rightDoorOpen == 2 || jarProtocol.leftDoorOpen == 2){
+                        jarProtocol.setLeftDoorOpen(0);//open the left door  //杩涙枡闂�
+                        jarProtocol.setRightDoorOpen(0);//open the right door  //鍑烘枡闂�
+                    }
+                    if (jarProtocol.rightDoorClose == 2 || jarProtocol.leftDoorClose == 2){
+                        jarProtocol.setLeftDoorClose(0);//close the left door  //杩涙枡闂�
+                        jarProtocol.setRightDoorClose(0);//close the right door  //鍑烘枡闂�
+                    }
+                } else if (jarProtocol.statusType .equals(JarStatusType.WAITING1) || jarProtocol.statusType .equals(JarStatusType.MOVING)){
+                    if (!jarProtocol.rightDoorOpen.equals(jarProtocol.leftDoorOpen)) {
+                        if (jarProtocol.rightDoorOpen == 0 || jarProtocol.leftDoorOpen == 0){
+                            if (jarProtocol.rightDoorOpen == 2 || jarProtocol.leftDoorOpen == 2){
+                                jarProtocol.setLeftDoorOpen(0);//open the left door  //杩涙枡闂�
+                                jarProtocol.setRightDoorOpen(0);//open the right door  //鍑烘枡闂�
+                            }
+                        }
+                    }
+                    if (jarProtocol.rightDoorClose == 0 || jarProtocol.leftDoorClose == 0){
+                        if (jarProtocol.rightDoorClose == 2 || jarProtocol.leftDoorClose == 2){
+                            jarProtocol.setLeftDoorClose(0);//close the left door  //杩涙枡闂�
+                            jarProtocol.setRightDoorClose(0);//close the right door  //鍑烘枡闂�
+                        }
+                    }
+                }
+
+
+
+
+                jarProtocol.setUpStatus(jarProtocol.getStatus());
+//
+//                jarProtocol.setMode(2);//妯″紡
+//                jarProtocol.setStatus((short)6);//鐘舵��
+//                jarProtocol.setLeftDoorOpen(0);//open the left door  //杩涙枡闂�
+//                jarProtocol.setLeftDoorClose(0);//close the left door  //杩涙枡闂�
+//                jarProtocol.setRightDoorOpen(0);//open the right door  //鍑烘枡闂�
+//                jarProtocol.setRightDoorClose(0);//close the right door  //鍑烘枡闂�
+
+
                 // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                 BasJarService service = SpringUtils.getBean(BasJarService.class);
                 if (null != service) {
@@ -197,7 +282,7 @@
         String resultV2 = null;
         short resultS2 = 0;
 
-        switch (command.getTaskMode()){
+        switch (command.getTaskModeType().id){
             case 1:
             case 2:
             case 3:
@@ -242,7 +327,7 @@
         do {
             try{
                 if(!result1.IsSuccess){
-                    log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount);
+                    log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                     result1 = siemensS7Net.Write(resultV1, resultS1);
                     Thread.sleep(100);
                     writeCount++;
@@ -254,14 +339,14 @@
                     if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){
                         break;
                     } else {
-                        log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount);
+                        log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                         result1 = siemensS7Net.Write(resultV1, resultS1);
                         Thread.sleep(100);
                         writeCount++;
                         continue;
                     }
                 } else {
-                    log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount);
+                    log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                     result1 = siemensS7Net.Write(resultV1, resultS1);
                     Thread.sleep(100);
                     writeCount++;
@@ -277,7 +362,7 @@
         do {
             try{
                 if(!result2.IsSuccess){
-                    log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount);
+                    log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                     result2 = siemensS7Net.Write(resultV2, resultS2);
                     Thread.sleep(100);
                     writeCount++;
@@ -286,17 +371,17 @@
                 OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 2);
                 if (resultRead2.IsSuccess) {
                     short transInt16 = siemensS7Net.getByteTransform().TransInt16(resultRead2.Content, 0);
-                    if (transInt16 == resultS1  || transInt16 == (short) 3){
+                    if (transInt16 == resultS2  || transInt16 == (short) 3){
                         break;
                     } else {
-                        log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount);
+                        log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                         result2 = siemensS7Net.Write(resultV2, resultS2);
                         Thread.sleep(100);
                         writeCount++;
                         continue;
                     }
                 } else {
-                    log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command),writeCount);
+                    log.error("鍐欏叆纭寲缃恜lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSONString(command),writeCount);
                     result2 = siemensS7Net.Write(resultV2, resultS2);
                     Thread.sleep(100);
                     writeCount++;

--
Gitblit v1.9.1