From c6ac196d7207e64b8591f84932439214561fc446 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期五, 29 八月 2025 15:56:52 +0800
Subject: [PATCH] 1
---
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 77 +++++++++++++++++++++++++-------------
1 files changed, 50 insertions(+), 27 deletions(-)
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 562e044..1602251 100644
--- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
+++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -78,6 +78,7 @@
while (true) {
try {
listenSocketMessage();
+ listenInit();//鐩戝惉鍒濆鍖栦簨浠�
} catch (Exception e) {
e.printStackTrace();
}
@@ -136,7 +137,6 @@
Thread otherThread = new Thread(() -> {
while (true) {
try {
- listenInit();//鐩戝惉鍒濆鍖栦簨浠�
saveLog();//淇濆瓨鏁版嵁
} catch (Exception e) {
e.printStackTrace();
@@ -151,7 +151,7 @@
return;
}
- if (System.currentTimeMillis() - shuttleProtocol.getDeviceDataLog() > 1000 * 5) {
+ if (System.currentTimeMillis() - shuttleProtocol.getDeviceDataLog() > 1000 * 1) {
if (this.originDeviceData != null) {
//閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
//淇濆瓨鏁版嵁璁板綍
@@ -195,15 +195,22 @@
}
JSONObject result = JSON.parseObject(sb.toString());//寰楀埌鍝嶅簲缁撴灉闆�
- if (result.containsKey("workingMode")) {
- //read
- socketReadResults.add(result);
- }else {
- if (!socketResults.isEmpty() && socketResults.size() >= 20) {
- socketResults.remove(0);//娓呯悊澶磋妭鐐�
+
+ String msgType = result.getString("msgType");
+ if ("responseMsg".equals(msgType)) {
+ JSONObject response = result.getJSONObject("response");
+ JSONObject body = response.getJSONObject("body");
+ if (body.containsKey("workingMode")) {
+ //read
+ socketReadResults.add(body);
+ return;
}
- socketResults.add(result);//娣诲姞鏁版嵁
}
+
+ if (!socketResults.isEmpty() && socketResults.size() >= 20) {
+ socketResults.remove(0);//娓呯悊澶磋妭鐐�
+ }
+ socketResults.add(result);//娣诲姞鏁版嵁
} catch (Exception e) {
// e.printStackTrace();
}
@@ -285,6 +292,11 @@
requestCommandAsync(readStatusCommand);//璇锋眰鐘舵��
if (this.socketReadResults.isEmpty()) {
+ if (System.currentTimeMillis() - shuttleProtocol.getLastOnlineTime() > 1000 * 60) {
+ //鏈�鍚庝竴娆′笂绾挎椂闂磋秴杩�60s锛岃瀹氱绾�
+ this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.OFFLINE);
+ OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅绂荤嚎浜�1 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ }
return;
}
@@ -293,7 +305,8 @@
if (data == null) {
if (System.currentTimeMillis() - shuttleProtocol.getLastOnlineTime() > 1000 * 60) {
//鏈�鍚庝竴娆′笂绾挎椂闂磋秴杩�60s锛岃瀹氱绾�
- shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.OFFLINE);
+ this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.OFFLINE);
+ OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅绂荤嚎浜�2 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
}
OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
}else {
@@ -350,9 +363,13 @@
shuttleProtocol.setPakMk(true);
}
- if (shuttleProtocol.getProtocolStatusType() == null && shuttleProtocol.getDeviceStatus().intValue() == 0) {
+ if (shuttleProtocol.getProtocolStatusType() == null && shuttleProtocol.getDeviceStatus().intValue() == 1) {
//灏忚溅绌洪棽鐘舵�併�佸皬杞︿换鍔$姸鎬佷负鏈煡锛岃瀹氭浘绂荤嚎杩囷紝闇�瑕佸浣嶆垚绌洪棽
- shuttleProtocol.setProtocolStatusType(ShuttleProtocolStatusType.IDLE);
+ this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
+ }
+
+ if (shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.OFFLINE) && shuttleProtocol.getDeviceStatus().intValue() == 1) {
+ this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
}
this.originDeviceData = data;
@@ -396,6 +413,9 @@
String requestType = resultBody.getString("requestType");
Integer requestId = resultHeader.getInteger("requestId");
if (requestType.equals("init")) {
+ removeIdx = i;//姝ゆ暟鎹凡缁忓鐞嗭紝浠庣粨鏋滈泦涓墧闄�
+ socketResults.remove(removeIdx);
+
Integer code = resultBody.getInteger("code");
//灏忚溅澶嶄綅璇锋眰
ShuttleCommand initCommand = getInitCommand(requestId, code);
@@ -403,16 +423,10 @@
NyShuttleHttpCommand httpCommand = JSON.parseObject(initCommand.getBody(), NyShuttleHttpCommand.class);
JSONObject requestResult = requestCommand(httpCommand);
- removeIdx = i;//姝ゆ暟鎹凡缁忓鐞嗭紝浠庣粨鏋滈泦涓墧闄�
-
log.info(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", slave.getId(), code, slave.getIp(), slave.getPort()));
OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆戝洓鍚戣溅澶嶄綅涓婃姤 ===>> [code:{1}] [ip:{2}] [port:{3}]", slave.getId(), code, slave.getIp(), slave.getPort()));
break;
}
- }
-
- if (removeIdx != -1) {
- socketResults.remove(removeIdx);
}
} catch (Exception e) {
e.printStackTrace();
@@ -736,12 +750,21 @@
return false;
}
+ if (this.shuttleProtocol.getMode() == 0) {
+ return true;
+ }
+
+ if (!this.shuttleProtocol.getErrorCode().equals("0")) {
+ return true;
+ }
+
InnerSuhttleExtend extend = (InnerSuhttleExtend) this.shuttleProtocol.getExtend();
- boolean res = this.shuttleProtocol.getMode() == 0
- && !this.shuttleProtocol.getErrorCode().equals("0")
- && extend.getSuspendState() == 1
- ;
- return res;
+
+ if (extend.getSuspendState() == 1) {
+ return true;
+ }
+
+ return false;
}
@Override
@@ -893,8 +916,8 @@
data.put("xp", xp);
data.put("yp", yp);
data.put("z", z);
- data.put("x", mapNode.getXBase());
- data.put("y", mapNode.getYBase());
+ data.put("x", mapNode.getYBase());
+ data.put("y", mapNode.getXBase());
path.add(data);
}
@@ -1010,8 +1033,8 @@
location.put("xp", row);
location.put("yp", bay);
location.put("z", lev);
- location.put("x", mapNode.getXBase());
- location.put("y", mapNode.getYBase());
+ location.put("x", mapNode.getYBase());
+ location.put("y", mapNode.getXBase());
HashMap<String, Object> body = new HashMap<>();
body.put("responseType", "init");//澶嶄綅
--
Gitblit v1.9.1