From fb992077a4e575c95bb7a4939476e15bd67a5b77 Mon Sep 17 00:00:00 2001
From: lsh <lsh>
Date: 星期四, 23 五月 2024 16:22:56 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/model/JarSlave.java                 |   49 ++++
 src/main/java/com/zy/asrs/service/BasJarService.java          |    8 
 src/main/java/com/zy/core/thread/JarThread.java               |  168 +++++++++++++++
 src/main/resources/mapper/BasJarMapper.xml                    |   25 ++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java   |    1 
 src/main/java/com/zy/asrs/mapper/BasJarMapper.java            |   12 +
 src/main/java/com/zy/core/model/protocol/JarProtocol.java     |  107 +++++++++
 src/main/java/com/zy/core/enums/JarStatusType.java            |   43 +++
 src/main/java/com/zy/asrs/entity/BasJar.java                  |  161 ++++++++++++++
 src/main/java/com/zy/common/CodeBuilder.java                  |    4 
 src/main/java/com/zy/core/ServerBootstrap.java                |   43 ++-
 src/main/java/com/zy/core/properties/SlaveProperties.java     |    9 
 src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java |   12 +
 src/main/java/com/zy/core/enums/SlaveType.java                |    3 
 14 files changed, 626 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasJar.java b/src/main/java/com/zy/asrs/entity/BasJar.java
new file mode 100644
index 0000000..f4e48b3
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasJar.java
@@ -0,0 +1,161 @@
+package com.zy.asrs.entity;
+
+import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.baomidou.mybatisplus.annotations.TableField;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableName;
+import java.io.Serializable;
+
+@Data
+@TableName("asr_bas_jar")
+public class BasJar implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * JAR缂栧彿
+     */
+    @ApiModelProperty(value= "JAR缂栧彿")
+    @TableId(value = "jar_no", type = IdType.INPUT)
+    @TableField("jar_no")
+    private Integer jarNo;
+
+    /**
+     * 鍖哄煙
+     */
+    @ApiModelProperty(value= "鍖哄煙")
+    private Integer region;
+
+    /**
+     * 浠e彿
+     */
+    @ApiModelProperty(value= "浠e彿")
+    @TableField("jar_code")
+    private Integer jarCode;
+
+    /**
+     * 瀵瑰簲鍑哄簱绔�
+     */
+    @ApiModelProperty(value= "瀵瑰簲鍑哄簱绔�")
+    @TableField("sta_no")
+    private Integer staNo;
+
+    /**
+     * 鐘舵��
+     */
+    @ApiModelProperty(value= "鐘舵��")
+    @TableField("jar_status")
+    private Integer jarStatus;
+
+    /**
+     * 搴撳瓨鏁�
+     */
+    @ApiModelProperty(value= "搴撳瓨鏁�")
+    @TableField("jar_count")
+    private Integer jarCount;
+
+    /**
+     * 寮傚父浠g爜
+     */
+    @ApiModelProperty(value= "寮傚父浠g爜")
+    @TableField("jar_err")
+    private Integer jarErr;
+
+    /**
+     * 宸﹂棬(checkBox)
+     */
+    @ApiModelProperty(value= "宸﹂棬(checkBox)")
+    @TableField("left_door")
+    private String leftDoor;
+
+    /**
+     * 鍙抽棬(checkBox)
+     */
+    @ApiModelProperty(value= "鍙抽棬(checkBox)")
+    @TableField("right_door")
+    private String rightDoor;
+
+    /**
+     * 宸﹂棬鍙紑(checkBox)
+     */
+    @ApiModelProperty(value= "宸﹂棬鍙紑(checkBox)")
+    @TableField("left_in_enable")
+    private String leftInEnable;
+
+    /**
+     * 宸﹂棬鍙叧(checkBox)
+     */
+    @ApiModelProperty(value= "宸﹂棬鍙叧(checkBox)")
+    @TableField("left_out_enable")
+    private String leftOutEnable;
+
+    /**
+     * 鑷姩(checkBox)
+     */
+    @ApiModelProperty(value= "鑷姩(checkBox)")
+    private String autoing;
+
+    /**
+     * 妯″紡
+     */
+    @ApiModelProperty(value= "妯″紡")
+    @TableField("jar_mode")
+    private Integer jarMode;
+
+    /**
+     * 鍙抽棬鍙紑(checkBox)
+     */
+    @ApiModelProperty(value= "鍙抽棬鍙紑(checkBox)")
+    @TableField("right_in_enable")
+    private String rightInEnable;
+
+    /**
+     * 鍙抽棬鍙叧(checkBox)
+     */
+    @ApiModelProperty(value= "鍙抽棬鍙叧(checkBox)")
+    @TableField("right_out_enable")
+    private String rightOutEnable;
+
+    public BasJar() {}
+
+    public BasJar(Integer jarNo,Integer region,Integer jarCode,Integer staNo,Integer jarStatus,Integer jarCount,Integer jarErr,String leftDoor,String rightDoor,String leftInEnable,String leftOutEnable,String autoing,Integer jarMode,String rightInEnable,String rightOutEnable) {
+        this.jarNo = jarNo;
+        this.region = region;
+        this.jarCode = jarCode;
+        this.staNo = staNo;
+        this.jarStatus = jarStatus;
+        this.jarCount = jarCount;
+        this.jarErr = jarErr;
+        this.leftDoor = leftDoor;
+        this.rightDoor = rightDoor;
+        this.leftInEnable = leftInEnable;
+        this.leftOutEnable = leftOutEnable;
+        this.autoing = autoing;
+        this.jarMode = jarMode;
+        this.rightInEnable = rightInEnable;
+        this.rightOutEnable = rightOutEnable;
+    }
+
+//    BasJar basJar = new BasJar(
+//            null,    // JAR缂栧彿[闈炵┖]
+//            null,    // 鍖哄煙
+//            null,    // 浠e彿
+//            null,    // 瀵瑰簲鍑哄簱绔�
+//            null,    // 鐘舵��
+//            null,    // 搴撳瓨鏁�
+//            null,    // 寮傚父浠g爜
+//            null,    // 宸﹂棬(checkBox)
+//            null,    // 鍙抽棬(checkBox)
+//            null,    // 宸﹂棬鍙紑(checkBox)
+//            null,    // 宸﹂棬鍙叧(checkBox)
+//            null,    // 鑷姩(checkBox)
+//            null,    // 妯″紡
+//            null,    // 鍙抽棬鍙紑(checkBox)
+//            null    // 鍙抽棬鍙叧(checkBox)
+//    );
+
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasJarMapper.java b/src/main/java/com/zy/asrs/mapper/BasJarMapper.java
new file mode 100644
index 0000000..4c841c4
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasJarMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.zy.asrs.entity.BasJar;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasJarMapper extends BaseMapper<BasJar> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasJarService.java b/src/main/java/com/zy/asrs/service/BasJarService.java
new file mode 100644
index 0000000..54a383f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasJarService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.zy.asrs.entity.BasJar;
+import com.baomidou.mybatisplus.service.IService;
+
+public interface BasJarService extends IService<BasJar> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java
new file mode 100644
index 0000000..7be688b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.zy.asrs.mapper.BasJarMapper;
+import com.zy.asrs.entity.BasJar;
+import com.zy.asrs.service.BasJarService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service("basJarService")
+public class BasJarServiceImpl extends ServiceImpl<BasJarMapper, BasJar> implements BasJarService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index def7a6f..e7993b7 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -5465,6 +5465,7 @@
      * */
     public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){
         if (true){
+            basRgvMapMapper.updateById(basRgvMapCurrent);
             return true;
         }
 
diff --git a/src/main/java/com/zy/common/CodeBuilder.java b/src/main/java/com/zy/common/CodeBuilder.java
index 33131f2..14b29f3 100644
--- a/src/main/java/com/zy/common/CodeBuilder.java
+++ b/src/main/java/com/zy/common/CodeBuilder.java
@@ -17,10 +17,10 @@
 //        generator.table="sys_host";
         // sqlserver
         generator.sqlOsType = SqlOsType.SQL_SERVER;
-        generator.url="localhost:1433;databasename=xjhsasrs";
+        generator.url="10.10.10.254:1433;databasename=ahyxasrs";
         generator.username="sa";
         generator.password="sa@123";
-        generator.table="asr_bas_rgv_err_log";
+        generator.table="asr_bas_jar";
         generator.packagePath="com.zy.asrs";
 
         generator.controller = false;
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 7600ceb..51b4378 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -3,10 +3,7 @@
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
-import com.zy.core.model.CrnSlave;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LedSlave;
-import com.zy.core.model.RgvSlave;
+import com.zy.core.model.*;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.thread.*;
 import lombok.extern.slf4j.Slf4j;
@@ -60,7 +57,7 @@
         for (Slave crn : slaveProperties.getCrn()) {
             MessageQueue.init(SlaveType.Crn, crn);
         }
-        // 鍒濆鍖栧爢鍨涙満mq
+        // 鍒濆鍖朢GVmq
         for (Slave rgv : slaveProperties.getRgv()) {
             MessageQueue.init(SlaveType.Rgv, rgv);
         }
@@ -80,10 +77,18 @@
         for (Slave scale : slaveProperties.getScale()) {
             MessageQueue.init(SlaveType.Scale, scale);
         }
+        // 鍒濆鍖栫~鍖栫綈mq
+        for (Slave jar : slaveProperties.getJar()) {
+            MessageQueue.init(SlaveType.Jar, jar);
+        }
 //        // 鍒濆鍖栧彴杞q
 //        for (Slave car : slaveProperties.getCar()) {
 //            MessageQueue.init(SlaveType.Car, car);
 //        }
+        // 鍒濆鍖朣temq
+        for (Slave ste : slaveProperties.getSte()) {
+            MessageQueue.init(SlaveType.Ste, ste);
+        }
     }
 
     private void initThread(){
@@ -96,13 +101,13 @@
             map.put(crnThread, thread);
             SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
         }
-//        // 鍒濆鍖栫┛姊溅绾跨▼
-//        log.info("鍒濆鍖朢GV绾跨▼...................................................");
-//        for (RgvSlave rgv : slaveProperties.getRgv()) {
-//            RgvThread rgvThread = new RgvThread(rgv);
-//            new Thread((Runnable) rgvThread).start();
-//            SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
-//        }
+        // 鍒濆鍖栫┛姊溅绾跨▼
+        log.info("鍒濆鍖朢GV绾跨▼...................................................");
+        for (RgvSlave rgv : slaveProperties.getRgv()) {
+            RgvThread rgvThread = new RgvThread(rgv);
+            new Thread((Runnable) rgvThread).start();
+            SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
+        }
         // 鍒濆鍖栬緭閫佺嚎绾跨▼
         log.info("鍒濆鍖栬緭閫佺嚎绾跨▼...................................................");
         for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -125,6 +130,20 @@
             new Thread(ledThread).start();
             SlaveConnection.put(SlaveType.Led, led.getId(), ledThread);
         }
+        // 鍒濆鍖杍ar绾跨▼
+        log.info("鍒濆鍖杍ar绾跨▼...................................................");
+        for (JarSlave jar : slaveProperties.getJar()) {
+            JarThread jarThread = new JarThread(jar);
+            new Thread(jarThread).start();
+            SlaveConnection.put(SlaveType.Jar, jar.getId(), jarThread);
+        }
+        // 鍒濆鍖朣te绾跨▼
+        log.info("鍒濆鍖杝te绾跨▼...................................................");
+        for (SteSlave ste : slaveProperties.getSte()) {
+            SteThread steThread = new SteThread(ste);
+            new Thread(steThread).start();
+            SlaveConnection.put(SlaveType.Ste, ste.getId(), steThread);
+        }
         // 鍒濆鍖栫绉ょ嚎绋�
 //        log.info("鍒濆鍖栫绉ょ嚎绋�...................................................");
 //        for (Slave scale : slaveProperties.getScale()) {
diff --git a/src/main/java/com/zy/core/enums/JarStatusType.java b/src/main/java/com/zy/core/enums/JarStatusType.java
new file mode 100644
index 0000000..9f522cb
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/JarStatusType.java
@@ -0,0 +1,43 @@
+package com.zy.core.enums;
+
+public enum JarStatusType {
+
+    IDLE(0, "绌洪棽"),
+    MOVING(1, "浣滀笟涓�"),
+    SOS(2, "鎶ヨ"),
+    WAITING(10, "绛夊緟纭"),
+    OFF_LINE(-1, "鏈煡"),
+    OTHER(100, "鍏跺畠"),
+    ;
+
+    public Integer id;
+    public String desc;
+    JarStatusType(Integer id, String desc) {
+        this.id = id;
+        this.desc = desc;
+    }
+
+    public static JarStatusType get(Short id) {
+        if (null == id) {
+            return null;
+        }
+        for (JarStatusType type : JarStatusType.values()) {
+            if (type.id.equals(id.intValue())) {
+                return type;
+            }
+        }
+        return OFF_LINE;
+    }
+
+    public static JarStatusType get(JarStatusType type) {
+        if (null == type) {
+            return null;
+        }
+        for (JarStatusType jarStatusType : JarStatusType.values()) {
+            if (jarStatusType == type) {
+                return jarStatusType;
+            }
+        }
+        return null;
+    }
+}
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 02f42af..2896dc6 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -9,7 +9,8 @@
     Scale,
     Car,
     Rgv,
-    Ste
+    Ste,
+    Jar
     ;
 
     public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/model/JarSlave.java b/src/main/java/com/zy/core/model/JarSlave.java
new file mode 100644
index 0000000..9ced301
--- /dev/null
+++ b/src/main/java/com/zy/core/model/JarSlave.java
@@ -0,0 +1,49 @@
+package com.zy.core.model;
+
+import com.zy.core.Slave;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by vincent on 2020/8/10
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class JarSlave extends Slave {
+
+    private Integer rack;
+
+    private Integer slot;
+
+    private Boolean demo;
+
+    // 绌挎杞﹀叆搴撶珯鐐�
+    private List<CrnStn> steInStn = new ArrayList<>();
+
+    // 绌挎杞﹀嚭搴撶珯鐐�
+    private List<CrnStn> steOutStn = new ArrayList<>();
+
+    @Data
+    public static class CrnStn {
+
+        // 杈撻�佺嚎plc缂栧彿
+        private Integer devpPlcId;
+
+        // 绌挎杞︾珯鐐圭紪鍙�
+        private Integer staNo;
+
+        // 鎺�
+        private Integer row;
+
+        // 鍒�
+        private Integer bay;
+
+        // 灞�
+        private Integer lev;
+
+    }
+
+}
diff --git a/src/main/java/com/zy/core/model/protocol/JarProtocol.java b/src/main/java/com/zy/core/model/protocol/JarProtocol.java
new file mode 100644
index 0000000..0488b50
--- /dev/null
+++ b/src/main/java/com/zy/core/model/protocol/JarProtocol.java
@@ -0,0 +1,107 @@
+package com.zy.core.model.protocol;
+
+import com.zy.asrs.entity.BasJar;
+import com.zy.core.enums.JarStatusType;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Created by vincent on 2020/8/7
+ */
+@Slf4j
+@Data
+public class JarProtocol {
+
+    /**
+     * 璁惧鍙�
+     */
+    private Integer jarNo;
+
+    /**
+     * 1 = 鑱旀満妯″紡
+     * 0 = 鑴辨満妯″紡
+     */
+    public Integer mode;
+
+    /**
+     IDLE(0, "绌洪棽"),
+     MOVING(1, "浣滀笟涓�"),
+     SOS(2, "鎶ヨ"),
+     WAITING(3, "浠诲姟瀹屾垚绛夊緟WCS纭"),
+     */
+    public Short status;
+
+    public JarStatusType statusType;
+
+    /*
+     * 宸﹂棬鐘舵��
+     * */
+    private boolean leftDoor;
+
+    /*
+     * 鍙抽棬鐘舵��
+     * */
+    private boolean rightDoor;
+
+    /*
+     * 宸﹂棬鍙紑
+     * */
+    private boolean leftInEnable;
+
+    /*
+     * 宸﹂棬鍙叧
+     * */
+    private boolean leftOutEnable;
+
+    /*
+     * 鍙抽棬鍙紑
+     * */
+    private boolean rightInEnable;
+
+    /*
+     * 鍙抽棬鍙叧
+     * */
+    private boolean rightOutEnable;
+
+    /*
+     * 鑷姩
+     * */
+    private boolean autoing;
+
+
+    /**
+     * 寮傚父鐮�
+     */
+    public Integer jarErr = 0;
+
+    public void setStatus(Short status){
+        this.status = status;
+        this.statusType = JarStatusType.get(status);
+    }
+
+    public void setStatus(JarStatusType type){
+        this.statusType = type;
+        this.status = JarStatusType.get(type).id.shortValue();
+    }
+
+
+    public BasJar toSqlModel(BasJar basJar){
+        if (jarErr!=null) {
+            basJar.setJarErr(jarErr);
+        }
+        basJar.setJarMode(mode);
+//        if (basSte.getPakMk().equals("N")) {
+//            if (!Cools.isEmpty(row)) {
+//                basSte.setRow(row.intValue());
+//            }
+//            if (!Cools.isEmpty(bay)) {
+//                basSte.setBay(bay.intValue());
+//            }
+//            if (!Cools.isEmpty(lev)) {
+//                basSte.setLev(lev.intValue());
+//            }
+//        }
+        return basJar;
+    }
+
+}
diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java
index 68d2e55..b026c1b 100644
--- a/src/main/java/com/zy/core/properties/SlaveProperties.java
+++ b/src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -1,10 +1,7 @@
 package com.zy.core.properties;
 
 import com.zy.core.Slave;
-import com.zy.core.model.CrnSlave;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LedSlave;
-import com.zy.core.model.RgvSlave;
+import com.zy.core.model.*;
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
@@ -47,4 +44,8 @@
 
     private List<Slave> car = new ArrayList<>();
 
+    private List<JarSlave> jar = new ArrayList<>();
+
+    private List<SteSlave> Ste = new ArrayList<>();
+
 }
diff --git a/src/main/java/com/zy/core/thread/JarThread.java b/src/main/java/com/zy/core/thread/JarThread.java
new file mode 100644
index 0000000..1268aff
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/JarThread.java
@@ -0,0 +1,168 @@
+package com.zy.core.thread;
+
+import HslCommunication.Core.Types.OperateResult;
+import HslCommunication.Core.Types.OperateResultExOne;
+import HslCommunication.Profinet.Siemens.SiemensPLCS;
+import HslCommunication.Profinet.Siemens.SiemensS7Net;
+import com.core.common.DateUtils;
+import com.core.common.SpringUtils;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasJar;
+import com.zy.asrs.service.BasJarService;
+import com.zy.core.News;
+import com.zy.core.ThreadHandler;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.cache.OutputQueue;
+import com.zy.core.enums.JarStatusType;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.JarSlave;
+import com.zy.core.model.Task;
+import com.zy.core.model.protocol.JarProtocol;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.MessageFormat;
+import java.util.Date;
+
+/**
+ * shuttle 纭寲缃愮嚎绋�
+ * Created by vincent on 2020/8/4
+ * 涓嶈兘鏈� 妲藉彿 鍜� 鏈烘灦鍙�
+ */
+@Data
+@Slf4j
+public class JarThread implements Runnable, ThreadHandler {
+
+    private SiemensS7Net siemensS7Net;
+    private JarSlave slave;
+    private JarProtocol jarProtocol;
+    private short heartBeatVal = 1;
+
+    public JarThread(JarSlave slave) {
+        this.slave = slave;
+    }
+
+    @Override
+    @SuppressWarnings("InfiniteLoopStatement")
+    public void run() {
+        this.connect();
+        while (true) {
+            try {
+                int step = 1;
+                Task task = MessageQueue.poll(SlaveType.Jar, slave.getId());
+                if (task != null) {
+                    step = task.getStep();
+                }
+                switch (step) {
+                    // 璇绘暟鎹�
+                    case 1:
+                        readStatus();
+                        break;
+                    default:
+                        break;
+                }
+                // 蹇冭烦
+//                heartbeat();
+                Thread.sleep(500);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+        }
+    }
+
+    /**
+     * 鍒濆鍖栧爢鍨涙満鐘舵��
+     */
+    private void initSte() {
+        if (null == jarProtocol) {
+            jarProtocol = new JarProtocol();
+        }
+        jarProtocol.setJarNo(slave.getId());
+        jarProtocol.setMode( 0);
+        jarProtocol.setStatus(JarStatusType.OFF_LINE);
+        jarProtocol.setJarErr(0);
+    }
+
+    @Override
+    public boolean connect() {
+        boolean result = false;
+        // 涓嶈兘鏈� 妲藉彿 鍜� 鏈烘灦鍙�
+        siemensS7Net = new SiemensS7Net(SiemensPLCS.S200Smart, slave.getIp());
+//        siemensS7Net.setRack(slave.getRack().byteValue());
+//        siemensS7Net.setSlot(slave.getSlot().byteValue());
+        OperateResult connect = siemensS7Net.ConnectServer();
+        if(connect.IsSuccess){
+            result = true;
+            OutputQueue.STE.offer(MessageFormat.format( "銆恵0}銆戠~鍖栫綈plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            News.info("纭寲缃恜lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+        } else {
+            OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戠~鍖栫綈plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] ", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            News.error("纭寲缃恜lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            initSte();
+        }
+//        melsecMcNet.ConnectClose();
+        return result;
+    }
+
+    /**
+     * 璇诲彇鐘舵��
+     */
+    private void readStatus(){
+        try {
+            OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) 10);
+            if (result.IsSuccess) {
+                if (null == jarProtocol) {
+                    jarProtocol = new JarProtocol();
+                    jarProtocol.setJarNo(slave.getId());
+                }
+                jarProtocol.setMode(siemensS7Net.getByteTransform().TransInt32(result.Content, 2));
+                jarProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 4));
+
+                // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+                BasJarService service = SpringUtils.getBean(BasJarService.class);
+                if (null != service) {
+                    // 鍚屾pakMk
+                    BasJar one = service.selectById(slave.getId());
+
+                    BasJar basJar = new BasJar();
+                    basJar.setJarNo(slave.getId());
+                    if (!service.updateById(jarProtocol.toSqlModel(basJar))){
+                        News.error("纭寲缃恜lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+                    }
+
+                }
+            } else {
+                OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆憑1}纭寲缃恜lc鐘舵�佷俊鎭け璐�", DateUtils.convert(new Date()), slave.getId()));
+                throw new CoolException(MessageFormat.format( "纭寲缃恜lc鐘舵�佷俊鎭け璐� ===>> [id:{0}] [ip:{1}] [port:{2}]", slave.getId(), slave.getIp(), slave.getPort()));
+            }
+        } catch (Exception e) {
+//            e.printStackTrace();
+            OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆戣鍙栫~鍖栫綈plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+//            News.error("璇诲彇绌挎杞lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            initSte();
+        }
+
+    }
+
+    @Override
+    public void close() {
+//        siemensS7Net.ConnectClose();
+    }
+
+    /**
+     * 蹇冭烦
+     */
+    private void heartbeat(){
+        if (heartBeatVal == 1) {
+            heartBeatVal = 2;
+        } else {
+            heartBeatVal = 1;
+        }
+        OperateResult write = siemensS7Net.Write("D10", heartBeatVal);
+        if (!write.IsSuccess) {
+            News.error("纭寲缃恜lc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
+        }
+    }
+
+}
diff --git a/src/main/resources/mapper/BasJarMapper.xml b/src/main/resources/mapper/BasJarMapper.xml
new file mode 100644
index 0000000..0b91213
--- /dev/null
+++ b/src/main/resources/mapper/BasJarMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.BasJarMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasJar">
+        <result column="jar_no" property="jarNo" />
+        <result column="region" property="region" />
+        <result column="jar_code" property="jarCode" />
+        <result column="sta_no" property="staNo" />
+        <result column="jar_status" property="jarStatus" />
+        <result column="jar_count" property="jarCount" />
+        <result column="jar_err" property="jarErr" />
+        <result column="left_door" property="leftDoor" />
+        <result column="right_door" property="rightDoor" />
+        <result column="left_in_enable" property="leftInEnable" />
+        <result column="left_out_enable" property="leftOutEnable" />
+        <result column="autoing" property="autoing" />
+        <result column="jar_mode" property="jarMode" />
+        <result column="right_in_enable" property="rightInEnable" />
+        <result column="right_out_enable" property="rightOutEnable" />
+
+    </resultMap>
+
+</mapper>

--
Gitblit v1.9.1