package com.zy.core.thread; import HslCommunication.Profinet.Siemens.SiemensS7Net; import com.zy.core.DevpThread; import com.zy.core.enums.IoModeType; import com.zy.core.model.DevpSlave; import com.zy.core.model.protocol.StaProtocol; import lombok.Data; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * 输送线线程 * Created by vincent on 2020/8/4 */ @Data @Slf4j public class SiemensDevpThread implements Runnable, DevpThread { private DevpSlave slave; private SiemensS7Net siemensS7Net; private Map station = new ConcurrentHashMap<>(); private short heartBeatVal = 1; public static final ArrayList staNos = new ArrayList() {{ add(100); }}; /** * 条码数量 */ private int barcodeSize = 1; /** * 入出库模式 * 0:未知 * 1:入库启动中 * 2.入库模式 * 3.出库启动中 (不能生成入库工作档) * 4.出库模式 */ public IoModeType ioModeOf1F1 = IoModeType.NONE; public SiemensDevpThread(DevpSlave slave) { this.slave = slave; } public void setData(Integer siteId, boolean loading, boolean inEnable, boolean outEnable) { // 站点编号 for (Integer sta : staNos) { if (sta.equals(siteId)) { StaProtocol staProtocol = station.get(siteId); if (null == staProtocol) { staProtocol = new StaProtocol(); staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } staProtocol.setWorkNo((short) 0); // ID staProtocol.setAutoing(true); // 自动 staProtocol.setLoading(loading); // 有物 staProtocol.setInEnable(inEnable); // 可入 staProtocol.setOutEnable(outEnable); // 可出 staProtocol.setEmptyMk(false); // 空板信号 staProtocol.setStaNo((short) 0); // 目标站 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); } } } } @Override public boolean connect() { return false; } @Override public void close() { } @Override public void setPakMk(Integer siteId, boolean pakMk) { } @Override public void run() { } }