package com.zy.core.thread; import com.alibaba.fastjson.JSON; import com.core.common.Cools; import com.zy.common.entity.Parameter; import com.zy.common.model.MatDto; import com.zy.common.utils.News; import com.zy.core.Slave; import com.zy.core.ThreadHandler; import com.zy.core.cache.MessageQueue; import com.zy.core.enums.SlaveType; import com.zy.core.model.Task; import com.zy.core.model.command.LedCommand; import lombok.Data; import lombok.extern.slf4j.Slf4j; import onbon.bx05.Bx5GEnv; import onbon.bx05.Bx5GException; import onbon.bx05.Bx5GScreen; import onbon.bx05.Bx5GScreenClient; import onbon.bx05.area.TextCaptionBxArea; import onbon.bx05.area.page.TextBxPage; import onbon.bx05.file.ProgramBxFile; import onbon.bx05.message.led.ReturnControllerStatus; import onbon.bx05.utils.DisplayStyleFactory; import java.awt.*; import java.util.HashSet; import java.util.List; import java.util.Set; /** * Created by vincent on 2020/9/1 */ @Data @Slf4j public class LedThread implements Runnable, ThreadHandler { private Slave slave; private Set workNos = new HashSet<>(); // 显示器 private StringBuffer stringBuffer = new StringBuffer(); private List commandList; private StringBuffer errorMsg = new StringBuffer(); public LedThread(Slave slave) { this.slave = slave; } @Override @SuppressWarnings({"InfiniteLoopStatement", "unchecked"}) public void run() { // connect(); while (true) { try { Task task = MessageQueue.poll(SlaveType.Led, slave.getId()); if (task != null) { switch (task.getStep()) { // 写数据 case 1: write((List)task.getData()); break; // 复位 case 2: reset(); break; case 3: error((String) task.getData()); break; case 4: errorReset(); break; default: break; } } Thread.sleep(1000); } catch (Exception e) { e.printStackTrace(); } } } private void write(List list) { commandList = list; StringBuilder sb = new StringBuilder(); for (LedCommand command : list) { sb.append(command.getTitle()).append("(").append(command.getWorkNo()).append(")").append("\n"); sb.append("源库位:").append(command.getSourceLocNo()).append("\n"); sb.append("目标站:").append(command.getStaNo()).append("\n"); if (!command.isEmptyMk()) { for (MatDto matDto : command.getMatDtos()) { sb.append(matDto.getSpecs()).append("-").append(matDto.getBatch()).append("\n"); } } sb.append("\n"); } stringBuffer.delete(0, stringBuffer.length()); stringBuffer.append(sb.toString()); errorReset(); } private void reset() { commandList = null; stringBuffer.delete(0, stringBuffer.length()); } private void error(String msg) { errorMsg.delete(0, errorMsg.length()); errorMsg.append(msg); } public void errorReset() { this.errorMsg.delete(0, errorMsg.length()); } @Override public boolean connect() { return true; } @Override public void close() { } }