From ba55cbe0d61d473039a2d486d5a6fe26e4b6bf73 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 03 三月 2022 11:03:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/model/command/SteCommand.java |  109 +++++++++++++++++++++++++++
 src/main/java/com/zy/core/thread/SteThread.java         |   94 +++++++++++------------
 2 files changed, 155 insertions(+), 48 deletions(-)

diff --git a/src/main/java/com/zy/core/model/command/SteCommand.java b/src/main/java/com/zy/core/model/command/SteCommand.java
new file mode 100644
index 0000000..4deb5d5
--- /dev/null
+++ b/src/main/java/com/zy/core/model/command/SteCommand.java
@@ -0,0 +1,109 @@
+package com.zy.core.model.command;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.zy.core.enums.CrnTaskModeType;
+import lombok.Data;
+
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * 绌挎杞﹀懡浠ゆ姤鏂�
+ * Created by vincent on 2020/8/11
+ */
+@Data
+public class SteCommand {
+
+    // 鍫嗗灈鏈哄彿
+    private Integer crnNo = 0;
+
+    // 浠诲姟瀹屾垚纭浣�
+    private Short ackFinish = 0;
+
+    // 浠诲姟鍙�
+    private Short taskNo = 0;
+
+    /**
+     * 浠诲姟妯″紡锛�
+     * 0 = 鏃�
+     * 1 = 鍏ュ簱   婧愬拰鐩爣閮藉彂
+     * 2 = 鍑哄簱   婧愬拰鐩爣閮藉彂
+     * 3 = 搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂
+     * 4 = 绔欎綅绉昏浆 婧愬拰鐩爣閮藉彂
+     * 5 = 鍥炲師鐐�  涓嶇敤鍙�
+     * 6 = 鍘诲弽鍘熺偣 鐩爣鍙�
+     * 7 = 鍧愭爣绉昏 鐩爣鍙�
+     * 90 = 璁剧疆鏃堕棿
+     * 99 = 鍙栨秷褰撳墠浠诲姟
+     */
+    private Short taskMode = 0;
+
+    @JSONField(serialize = false)
+    private CrnTaskModeType taskModeType;
+
+    // 婧愪綅缃帓鍙�
+    private Short sourcePosX = 0;
+
+    // 婧愪綅缃垪鍙�
+    private Short sourcePosY = 0;
+
+    // 婧愪綅缃眰鍙�
+    private Short sourcePosZ = 0;
+
+    // 婧愮珯
+    private Short sourceStaNo = 0;
+
+    // 婧愬贩閬�
+    private Short sourceLane = 0;
+
+    // 鐩爣浣嶇疆鎺掑彿
+    private Short destinationPosX = 0;
+
+    // 鐩爣浣嶇疆鍒楀彿
+    private Short destinationPosY = 0;
+
+    // 鐩爣浣嶇疆灞傚彿
+    private Short destinationPosZ = 0;
+
+    // 鐩爣绔�
+    private Short destinationStaNo = 0;
+
+    // 鐩爣宸烽亾
+    private Short destinationLane = 0;
+
+    // 浠诲姟纭 0锛氭湭纭 1锛氬凡纭
+    private Short command = 0;
+
+    public void setTaskMode(Short taskMode){
+        this.taskMode = taskMode;
+        this.taskModeType = CrnTaskModeType.get(taskModeType);
+    }
+
+    public void setTaskMode(CrnTaskModeType type) {
+        this.taskModeType = type;
+        this.taskMode = CrnTaskModeType.get(type).id.shortValue();
+    }
+
+    public static void main(String[] args) {
+        Date date = new Date();
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+
+        System.out.println(cal.get(Calendar.YEAR));
+        //榛樿浠�0-11
+        System.out.println(cal.get(Calendar.MONTH)+1);
+        System.out.println(cal.get(Calendar.DATE));
+        int hour = cal.get(Calendar.HOUR_OF_DAY);
+        System.out.println("鏃�");
+        System.out.println(hour);
+        int minute = cal.get(Calendar.MINUTE);
+        System.out.println("鍒�");
+        System.out.println(minute);
+        int second = cal.get(Calendar.SECOND);
+        System.out.println("绉�");
+        System.out.println(second);
+        int mm = cal.get(Calendar.DAY_OF_WEEK) - 1; // 鏄熸湡锛�0(鏃�)锝�6(鍏�)
+        System.out.println("绀兼嫓");
+        System.out.println(mm);
+    }
+}
diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index 049a874..c3e317a 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -17,11 +17,9 @@
 import com.zy.core.enums.CrnStatusType;
 import com.zy.core.enums.CrnTaskModeType;
 import com.zy.core.enums.SlaveType;
-import com.zy.core.model.CrnSlave;
 import com.zy.core.model.SteSlave;
 import com.zy.core.model.Task;
-import com.zy.core.model.command.CrnCommand;
-import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.command.SteCommand;
 import com.zy.core.model.protocol.SteProtocol;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -70,13 +68,13 @@
                         break;
                     // 鍐欏叆鏁版嵁
                     case 2:
-                        write((CrnCommand) task.getData());
+                        write((SteCommand) task.getData());
                         break;
                     // 澶嶄綅
                     case 3:
-                        CrnCommand command = (CrnCommand) task.getData();
+                        SteCommand command = (SteCommand) task.getData();
                         if (null == command) {
-                            command = new CrnCommand();
+                            command = new SteCommand();
                         }
                         command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
                         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -159,40 +157,40 @@
 //            }
             OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70);
             if (result.IsSuccess) {
-                if (null == crnProtocol) {
-                    crnProtocol = new CrnProtocol();
+                if (null == steProtocol) {
+                    steProtocol = new SteProtocol();
                 }
-                crnProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
-                crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
-                crnProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 4));
-                crnProtocol.setBay(melsecMcNet.getByteTransform().TransInt16(result.Content, 6));
-                crnProtocol.setLevel(melsecMcNet.getByteTransform().TransInt16(result.Content, 8));
-                crnProtocol.setForkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 10));
-                crnProtocol.setLiftPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 12));
-                crnProtocol.setWalkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 14));
-                crnProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 16));
-                crnProtocol.setAlarm(melsecMcNet.getByteTransform().TransInt16(result.Content, 18));
-                crnProtocol.setTemp1(melsecMcNet.getByteTransform().TransInt16(result.Content, 20));
-                crnProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 22));
-                crnProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 24));
-                crnProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 26));
-                crnProtocol.setXSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 28));
-                crnProtocol.setYSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 32));
-                crnProtocol.setZSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 36));
-                crnProtocol.setXDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 40));
-                crnProtocol.setYDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 44));
-                crnProtocol.setXDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 48));
-                crnProtocol.setYDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 52));
+                steProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
+                steProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
+                steProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 4));
+                steProtocol.setBay(melsecMcNet.getByteTransform().TransInt16(result.Content, 6));
+                steProtocol.setLevel(melsecMcNet.getByteTransform().TransInt16(result.Content, 8));
+                steProtocol.setForkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 10));
+                steProtocol.setLiftPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 12));
+                steProtocol.setWalkPos(melsecMcNet.getByteTransform().TransInt16(result.Content, 14));
+                steProtocol.setLoaded(melsecMcNet.getByteTransform().TransInt16(result.Content, 16));
+                steProtocol.setAlarm(melsecMcNet.getByteTransform().TransInt16(result.Content, 18));
+                steProtocol.setTemp1(melsecMcNet.getByteTransform().TransInt16(result.Content, 20));
+                steProtocol.setTemp2(melsecMcNet.getByteTransform().TransInt16(result.Content, 22));
+                steProtocol.setTemp3(melsecMcNet.getByteTransform().TransInt16(result.Content, 24));
+                steProtocol.setTemp4(melsecMcNet.getByteTransform().TransInt16(result.Content, 26));
+                steProtocol.setXSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 28));
+                steProtocol.setYSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 32));
+                steProtocol.setZSpeed(melsecMcNet.getByteTransform().TransSingle(result.Content, 36));
+                steProtocol.setXDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 40));
+                steProtocol.setYDistance(melsecMcNet.getByteTransform().TransSingle(result.Content, 44));
+                steProtocol.setXDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 48));
+                steProtocol.setYDuration(melsecMcNet.getByteTransform().TransSingle(result.Content, 52));
 
                 OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
 
                 // 澶嶄綅淇″彿
-                if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
-                    log.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}][宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负90锛岀瓑寰呯‘璁わ紒锛�",slave.getId(),crnProtocol.getTaskNo());
+                if (steProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
+                    log.error("-------------------------------------------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}][宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负90锛岀瓑寰呯‘璁わ紒锛�",slave.getId(),steProtocol.getTaskNo());
                     if (resetFlag) {
-                        CrnCommand crnCommand = new CrnCommand();
-                        crnCommand.setAckFinish((short)1);
-                        if (write(crnCommand)) {
+                        SteCommand steCommand = new SteCommand();
+                        steCommand.setAckFinish((short)1);
+                        if (write(steCommand)) {
                             resetFlag = false;
                         }
                     }
@@ -202,9 +200,9 @@
                 // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                 BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
                 BasCrnp basCrnp = new BasCrnp();
-                basCrnp.setCrnErr(crnProtocol.getAlarm()==null?0:crnProtocol.getAlarm().longValue());
+                basCrnp.setCrnErr(steProtocol.getAlarm()==null?0:steProtocol.getAlarm().longValue());
                 basCrnp.setCrnNo(slave.getId());
-                if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
+                if (!basCrnpService.updateById(steProtocol.toSqlModel(basCrnp))){
                     log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                 }
 
@@ -216,7 +214,7 @@
             e.printStackTrace();
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
             log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-            initCrn();
+            initSte();
         }
 
     }
@@ -224,7 +222,7 @@
     /**
      * 鍐欏叆鏁版嵁
      */
-    private boolean write(CrnCommand command){
+    private boolean write(SteCommand command){
         if (null == command) {
             log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
@@ -307,16 +305,16 @@
     /**************************************** 娴嬭瘯涓撶敤 *****************************************/
     /*****************************************************************************************/
     public static void main(String[] args) throws InterruptedException {
-        CrnSlave slave = new CrnSlave();
-        slave.setId(1);
-        slave.setIp("192.168.3.39");
-        slave.setPort(5015);
-        slave.setRack(0);
-        slave.setSlot(0);
-        SteThread melsecCrnThread = new SteThread(slave);
-        melsecCrnThread.connect();
-        melsecCrnThread.readStatus();
-        System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol));
+//        CrnSlave slave = new CrnSlave();
+//        slave.setId(1);
+//        slave.setIp("192.168.3.39");
+//        slave.setPort(5015);
+//        slave.setRack(0);
+//        slave.setSlot(0);
+//        SteThread melsecCrnThread = new SteThread(slave);
+//        melsecCrnThread.connect();
+//        melsecCrnThread.readStatus();
+//        System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol));
 
         // 1.鍏ュ簱 婧愬拰鐩爣閮藉彂
 //        CrnCommand command = new CrnCommand();

--
Gitblit v1.9.1