自动化立体仓库 - WCS系统
#
luxiaotao1123
2020-12-28 678f43f99d4fe259c6ce3dabbc2563776c2a25f1
src/main/java/com/zy/core/thread/LedThread.java
@@ -37,6 +37,10 @@
    TextCaptionBxArea area;
    DisplayStyleFactory.DisplayStyle[] styles = DisplayStyleFactory.getStyles().toArray(new DisplayStyleFactory.DisplayStyle[0]);
    private Set<Integer> workNos = new HashSet<>();
    private boolean resetStatus = false;    //  复位状态
    // 显示器
    private StringBuffer stringBuffer = new StringBuffer();
    public LedThread(Slave slave) {
        this.slave = slave;
@@ -44,10 +48,6 @@
            Bx5GEnv.initial(3000);
            screen = new Bx5GScreenClient("my");
            screen.turnOn();
            pf = new ProgramBxFile( 0, screen.getProfile());
            pf.setFrameShow(false);
            // 分别输入X,Y,width,height
            area = new TextCaptionBxArea( 0,0,192,128,screen.getProfile());
        } catch (Exception e) {
            e.printStackTrace();
            log.info("led连接构造器错误 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
@@ -57,7 +57,7 @@
    @Override
    @SuppressWarnings({"InfiniteLoopStatement", "unchecked"})
    public void run() {
        connect();
//        connect();
        while (true) {
            try {
                Task task = MessageQueue.poll(SlaveType.Led, slave.getId());
@@ -67,12 +67,16 @@
                        case 1:
                            write((List<LedCommand>)task.getData());
                            break;
                        // 复位
                        case 2:
                            reset();
                            break;
                        default:
                            break;
                    }
                }
                Thread.sleep(3000);
                Thread.sleep(1000);
            } catch (Exception e) {
                e.printStackTrace();
            }
@@ -101,31 +105,77 @@
    private void write(List<LedCommand> list) throws Bx5GException {
        // 创建一个数据页
        TextBxPage page = new TextBxPage();
//        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();
//        for (LedCommand command : list) {
//            page.newLine(command.getTitle() +"("+command.getWorkNo()+")");
//            page.newLine("源库位:"+command.getSourceLocNo());
//            page.newLine("目标站:"+command.getStaNo());
//            if (!command.isEmptyMk()) {
//                for (MatDto matDto : command.getMatDtos()) {
//                    page.newLine(matDto.getMaknx() + "【数量" + matDto.getCount() +"】");
//                }
//            }
//            page.newLine("\n");
//        }
//
//        // 设置字体
//        page.setFont(new Font("宋体",Font.PLAIN,12));
//        // 设置显示特技为快速打出
//        page.setDisplayStyle(styles[6]);
//        area.clearPages();
//        area.addPage(page);
//        pf.addArea(area);
//        // 更新节目
//        screen.writeProgram(pf);
//        resetStatus = false;
        StringBuilder sb = new StringBuilder();
        for (LedCommand command : list) {
            page.newLine(command.getTitle() +"("+command.getWorkNo()+")");
            page.newLine("源库位:"+command.getSourceLocNo());
            page.newLine("目标站:"+command.getStaNo());
            sb.append(command.getTitle() +"("+command.getWorkNo()+")").append("\n");
            sb.append("源库位:"+command.getSourceLocNo()).append("\n");
            sb.append("目标站:"+command.getStaNo()).append("\n");
            if (!command.isEmptyMk()) {
                for (MatDto matDto : command.getMatDtos()) {
                    page.newLine(matDto.getMaknx() + "【数量" + matDto.getCount() +"】");
                    sb.append(matDto.getMaknx() + "【数量" + matDto.getCount() +"】").append("\n");
                }
            }
            page.newLine("\n");
            sb.append("\n");
        }
        // 设置字体
        page.setFont(new Font("宋体",Font.PLAIN,12));
        // 设置显示特技为快速打出
        page.setDisplayStyle(styles[6]);
        area.addPage(page);
        pf.addArea(area);
        // 更新节目
        screen.writeProgram(pf);
        stringBuffer.delete(0, stringBuffer.length());
        stringBuffer.append(sb.toString());
        resetStatus = false;
    }
    private void reset() throws Bx5GException {
        if (!resetStatus) {
//            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("广德中扬物流装备有限公司");
//            page.newLine("自动化立体仓库");
//            page.newLine("浙江中扬物流装备有限公司");
//            // 设置字体
//            page.setFont(new Font("宋体",Font.PLAIN,12));
//            // 设置显示特技为快速打出
//            page.setDisplayStyle(styles[6]);
//            area.clearPages();
//            area.addPage(page);
//            pf.addArea(area);
//            // 更新节目
//            screen.writeProgram(pf);
            stringBuffer.delete(0, stringBuffer.length());
            resetStatus = true;
        }
    }
    public static void main(String[] args) throws Exception {