From d76cb52badbfcae1844219d0839fd34744042c91 Mon Sep 17 00:00:00 2001
From: zhangchao <zc857179121@qq.com>
Date: 星期五, 25 十月 2024 15:29:51 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/core/thread/MelsecCrnThread.java |  481 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 481 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
new file mode 100644
index 0000000..17277b5
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -0,0 +1,481 @@
+//package com.zy.core.thread;
+//
+//import HslCommunication.Core.Types.OperateResult;
+//import HslCommunication.Core.Types.OperateResultExOne;
+//import HslCommunication.Profinet.Melsec.MelsecMcNet;
+//import com.alibaba.fastjson.JSON;
+//import com.core.common.DateUtils;
+//import com.core.common.SpringUtils;
+//import com.core.exception.CoolException;
+//import com.zy.asrs.entity.BasCrnOpt;
+//import com.zy.asrs.entity.BasCrnp;
+//import com.zy.asrs.service.BasCrnOptService;
+//import com.zy.asrs.service.BasCrnpService;
+//import com.zy.common.utils.News;
+//import com.zy.core.CrnThread;
+//import com.zy.core.ThreadHandler;
+//import com.zy.core.cache.MessageQueue;
+//import com.zy.core.cache.OutputQueue;
+//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.Task;
+//import com.zy.core.model.command.CrnCommand;
+//import com.zy.core.model.protocol.CrnProtocol;
+//import lombok.Data;
+//import lombok.extern.slf4j.Slf4j;
+//
+//import java.text.MessageFormat;
+//import java.util.Date;
+//
+///**
+// * 鍫嗗灈鏈虹嚎绋�
+// * Created by vincent on 2020/8/4
+// */
+//@Data
+//@Slf4j
+//public class MelsecCrnThread implements Runnable, ThreadHandler, CrnThread
+//{
+//
+//    private MelsecMcNet melsecMcNet;
+//    private CrnSlave slave;
+//    private CrnProtocol crnProtocol;
+//    private short heartBeatVal = 1;
+//    private boolean resetFlag = false;
+//
+//    /**
+//     * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪
+//     */
+//    private boolean backHpFlag = false;
+//
+//    public MelsecCrnThread(CrnSlave slave) {
+//        this.slave = slave;
+//    }
+//
+//    @Override
+//    @SuppressWarnings("InfiniteLoopStatement")
+//    public void run() {
+//        this.connect();
+////        try {
+////            Thread.sleep(2000);
+////        } catch (InterruptedException e) {
+////            e.printStackTrace();
+////        }
+//        while (true) {
+//            try {
+//                int step = 1;
+//                Task task = MessageQueue.poll(SlaveType.Crn, slave.getId());
+//                if (task != null) {
+//                    step = task.getStep();
+//                }
+//                switch (step) {
+//                    // 璇绘暟鎹�
+//                    case 1:
+//                        readStatus();
+//                        break;
+//                    // 鍐欏叆鏁版嵁
+//                    case 2:
+//                        write((CrnCommand) task.getData());
+//                        break;
+//                    // 澶嶄綅
+//                    case 3:
+//                        CrnCommand command = (CrnCommand) task.getData();
+//                        if (null == command) {
+//                            command = new CrnCommand();
+//                        }
+//                        command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+//                        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+//                        command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
+//                        command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+////                        command.setSourcePosX((short)0);     // 婧愬簱浣嶆帓
+////                        command.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
+////                        command.setSourcePosZ((short)0);     // 婧愬簱浣嶅眰
+////                        command.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
+////                        command.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
+////                        command.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+//                        write(command);
+//                        break;
+//                    default:
+//                        break;
+//                }
+//                // 蹇冭烦
+//                heartbeat();
+//                Thread.sleep(500);
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//
+//        }
+//    }
+//
+//    /**
+//     * 鍒濆鍖栧爢鍨涙満鐘舵��
+//     */
+//    private void initCrn() {
+//        if (null == crnProtocol) {
+//            crnProtocol = new CrnProtocol();
+//        }
+//        crnProtocol.setMode((short) -1);
+////        crnProtocol.setTaskNo((short)0);
+//        crnProtocol.setStatus((short)-1);
+//        crnProtocol.setBay((short)0);
+//        crnProtocol.setLevel((short)0);
+//        crnProtocol.setForkPos((short) -1);
+//        crnProtocol.setLiftPos((short) -1);
+//        crnProtocol.setWalkPos((short)0);
+//        crnProtocol.setLoaded((short)0);
+//        crnProtocol.setAlarm((short)0);
+//        crnProtocol.setxSpeed((short)0);
+//        crnProtocol.setySpeed((short)0);
+//        crnProtocol.setzSpeed((short)0);
+//        crnProtocol.setxDistance((short)0);
+//        crnProtocol.setyDistance((short)0);
+//        crnProtocol.setxDuration((short)0);
+//        crnProtocol.setyDuration((short)0);
+//    }
+//
+//    @Override
+//    public boolean connect() {
+//        boolean result = false;
+//        melsecMcNet = new MelsecMcNet(slave.getIp(), slave.getPort());
+//        OperateResult connect = melsecMcNet.ConnectServer();
+//        if(connect.IsSuccess){
+//            result = true;
+//            OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+//            News.info("MelsecCrn"+" - 1"+" - 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+//        } else {
+//            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] ", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+//            News.error("MelsecCrn"+" - 2"+" - 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+//            initCrn();
+//        }
+////        melsecMcNet.ConnectClose();
+//        return result;
+//    }
+//
+//    /**
+//     * 璇诲彇鐘舵��
+//     */
+//    private void readStatus(){
+//        try {
+////            if (this.slave.getId() == 1 && flag1.equals(0)) {
+////                Thread.sleep(3000);
+////                flag1=1;
+////                System.out.println("===");
+////            }
+//            OperateResultExOne<byte[]> result = melsecMcNet.Read("D1035", (short) 56);
+//            if (result.IsSuccess) {
+//                if (null == crnProtocol) {
+//                    crnProtocol = new CrnProtocol();
+//                    crnProtocol.setCrnNo(slave.getId());
+//                }
+//                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().TransInt16(result.Content, 28));
+//                crnProtocol.setySpeed(melsecMcNet.getByteTransform().TransInt16(result.Content, 32));
+//                crnProtocol.setzSpeed(melsecMcNet.getByteTransform().TransInt16(result.Content, 36));
+//                crnProtocol.setxDistance(melsecMcNet.getByteTransform().TransInt16(result.Content, 40));
+//                crnProtocol.setyDistance(melsecMcNet.getByteTransform().TransInt16(result.Content, 44));
+//                crnProtocol.setxDuration(melsecMcNet.getByteTransform().TransInt16(result.Content, 48));
+//                crnProtocol.setyDuration(melsecMcNet.getByteTransform().TransInt16(result.Content, 52));
+//
+//                OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+//
+//                // 澶嶄綅淇″彿
+//                if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING_ONE)) {
+//                    News.error("MelsecCrn"+" - 3"+" ---------绗竴姝ャ�乕鍫嗗灈鏈哄彿锛歿}][宸ヤ綔鍙凤細{}]==>> 鐘舵�佷负90锛岀瓑寰呯‘璁わ紒锛�",slave.getId(),crnProtocol.getTaskNo());
+//                    if (resetFlag) {
+//                        if(crnProtocol.getTaskNo()==9999){
+//                            backHpFlag = false;
+//                        }
+//                        CrnCommand crnCommand = new CrnCommand();
+//                        crnCommand.setAckFinish((short)1);
+//                        if (write(crnCommand)) {
+//                            resetFlag = false;
+//                        }
+//                    }
+//                }
+//
+//                // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+//                BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+//                BasCrnp basCrnp = new BasCrnp();
+//                basCrnp.setCrnErr(crnProtocol.getAlarm()==null?0:crnProtocol.getAlarm().longValue());
+//                basCrnp.setCrnNo(slave.getId());
+//                basCrnp.setCrnSts((int)crnProtocol.getMode());
+//                if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
+//                    News.error("MelsecCrn"+" - 4"+" - 鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+//                }
+//
+//            } else {
+//                OutputQueue.CRN.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.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+//            News.error("MelsecCrn"+" - 5"+" - 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+//            initCrn();
+//        }
+//
+//    }
+//
+//    /**
+//     * 鍐欏叆鏁版嵁
+//     */
+//    private boolean write(CrnCommand command){
+//        if (null == command) {
+//            News.error("MelsecCrn"+" - 6"+" - 鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+//            return false;
+//        }
+//
+////        OperateResult result = null;
+////        try{
+////            Integer exeCount=0;
+////            do{
+////                command.setCrnNo(slave.getId());
+////                short[] array = new short[10];
+////                array[0] = command.getAckFinish();
+////                array[1] = command.getTaskNo();
+////                array[2] = command.getTaskMode();
+////                array[3] = command.getSourcePosX();
+////                array[4] = command.getSourcePosY();
+////                array[5] = command.getSourcePosZ();
+////                array[6] = command.getDestinationPosX();
+////                array[7] = command.getDestinationPosY();
+////                array[8] = command.getDestinationPosZ();
+////                array[9] = command.getCommand();
+////                result = melsecMcNet.Write("D0", array);
+////                if(result.IsSuccess) {
+////                    if (command.getAckFinish() == 0) {
+////                        short commandFinish = 1;
+////                        result = melsecMcNet.Write("D9", commandFinish);
+////                        if(result.IsSuccess){
+////                            //鍐欎换鍔$‘璁よ繑鍥炴垚鍔熷悗锛屾煡璇㈢‘璁や竴娆�
+////                            Thread.sleep(200);
+////                            OperateResultExOne<byte[]> result1 = melsecMcNet.Read("D9", (short)2);
+////                            if(result1.IsSuccess){
+////                                short commandVal = melsecMcNet.getByteTransform().TransInt16(result1.Content,2);
+////                                if(commandVal==1){
+////                                    break;
+////                                } else {
+////                                    exeCount++;
+////                                }
+////                            } else{
+////                                exeCount++;
+////                            }
+////                        }else{
+////                            exeCount++;
+////                        }
+////                    }
+////                }else{
+////                    exeCount++;
+////                }
+////                Thread.sleep(200);
+////            }while(exeCount>3);
+////        }catch (Exception e){
+////
+////        }
+//
+//        command.setCrnNo(slave.getId());
+//        short[] array = new short[10];
+//        array[0] = command.getAckFinish();
+//        array[1] = command.getTaskNo();
+//        array[2] = command.getTaskMode();
+//        array[3] = command.getSourcePosX();
+//        array[4] = command.getSourcePosY();
+//        array[5] = command.getSourcePosZ();
+//        array[6] = command.getDestinationPosX();
+//        array[7] = command.getDestinationPosY();
+//        array[8] = command.getDestinationPosZ();
+//        array[9] = command.getCommand();
+//        OperateResult result = melsecMcNet.Write("D1001", array);
+//
+//        if (command.getAckFinish() == 0) {
+//            short commandFinish = 1;
+//            result = melsecMcNet.Write("D1010", commandFinish);
+//        }
+//
+//        try {
+//            // 鏃ュ織璁板綍
+//            BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
+//            BasCrnOpt basCrnOpt = new BasCrnOpt(
+//                    command.getTaskNo().intValue(),    // 浠诲姟鍙�
+//                    command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
+//                    new Date(),    // 涓嬪彂鏃堕棿
+//                    command.getTaskModeType().toString(),    // 妯″紡
+//                    command.getSourcePosX().intValue(),    // 婧愭帓
+//                    command.getSourcePosY().intValue(),    // 婧愬垪
+//                    command.getSourcePosZ().intValue(),    // 婧愬眰
+//                    null,    // 婧愮珯
+//                    command.getDestinationPosX().intValue(),    // 鐩爣鎺�
+//                    command.getDestinationPosY().intValue(),    // 鐩爣鍒�
+//                    command.getDestinationPosZ().intValue(),    // 鐩爣灞�
+//                    null,    // 鐩爣绔�
+//                    null,    // 鍝嶅簲缁撴灉
+//                    null,    // 淇敼鏃堕棿
+//                    null    // 淇敼浜哄憳
+//            );
+//            bean.save(basCrnOpt);
+//        } catch (Exception ignore) {}
+//
+//        if (result != null && result.IsSuccess) {
+//            News.info("MelsecCrn"+" - 7"+" - 鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+//            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+//            return true;
+//        } else {
+//            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+//            News.error("MelsecCrn"+" - 8"+" - 鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+//            return false;
+//        }
+//    }
+//
+//    @Override
+//    public void close() {
+//        melsecMcNet.ConnectClose();
+//    }
+//
+//    /**
+//     * 蹇冭烦
+//     */
+//    private void heartbeat(){
+//        if (heartBeatVal >= 30000) {
+//            heartBeatVal = -30000;
+//        } else {
+//            heartBeatVal =(short) (heartBeatVal+1);
+//        }
+//        OperateResult write = melsecMcNet.Write("D1011", heartBeatVal);
+////        OperateResult write1 = melsecMcNet.Write("D1001", (short) 0);
+////        OperateResult write2 = melsecMcNet.Write("D1002", (short) 0);
+////        OperateResult write3 = melsecMcNet.Write("D1003", (short) 0);
+////        OperateResult write4 = melsecMcNet.Write("D1004", (short) 0);
+////        OperateResult write5 = melsecMcNet.Write("D1005", (short) 0);
+////        OperateResult write6 = melsecMcNet.Write("D1006", (short) 0);
+////        OperateResult write7 = melsecMcNet.Write("D1007", (short) 0);
+////        OperateResult write8 = melsecMcNet.Write("D1008", (short) 0);
+////        OperateResult write9 = melsecMcNet.Write("D1009", (short) 0);
+////        OperateResult write10 = melsecMcNet.Write("D1010", (short) 0);
+//        if (!write.IsSuccess) {
+//            News.error("MelsecCrn"+" - 9"+" - 鍫嗗灈鏈簆lc蹇冭烦閫氳澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+//        }
+//    }
+//
+//
+//    /******************************************************************************************/
+//    /**************************************** 娴嬭瘯涓撶敤 *****************************************/
+//    /*****************************************************************************************/
+//    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);
+//        MelsecCrnThread melsecCrnThread = new MelsecCrnThread(slave);
+//        melsecCrnThread.connect();
+//        melsecCrnThread.readStatus();
+//        System.out.println(JSON.toJSONString(melsecCrnThread.crnProtocol));
+//
+//        // 1.鍏ュ簱 婧愬拰鐩爣閮藉彂
+////        CrnCommand command = new CrnCommand();
+////        command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙�
+////        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+////        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+////        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
+////        command.setSourcePosX((short) 1);     // 婧愬簱浣嶆帓
+////        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+////        command.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
+////        command.setDestinationPosX((short) 2);     // 鐩爣搴撲綅鎺�
+////        command.setDestinationPosY((short) 3);     // 鐩爣搴撲綅鍒�
+////        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+////        crnThread.write(command);
+//
+//        // 2.鍑哄簱 婧愬拰鐩爣閮藉彂
+////        CrnCommand command = new CrnCommand();
+////        command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙�
+////        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+////        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+////        command.setTaskMode(CrnTaskModeType.PAKOUT); // 浠诲姟妯″紡
+////        command.setSourcePosX((short) 2);     // 婧愬簱浣嶆帓
+////        command.setSourcePosY((short) 4);     // 婧愬簱浣嶅垪
+////        command.setSourcePosZ((short) 3);     // 婧愬簱浣嶅眰
+////        command.setDestinationPosX((short) 1);     // 鐩爣搴撲綅鎺�
+////        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+////        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+////        crnThread.write(command);
+//
+//
+////        // 3.搴撲綅绉昏浆   婧愬拰鐩爣閮藉彂 pass
+////        CrnCommand command = new CrnCommand();
+////        command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+////        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+////        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+////        command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+////        command.setSourcePosX((short)2);     // 婧愬簱浣嶆帓
+////        command.setSourcePosY((short)2);     // 婧愬簱浣嶅垪
+////        command.setSourcePosZ((short)3);     // 婧愬簱浣嶅眰
+////        command.setDestinationPosX((short)2);     // 鐩爣搴撲綅鎺�
+////        command.setDestinationPosY((short)4);     // 鐩爣搴撲綅鍒�
+////        command.setDestinationPosZ((short)4);     // 鐩爣搴撲綅灞�
+////        crnThread.write(command);
+//
+//        // 4.绔欎綅绉昏浆   婧愬拰鐩爣閮藉彂
+////        CrnCommand command = new CrnCommand();
+////        command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+////        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+////        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+////        command.setTaskMode(CrnTaskModeType.SITE_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+////        command.setSourcePosX((short)1);     // 婧愬簱浣嶆帓
+////        command.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
+////        command.setSourcePosZ((short)1);     // 婧愬簱浣嶅眰
+////        command.setDestinationPosX((short)2);     // 鐩爣搴撲綅鎺�
+////        command.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
+////        command.setDestinationPosZ((short)1);     // 鐩爣搴撲綅灞�
+////        crnThread.write(command);
+//
+////        // 5.鍥炲師鐐�  涓嶇敤鍙�   pass
+////        CrnCommand command = new CrnCommand();
+////        command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙�
+////        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+////        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+////        command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
+////        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+////        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+////        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+////        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+////        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+////        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+////        crnThread.write(command);
+//
+//
+//        // 鍙湁鍑虹幇鎸囧畾寮傚父鎵嶈繘琛屽浣�
+////        if (crnThread.crnProtocol.getCrnError2().leftTakeNoneErr
+////                || crnThread.crnProtocol.getCrnError2().rightTakeNoneErr
+////                || crnThread.crnProtocol.getCrnError2().leftPutLoadErr
+////                || crnThread.crnProtocol.getCrnError2().rightPutLoadErr) {
+////            CrnCommand command = new CrnCommand();
+////            command.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙�
+////            command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
+////            command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+////            Thread.sleep(3000L);
+////            crnThread.write(command);
+////        }
+//
+//    }
+//
+//    @Override
+//    public void setResetFlagTwo(boolean flag) {
+//
+//    }
+//}

--
Gitblit v1.9.1