自动化立体仓库 - WCS系统
#
luxiaotao1123
2020-09-10 375f92ebe423c6c831c399812be05a5d920f6987
#
1个文件已添加
5个文件已修改
125 ■■■■■ 已修改文件
src/main/java/com/zy/core/ServerBootstrap.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/cache/MessageQueue.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/SlaveType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/properties/SlaveProperties.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/CarThread.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/ServerBootstrap.java
@@ -7,6 +7,7 @@
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;
@@ -65,6 +66,10 @@
        for (Slave scale : slaveProperties.getScale()) {
            MessageQueue.init(SlaveType.Scale, scale);
        }
        // 初始化台车mq
        for (Slave car : slaveProperties.getCar()) {
            MessageQueue.init(SlaveType.Car, car);
        }
    }
    private void initThread(){
@@ -85,6 +90,7 @@
        }
//        // 初始化条码扫描仪线程
//        log.info("初始化条码扫描仪线程...................................................");
//        for (Slave barcode : slaveProperties.getBarcode()) {
//            BarcodeThread barcodeThread = new BarcodeThread(barcode);
//            new Thread(barcodeThread).start();
@@ -97,7 +103,13 @@
            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);
        }
    }
src/main/java/com/zy/core/cache/MessageQueue.java
@@ -25,6 +25,8 @@
    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 交换机初始化
@@ -45,6 +47,9 @@
                break;
            case Scale:
                SCALE_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            case Car:
                CAR_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            default:
                break;
@@ -67,6 +72,8 @@
                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;
        }
@@ -88,6 +95,8 @@
                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;
        }
@@ -108,6 +117,8 @@
                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;
        }
@@ -130,6 +141,9 @@
            case Scale:
                SCALE_EXCHANGE.get(id).clear();
                break;
            case Car:
                CAR_EXCHANGE.get(id).clear();
                break;
            default:
                break;
        }
src/main/java/com/zy/core/enums/SlaveType.java
@@ -7,6 +7,7 @@
    Barcode,
    Led,
    Scale,
    Car,
    ;
    public static SlaveType findInstance(String s){
src/main/java/com/zy/core/properties/SlaveProperties.java
@@ -29,4 +29,6 @@
    private List<Slave> scale = new ArrayList<>();
    private List<Slave> car = new ArrayList<>();
}
src/main/java/com/zy/core/thread/CarThread.java
New file
@@ -0,0 +1,69 @@
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));
    }
}
src/main/resources/application.yml
@@ -97,18 +97,23 @@
    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