#
luxiaotao1123
2022-02-21 fa757510c3857010548f57e3ae3f49af93aecaed
#
3个文件已修改
132 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MonitorController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/LedThread.java 101 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -99,7 +99,7 @@
        // 获取输送线plc线程
        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledId);
        String ledContent = ledThread.getStringBuffer().toString();
        String ledContent = ledThread.getWorkNos().toString();
//        ledContent = "ask的模块萨满大算了萨满大了\n 是窘境到埃及嗲家嗲\n 萨达姆打开萨满大凯撒麦当劳萨满大老师";
        return R.ok(
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1115,6 +1115,8 @@
                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
                    log.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
                    continue;
                } else {
                    ledThread.setLedMk(false);
                }
            }
@@ -1144,6 +1146,33 @@
     */
    @Async
    public void ledReset() {
//        for (LedSlave led : slaveProperties.getLed()) {
//            // 获取输送线plc线程
//            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
//            // 命令集合
//            boolean reset = true;
//            for (Integer staNo : led.getStaArr()) {
//                // 获取叉车站点
//                StaProtocol staProtocol = devpThread.getStation().get(staNo);
//                if (staProtocol == null) {
//                    continue;
//                } else {
//                    staProtocol = staProtocol.clone();
//                }
//                if (staProtocol.getWorkNo() != 0) {
//                    reset = false;
//                    break;
//                }
//            }
//            // 获取led线程
//            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId());
//            // led显示默认内容
//            if (reset) {
//                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
//                    log.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort());
//                }
//            }
//        }
        for (LedSlave led : slaveProperties.getLed()) {
            // 获取输送线plc线程
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
src/main/java/com/zy/core/thread/LedThread.java
@@ -41,7 +41,7 @@
    DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]);
    private Set<Integer> workNos = new HashSet<>();
    private boolean ledMk = true;
//    private boolean resetStatus = false;    // 复位状态
    private boolean resetStatus = false;    // 复位状态
    public LedThread(Slave slave) {
        this.slave = slave;
@@ -72,10 +72,6 @@
                        case 2:
                            reset();
                            break;
                        // 警告信息
                        case 3:
                            write(String.valueOf(task.getData()));
                            break;
                        default:
                            break;
                    }
@@ -89,13 +85,13 @@
    }
    private void write(List<LedCommand> list) throws Bx5GException {
//        if (!connect()) {
//            return;
//        }
        if (!connect()) {
            return;
        }
        pf = new ProgramBxFile( 0, screen.getProfile());
        pf.setFrameShow(false);
        // 分别输入X,Y,width,height
        area = new TextCaptionBxArea( 0,0,192,128, screen.getProfile());
        area = new TextCaptionBxArea( 0,0,96,48, screen.getProfile());
        // 创建一个数据页
        TextBxPage page = new TextBxPage();
        for (LedCommand command : list) {
@@ -111,7 +107,7 @@
        }
        // 设置字体
        page.setFont(new Font("宋体",Font.PLAIN,14));
        page.setFont(new Font("宋体",Font.PLAIN,12));
        // 设置文本颜色
        page.setForeground(Color.red);
        // 设置显示特技为快速打出
@@ -119,36 +115,13 @@
        area.clearPages();
        area.addPage(page);
        pf.addArea(area);
        // 更新节目
        screen.writeProgram(pf);
//        resetStatus = false;
        close();
    }
    private void write(String str) throws Bx5GException {
//        if (!connect() || Cools.isEmpty(str)) {
//            return;
//        }
        pf = new ProgramBxFile( 0, screen.getProfile());
        pf.setFrameShow(false);
        // 分别输入X,Y,width,height
        area = new TextCaptionBxArea( 0,0,192,128, screen.getProfile());
        // 创建一个数据页
        TextBxPage page = new TextBxPage();
        page.newLine(str);
        page.newLine("\n");
        // 设置字体
        page.setFont(new Font("宋体",Font.PLAIN,14));
        // 设置文本颜色
        page.setForeground(Color.red);
        // 设置显示特技为快速打出
        page.setDisplayStyle(styles[6]);
        area.clearPages();
        area.addPage(page);
        pf.addArea(area);
        // 更新节目
        screen.writeProgram(pf);
//        resetStatus = false;
        if (pf.validate() != null) {
            log.info("pf out of range");
        } else {
            // 更新节目
            screen.writeProgram(pf);
//            resetStatus = false;
        }
        close();
    }
@@ -156,10 +129,13 @@
//        if (!connect()) {
//            return;
//        }
//        if (resetStatus) {
//            return;
//        }
        pf = new ProgramBxFile( 0, screen.getProfile());
        pf.setFrameShow(false);
        // 分别输入X,Y,width,height
        area = new TextCaptionBxArea( 0,0,192,128, screen.getProfile());
        area = new TextCaptionBxArea( 0,0,96,48, screen.getProfile());
        // 创建一个数据页
        TextBxPage page = new TextBxPage();
@@ -175,11 +151,11 @@
            }
        } else {
            page.newLine("自动化立体仓库");
            page.newLine("浙江中扬立库技术有限公司");
            page.newLine("西格邁股份有限公司");
        }
        // 设置字体
        page.setFont(new Font("宋体",Font.PLAIN,15));
        page.setFont(new Font("宋体",Font.PLAIN,13));
        // 设置文本颜色
        page.setForeground(Color.red);
        // 设置显示特技为快速打出
@@ -188,7 +164,13 @@
        area.addPage(page);
        pf.addArea(area);
        // 更新节目
        screen.writeProgram(pf);
        if (pf.validate() != null) {
            log.info("pf out of range");
        } else {
            // 更新节目
            screen.writeProgram(pf);
//            resetStatus = true;
        }
        close();
    }
@@ -198,13 +180,13 @@
        try {
            connRes = screen.connect(slave.getIp(),slave.getPort());
            screen.turnOn();
            if (connRes) {
                log.info("led连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
                reset();
            } else {
                log.error("led连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
            }
        } catch (Exception ignore) { }
        } catch (Exception ignore) {
        }
        if (connRes) {
            log.info("led连接成功 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        } else {
            log.error("led连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        }
        return connRes;
    }
@@ -219,7 +201,7 @@
        Bx5GEnv.initial(3000);
        Bx5GScreenClient screen = new Bx5GScreenClient("my");
        DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]);
        if (!screen.connect("192.168.10.61",5005)) {
        if (!screen.connect("192.168.10.101",5005)) {
            System.err.println("连接失败!!!!");
            return;
        }
@@ -232,7 +214,7 @@
            ProgramBxFile pf = new ProgramBxFile( 0, screen.getProfile());
            pf.setFrameShow(false);
            // 分别输入X,Y,width,heigth
            TextCaptionBxArea area = new TextCaptionBxArea(  0,0,192,128,screen.getProfile());
            TextCaptionBxArea area = new TextCaptionBxArea(  0,0,192,96,screen.getProfile());
            // 创建一个数据页
            // 第一行数据
@@ -240,7 +222,9 @@
            page.newLine("源库位:0100204");
            page.newLine("目标站:1000");
            // 设置字体
            page.setFont( new Font("宋体",Font.PLAIN,12));
            page.setFont( new Font("宋体",Font.PLAIN,15));
            // 设置文本颜色
            page.setForeground(Color.red);
            // 设置显示特技为快速打出
            page.setDisplayStyle(styles[6]);
            area.clearPages();
@@ -248,7 +232,14 @@
            pf.addArea( area );
            // 更新节目
            screen.writeProgram(pf);
            // 更新节目
            if (pf.validate() != null) {
                System.out.println("pf out of range");
                log.info("pf out of range");
            } else {
                // 更新节目
                screen.writeProgram(pf);
            }
        }
        // 继开与控制器之间的链接