From 3e8e5d69378187932f574264336a287eb3e15d17 Mon Sep 17 00:00:00 2001
From: zy <zy@123>
Date: 星期四, 17 七月 2025 11:09:41 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/controller/OpenController.java | 12 ++++++
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 6 +++
src/main/java/com/zy/core/enums/SlaveType.java | 1
src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java | 20 ++++++++-
src/main/java/com/zy/core/thread/FakeThread.java | 16 ++++++++
src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java | 18 ++++++++-
src/main/java/com/zy/core/ServerBootstrap.java | 2 +
7 files changed, 70 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 9637f0a..1b617d9 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -80,9 +80,11 @@
private void initFakeThread(){
ThreadHandler thread = new FakeNyShuttleThread(redisUtil, gatewayPort, enableFake, enableFakeDeviceThread);
new Thread(thread).start();
+ SlaveConnection.put(SlaveType.FakeThread, 1, thread);
ThreadHandler thread2 = new FakeZyForkLiftThread(redisUtil);
new Thread(thread2).start();
+ SlaveConnection.put(SlaveType.FakeThread, 2, thread2);
}
diff --git a/src/main/java/com/zy/core/controller/OpenController.java b/src/main/java/com/zy/core/controller/OpenController.java
index d3aa0cd..a13d9ba 100644
--- a/src/main/java/com/zy/core/controller/OpenController.java
+++ b/src/main/java/com/zy/core/controller/OpenController.java
@@ -6,6 +6,7 @@
import com.zy.core.model.param.AddFakeDeviceParam;
import com.zy.core.model.param.DeleteDeviceParam;
import com.zy.core.properties.DeviceConfig;
+import com.zy.core.thread.FakeThread;
import com.zy.core.thread.ForkLiftThread;
import com.zy.core.thread.ShuttleThread;
import com.zy.core.utils.DeviceMsgUtils;
@@ -40,6 +41,17 @@
return R.ok().add(map);
}
+ @GetMapping("/getFakeThreadList")
+ public R getFakeThreadList() {
+ FakeThread fakeThread1 = (FakeThread) SlaveConnection.get(SlaveType.FakeThread, 1);
+ FakeThread fakeThread2 = (FakeThread) SlaveConnection.get(SlaveType.FakeThread, 2);
+
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("fakeNyShuttleStatusMap", fakeThread1.getFakeStatusMap());
+ map.put("fakeZyForkLiftStatusMap", fakeThread2.getFakeStatusMap());
+ return R.ok().add(map);
+ }
+
@GetMapping("/getDeviceList")
public R getDeviceList() {
List<DeviceConfig> deviceList = new ArrayList<>();
diff --git a/src/main/java/com/zy/core/enums/SlaveType.java b/src/main/java/com/zy/core/enums/SlaveType.java
index 4b65625..117f89c 100644
--- a/src/main/java/com/zy/core/enums/SlaveType.java
+++ b/src/main/java/com/zy/core/enums/SlaveType.java
@@ -6,6 +6,7 @@
Lift,
ForkLift,
ForkLiftMaster,
+ FakeThread,
;
public static SlaveType findInstance(String s){
diff --git a/src/main/java/com/zy/core/thread/FakeThread.java b/src/main/java/com/zy/core/thread/FakeThread.java
new file mode 100644
index 0000000..a06d946
--- /dev/null
+++ b/src/main/java/com/zy/core/thread/FakeThread.java
@@ -0,0 +1,16 @@
+package com.zy.core.thread;
+
+import com.alibaba.fastjson.JSONObject;
+import com.zy.core.ThreadHandler;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+public interface FakeThread extends ThreadHandler {
+
+ ConcurrentHashMap<String, Thread> getFakeThreadMap();
+
+ ConcurrentHashMap<String, JSONObject> getFakeStatusMap();
+
+ ConcurrentHashMap<String, JSONObject> getFakeCommandMap();
+
+}
diff --git a/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java b/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
index 54c0ba5..b49aaee 100644
--- a/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/fake/FakeNyShuttleThread.java
@@ -6,10 +6,10 @@
import com.zy.common.SpringUtils;
import com.zy.common.utils.RedisUtil;
import com.zy.core.News;
-import com.zy.core.ThreadHandler;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.properties.DeviceConfig;
+import com.zy.core.thread.FakeThread;
import com.zy.core.thread.impl.NyShuttleThread;
import com.zy.core.utils.FakeDeviceUtils;
import lombok.extern.slf4j.Slf4j;
@@ -24,7 +24,7 @@
@Slf4j
@SuppressWarnings("all")
-public class FakeNyShuttleThread implements ThreadHandler {
+public class FakeNyShuttleThread implements FakeThread {
private RedisUtil redisUtil;
private JSONObject fakeStatusDemo = JSONObject.parseObject("{\"mode\":1,\"extend\":{\"countQuantity\":400,\"suspendState\":0,\"minCellVoltage\":3279,\"chargeCycleTimes\":0,\"maxCellVoltage\":3281,\"surplusQuantity\":204,\"voltage\":5248},\"hasLift\":false,\"hasPallet\":false,\"batteryVoltage\":5248,\"runDirection\":\"2\",\"currentCode\":\"{\\\"x\\\":19,\\\"y\\\":11,\\\"z\\\":2}\",\"errorCode\":\"0\",\"hasCharge\":false,\"batteryPower\":\"51\",\"speed\":0,\"deviceStatus\":1}");
@@ -515,4 +515,18 @@
}
+ @Override
+ public ConcurrentHashMap<String, Thread> getFakeThreadMap() {
+ return this.fakeThreadMap;
+ }
+
+ @Override
+ public ConcurrentHashMap<String, JSONObject> getFakeStatusMap() {
+ return this.fakeStatusMap;
+ }
+
+ @Override
+ public ConcurrentHashMap<String, JSONObject> getFakeCommandMap() {
+ return this.fakeCommandMap;
+ }
}
diff --git a/src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java b/src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java
index 3e32ebf..c26e5ce 100644
--- a/src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java
+++ b/src/main/java/com/zy/core/thread/fake/FakeZyForkLiftThread.java
@@ -6,13 +6,13 @@
import com.zy.common.SpringUtils;
import com.zy.common.utils.RedisUtil;
import com.zy.core.News;
-import com.zy.core.ThreadHandler;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.DeviceCommandMsgModel;
import com.zy.core.model.DeviceMsgModel;
import com.zy.core.properties.DeviceConfig;
+import com.zy.core.thread.FakeThread;
import com.zy.core.thread.impl.ZyForkLiftThread;
import com.zy.core.utils.DeviceMsgUtils;
import com.zy.core.utils.FakeDeviceUtils;
@@ -24,7 +24,7 @@
@Slf4j
@SuppressWarnings("all")
-public class FakeZyForkLiftThread implements ThreadHandler {
+public class FakeZyForkLiftThread implements FakeThread {
private RedisUtil redisUtil;
private JSONObject fakeStatusDemo = JSONObject.parseObject("{\"model\":2,\"wrkNo\":0,\"lev\":1,\"protocolStatus\":0,\"taskMode\":0,\"pick\":0,\"put\":0,\"iOMode\":0,\"errorCode\":0,\"trayList\":[0,0,0,0],\"carList\":[0,0,0,0]}");
@@ -115,7 +115,7 @@
// init
- ThreadHandler thread = new ZyForkLiftThread(device, redisUtil);;
+ ZyForkLiftThread thread = new ZyForkLiftThread(device, redisUtil);;
new Thread(thread).start();
SlaveConnection.put(SlaveType.ForkLift, device.getDeviceNo(), thread);
}
@@ -362,4 +362,18 @@
}
+ @Override
+ public ConcurrentHashMap<String, Thread> getFakeThreadMap() {
+ return this.fakeThreadMap;
+ }
+
+ @Override
+ public ConcurrentHashMap<String, JSONObject> getFakeStatusMap() {
+ return this.fakeStatusMap;
+ }
+
+ @Override
+ public ConcurrentHashMap<String, JSONObject> getFakeCommandMap() {
+ return this.fakeCommandMap;
+ }
}
diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
index 2544c14..ccaffca 100644
--- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -34,6 +34,7 @@
private Socket socket;
private boolean stopThread = false;
private HashMap<Integer, String> resultKeyMap = new HashMap<Integer, String>();
+ private long lastConnectTime = System.currentTimeMillis();
public NyShuttleThread(DeviceConfig deviceConfig, RedisUtil redisUtil) {
this.deviceConfig = deviceConfig;
@@ -275,6 +276,10 @@
return true;
}
+ if(System.currentTimeMillis() - lastConnectTime < 1000 * 10) {
+ return false;
+ }
+
if(this.deviceConfig.getFake()) {
return fakeConnect();
}else {
@@ -284,6 +289,7 @@
deviceSocket.setSoTimeout(10000);
deviceSocket.setKeepAlive(true);
this.socket = deviceSocket;
+ this.lastConnectTime = System.currentTimeMillis();
log.info(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket閾炬帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
}
}
--
Gitblit v1.9.1