From 375f92ebe423c6c831c399812be05a5d920f6987 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 10 九月 2020 11:02:16 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/properties/SlaveProperties.java | 2
src/main/java/com/zy/core/thread/CarThread.java | 69 +++++++++++++++++++++++
src/main/java/com/zy/core/cache/MessageQueue.java | 14 ++++
src/main/java/com/zy/core/enums/SlaveType.java | 1
src/main/resources/application.yml | 25 +++++---
src/main/java/com/zy/core/ServerBootstrap.java | 14 ++++
6 files changed, 114 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 4023026..85435f6 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/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);
}
+ // 鍒濆鍖栧彴杞q
+ 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);
+ }
}
diff --git a/src/main/java/com/zy/core/cache/MessageQueue.java b/src/main/java/com/zy/core/cache/MessageQueue.java
index 5f27eba..8bb9d7c 100644
--- a/src/main/java/com/zy/core/cache/MessageQueue.java
+++ b/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;
}
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 7812caa..56330fe 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -7,6 +7,7 @@
Barcode,
Led,
Scale,
+ Car,
;
public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java
index a6931f3..1cf0514 100644
--- a/src/main/java/com/zy/core/properties/SlaveProperties.java
+++ b/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<>();
+
}
diff --git a/src/main/java/com/zy/core/thread/CarThread.java b/src/main/java/com/zy/core/thread/CarThread.java
new file mode 100644
index 0000000..b05fac3
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/CarThread.java
@@ -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));
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index e67aa65..599fc2e 100644
--- a/src/main/resources/application.yml
+++ b/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
--
Gitblit v1.9.1