| | |
| | | package com.zy.core.thread.impl; |
| | | |
| | | import com.zy.common.model.MatDto; |
| | | import com.zy.core.Slave; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.LedSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.command.LedCommand; |
| | | import com.zy.core.thread.LedThread; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | @SuppressWarnings("all") |
| | | public class NormalLedThread implements LedThread, Runnable { |
| | | |
| | | private Slave slave; |
| | | private Set<Integer> workNos = new HashSet<>(); |
| | | |
| | | private boolean ledMk = false; |
| | | private boolean resetStatus = false; // 复位状态 |
| | | |
| | |
| | | |
| | | private StringBuffer errorMsg = new StringBuffer(); |
| | | |
| | | public NormalLedThread(LedSlave ledSlave) { |
| | | this.slave = ledSlave; |
| | | } |
| | | |
| | | |
| | | @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<LedCommand>) 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(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void write(List<LedCommand> list) { |
| | |
| | | errorReset(); |
| | | } |
| | | |
| | | |
| | | public void reset() { |
| | | commandList = null; |
| | | |
| | | stringBuffer.delete(0, stringBuffer.length()); |
| | | errorMsg.delete(0, errorMsg.length()); |
| | | } |
| | | |
| | | |
| | | public void error(String msg) { |
| | | errorMsg.delete(0, errorMsg.length()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public boolean connect() { |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public void close() { |
| | | } |
| | | |
| | | @Override |
| | | public void setLedMk(boolean mk) { |
| | | this.ledMk = mk; |
| | | } |
| | | |
| | | @Override |
| | | public boolean isLedMk() { |
| | | return this.ledMk; |
| | | return false; |
| | | } |
| | | |
| | | @Override |
| | | public boolean connect() { |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public void close() { |
| | | } |
| | | } |