#
zwl
2 天以前 ec3fa1a4209062eb95388d19474dd8b5a3ac9c0f
src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
@@ -78,8 +78,13 @@
                    if (task != null) {
                        step = task.getStep();
                    }
                    if (step == 2) {
                        sendCommand((CrnCommand) task.getData());
                    }else if (step == 4) {
                        sendCommand2((CrnCommand) task.getData());
                    }else if (step == 5) {
                        sendCommand3((CrnCommand) task.getData());
                    }
                    Thread.sleep(100);
@@ -178,6 +183,8 @@
        crnProtocol.setYDistance(crnStatus.getYDistance());
        crnProtocol.setXDuration(crnStatus.getXDuration());
        crnProtocol.setYDuration(crnStatus.getYDuration());
        crnProtocol.setWeight(crnStatus.getWeight());
        crnProtocol.setDb110Data(crnStatus.getDb110Data());
        OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));
@@ -283,12 +290,12 @@
    }
    @Override
    public CrnCommand getResetCommand(Integer crnNo) {
    public CrnCommand getResetCommand(Integer taskNo, Integer crnNo) {
        CrnCommand crnCommand = new CrnCommand();
        crnCommand.setCrnNo(crnNo); // 堆垛机编号
        crnCommand.setTaskNo(0); // 工作号
        crnCommand.setTaskNo(taskNo); // 工作号
        crnCommand.setAckFinish(1);  // 任务完成确认位
        crnCommand.setTaskMode(CrnTaskModeType.NONE.id); // 任务模式
        crnCommand.setTaskMode(CrnTaskModeType.RESET.id); // 任务模式
        crnCommand.setSourcePosX(0);     // 源库位排
        crnCommand.setSourcePosY(0);     // 源库位列
        crnCommand.setSourcePosZ(0);     // 源库位层
@@ -331,4 +338,86 @@
            }
        }
    }
    /**
     * 管理站点的白灯情况
     * 1(亮,闪烁,上位下发任务)
     * 默认0(暗)
     * @param command
     * @return
     */
    @Override
    public synchronized CommandResponse sendCommand2(CrnCommand command) {
        this.crnProtocol.setLastCommandTime(System.currentTimeMillis());
        CommandResponse response = null;
        try {
            response = zyCrnConnectDriver.sendCommand2(command);
            return response;
        } finally {
            String sourceLocNo = Utils.getLocNo(command.getSourcePosX(), command.getSourcePosY(), command.getSourcePosZ());
            String targetLocNo = Utils.getLocNo(command.getDestinationPosX(), command.getDestinationPosY(), command.getDestinationPosZ());
            BasCrnpOptService bean = SpringUtils.getBean(BasCrnpOptService.class);
            ZyCrnStatusEntity statusEntity = zyCrnConnectDriver.getStatus();
            BasCrnpOpt basCrnpOpt = new BasCrnpOpt(
                    command.getTaskNo().intValue(),
                    command.getCrnNo(),
                    new Date(),
                    String.valueOf(command.getTaskMode()),
                    sourceLocNo,
                    targetLocNo,
                    null,
                    null,
                    null,
                    JSON.toJSONString(command),
                    JSON.toJSONString(statusEntity),
                    1,
                    JSON.toJSONString(response)
            );
            if (bean != null) {
                bean.insert(basCrnpOpt);
            }
        }
    }
    /**
     * 管理站点的黄色按钮状态及颜色
     * 1:人工按按钮确认
     * 2:上位机接收完成,运行给
     * 0:任务结束上位机清除状态
     * @param command
     * @return
     */
    @Override
    public synchronized CommandResponse sendCommand3(CrnCommand command) {
        this.crnProtocol.setLastCommandTime(System.currentTimeMillis());
        CommandResponse response = null;
        try {
            response = zyCrnConnectDriver.sendCommand3(command);
            return response;
        } finally {
            String sourceLocNo = Utils.getLocNo(command.getSourcePosX(), command.getSourcePosY(), command.getSourcePosZ());
            String targetLocNo = Utils.getLocNo(command.getDestinationPosX(), command.getDestinationPosY(), command.getDestinationPosZ());
            BasCrnpOptService bean = SpringUtils.getBean(BasCrnpOptService.class);
            ZyCrnStatusEntity statusEntity = zyCrnConnectDriver.getStatus();
            BasCrnpOpt basCrnpOpt = new BasCrnpOpt(
                    command.getTaskNo().intValue(),
                    command.getCrnNo(),
                    new Date(),
                    String.valueOf(command.getTaskMode()),
                    sourceLocNo,
                    targetLocNo,
                    null,
                    null,
                    null,
                    JSON.toJSONString(command),
                    JSON.toJSONString(statusEntity),
                    1,
                    JSON.toJSONString(response)
            );
            if (bean != null) {
                bean.insert(basCrnpOpt);
            }
        }
    }
}