自动化立体仓库 - WCS系统
1
zhangc
2025-04-10 9fa73c998ffe1ba6d0d79d3c1dbd5a911403c2cc
src/main/java/com/zy/core/thread/impl/NormalLedThread.java
@@ -1,6 +1,11 @@
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;
@@ -13,7 +18,9 @@
@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;    // 复位状态
@@ -23,9 +30,43 @@
    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) {
@@ -52,11 +93,13 @@
        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());
@@ -68,21 +111,21 @@
    }
    @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() {
    }
}