| | |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.LedSlave; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.CarThread; |
| | | import com.zy.core.thread.CrnThread; |
| | | import com.zy.core.thread.DevpThread; |
| | | import com.zy.core.thread.LedThread; |
| | |
| | | for (Slave scale : slaveProperties.getScale()) { |
| | | MessageQueue.init(SlaveType.Scale, scale); |
| | | } |
| | | // 初始化台车mq |
| | | for (Slave car : slaveProperties.getCar()) { |
| | | MessageQueue.init(SlaveType.Car, car); |
| | | } |
| | | } |
| | | |
| | | private void initThread(){ |
| | |
| | | } |
| | | |
| | | // // 初始化条码扫描仪线程 |
| | | // log.info("初始化条码扫描仪线程..................................................."); |
| | | // for (Slave barcode : slaveProperties.getBarcode()) { |
| | | // BarcodeThread barcodeThread = new BarcodeThread(barcode); |
| | | // new Thread(barcodeThread).start(); |
| | |
| | | new Thread(ledThread).start(); |
| | | SlaveConnection.put(SlaveType.Led, led.getId(), ledThread); |
| | | } |
| | | |
| | | // 初始化台车线程 |
| | | log.info("初始化台车线程..................................................."); |
| | | for (Slave car : slaveProperties.getCar()) { |
| | | CarThread carThread = new CarThread(car); |
| | | new Thread(carThread).start(); |
| | | SlaveConnection.put(SlaveType.Car, car.getId(), carThread); |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | private static final Map<Integer, LinkedBlockingQueue<Task>> LED_EXCHANGE = new ConcurrentHashMap<>(); |
| | | // 磅称mq交换机 |
| | | private static final Map<Integer, ConcurrentLinkedQueue<Task>> SCALE_EXCHANGE = new ConcurrentHashMap<>(); |
| | | // 台车mq交换机 |
| | | private static final Map<Integer, ConcurrentLinkedQueue<Task>> CAR_EXCHANGE = new ConcurrentHashMap<>(); |
| | | |
| | | /** |
| | | * mq 交换机初始化 |
| | |
| | | break; |
| | | case Scale: |
| | | SCALE_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>()); |
| | | break; |
| | | case Car: |
| | | CAR_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>()); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | return LED_EXCHANGE.get(id).offer(task); |
| | | case Scale: |
| | | return SCALE_EXCHANGE.get(id).offer(task); |
| | | case Car: |
| | | return CAR_EXCHANGE.get(id).offer(task); |
| | | default: |
| | | return false; |
| | | } |
| | |
| | | return LED_EXCHANGE.get(id).poll(); |
| | | case Scale: |
| | | return SCALE_EXCHANGE.get(id).poll(); |
| | | case Car: |
| | | return CAR_EXCHANGE.get(id).poll(); |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | return LED_EXCHANGE.get(id).peek(); |
| | | case Scale: |
| | | return SCALE_EXCHANGE.get(id).peek(); |
| | | case Car: |
| | | return CAR_EXCHANGE.get(id).peek(); |
| | | default: |
| | | return null; |
| | | } |
| | |
| | | case Scale: |
| | | SCALE_EXCHANGE.get(id).clear(); |
| | | break; |
| | | case Car: |
| | | CAR_EXCHANGE.get(id).clear(); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | Barcode, |
| | | Led, |
| | | Scale, |
| | | Car, |
| | | ; |
| | | |
| | | public static SlaveType findInstance(String s){ |
| | |
| | | |
| | | private List<Slave> scale = new ArrayList<>(); |
| | | |
| | | private List<Slave> car = new ArrayList<>(); |
| | | |
| | | } |
New file |
| | |
| | | package com.zy.core.thread; |
| | | |
| | | import com.zy.core.Slave; |
| | | import com.zy.core.ThreadHandler; |
| | | import lombok.Data; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.io.IOException; |
| | | |
| | | /** |
| | | * 台车线程 |
| | | * Created by vincent on 2020/8/4 |
| | | */ |
| | | @Data |
| | | @Slf4j |
| | | public class CarThread implements Runnable, ThreadHandler { |
| | | |
| | | private Slave slave; |
| | | |
| | | public CarThread(Slave slave) { |
| | | this.slave = slave; |
| | | } |
| | | |
| | | @Override |
| | | @SuppressWarnings("InfiniteLoopStatement") |
| | | public void run() { |
| | | connect(); |
| | | while (true) { |
| | | try { |
| | | Thread.sleep(1000); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public boolean connect() { |
| | | try { |
| | | } catch (Exception e) { |
| | | log.error("台车连接失败!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public void close() { |
| | | } |
| | | |
| | | public void write(byte[] msg, int len) throws IOException { |
| | | } |
| | | |
| | | public byte[] read(int bufferSize, int timeOut) throws IOException { |
| | | return null; |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | CarThread barcodeThread = new CarThread(new Slave()); |
| | | barcodeThread.getSlave().setIp("192.168.2.150"); |
| | | barcodeThread.getSlave().setPort(51236); |
| | | boolean connect = barcodeThread.connect(); |
| | | System.out.println(connect); |
| | | barcodeThread.write("T".getBytes(), "T".length()); |
| | | byte[] read = barcodeThread.read(11, 1000); |
| | | System.out.println(new String(read)); |
| | | } |
| | | } |
| | |
| | | id: 1 |
| | | ip: 192.168.10.150 |
| | | port: 51236 |
| | | # 台车 |
| | | car[0]: |
| | | id: 1 |
| | | ip: 192.168.10.150 |
| | | port: 51236 |
| | | # LED1 |
| | | led[0]: |
| | | id: 1 |
| | | ip: 192.168.10.61 |
| | | port: 5005 |
| | | devpPlcId: ${wcs-slave.devp[0].id} |
| | | staArr: 1,2 |
| | | # led[0]: |
| | | # id: 1 |
| | | # ip: 192.168.10.61 |
| | | # port: 5005 |
| | | # devpPlcId: ${wcs-slave.devp[0].id} |
| | | # staArr: 1,2 |
| | | # 磅称 |
| | | scale[0]: |
| | | id: 1 |
| | | ip: 192.168.10.152 |
| | | port: 8888 |
| | | # scale[0]: |
| | | # id: 1 |
| | | # ip: 192.168.10.152 |
| | | # port: 8888 |
| | | |
| | | |
| | | |