| | |
| | | import com.zy.asrs.wcs.rcs.News; |
| | | import com.zy.asrs.wcs.rcs.cache.OutputQueue; |
| | | import com.zy.asrs.wcs.rcs.entity.Device; |
| | | import com.zy.asrs.wcs.rcs.model.dto.WorkModeTypeDto; |
| | | import com.zy.asrs.wcs.rcs.model.enums.WorkModeType; |
| | | import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol; |
| | | import com.zy.asrs.wcs.rcs.thread.DevpThread; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | */ |
| | | private int barcodeSize = 2; |
| | | |
| | | /** |
| | | * 入出库模式 |
| | | * 0:未知 |
| | | * 1:入库启动中 |
| | | * 2.入库模式 |
| | | * 3.出库启动中 (不能生成入库工作档) |
| | | * 4.出库模式 |
| | | */ |
| | | private Map<Integer, WorkModeTypeDto> workModeTypes = new ConcurrentHashMap<>(); |
| | | |
| | | public SiemensDevpThread(Device device, RedisUtil redisUtil) { |
| | | this.device = device; |
| | | this.redisUtil = redisUtil; |
| | | |
| | | workModeTypes.put(101, new WorkModeTypeDto(101, WorkModeType.NONE, "DB1001.120")); |
| | | } |
| | | |
| | | private ArrayList<BasConveyorSta> getStaNo() { |
| | |
| | | staProtocol.setPakMk(pakMk); |
| | | } |
| | | } |
| | | |
| | | private void updateWorkMode() { |
| | | for (Map.Entry<Integer, WorkModeTypeDto> entry : workModeTypes.entrySet()) { |
| | | WorkModeTypeDto workModeTypeDto = entry.getValue(); |
| | | WorkModeType workModeType = workModeTypeDto.getWorkModeType(); |
| | | if (workModeType != WorkModeType.NONE) { |
| | | if (!siemensS7Net.Write(workModeTypeDto.getAddress(), workModeType.id).IsSuccess) { |
| | | OutputQueue.DEVP.offer(MessageFormat.format("写入输送线{1}入出库模式失败。输送线编号={0}", device.getId(), workModeTypeDto.getSiteId())); |
| | | log.error("写入输送线{1}入出库模式失败。输送线编号={0}", device.getId(), workModeTypeDto.getSiteId()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean switchWorkMode(int siteId, int workMode) { |
| | | WorkModeTypeDto workModeTypeDto = workModeTypes.get(siteId); |
| | | if(workModeTypeDto == null) { |
| | | return false; |
| | | } |
| | | |
| | | workModeTypeDto.setWorkModeType(WorkModeType.get((short) workMode)); |
| | | workModeTypes.put(siteId, workModeTypeDto); |
| | | return false; |
| | | } |
| | | } |