From dd170bf880918ce00a1df68e8a3c621ada9b5820 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期五, 07 二月 2025 13:54:30 +0800
Subject: [PATCH] #
---
app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java | 63 ++++++++++++++++++++-----------
1 files changed, 40 insertions(+), 23 deletions(-)
diff --git a/app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java b/app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java
index 0c05544..bcc5bad 100644
--- a/app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java
+++ b/app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java
@@ -46,6 +46,7 @@
private static final String TAG = "NettyServerHandler";
private static ConcurrentHashMap<String, Channel> channelMap = new ConcurrentHashMap<>();
private Map<String, Runnable> pendingRemovals = new HashMap<>();
+ AGVCar agvCar;
int battery = 0;
int status = 0;
int agvStatus = 0;
@@ -58,6 +59,8 @@
int forkExtend = 0;
int forkAngle = 0;
int agvError = 0;
+ String agvNo = "--";
+ String log;
private Handler handler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
@@ -75,14 +78,19 @@
String ip = remoteAddress.getAddress().getHostAddress();
int port = remoteAddress.getPort();
channelMap.put(clientId, ctx.channel());
- EventBus.getDefault().post(new AGVCar(clientId,ip,port,"--",0));
- Log.d(TAG, "Client connected: " + clientId);
+ agvCar = new AGVCar(clientId, ip, port, agvNo, 1, battery,agvStatus,positionID,positionX,positionY,agvAngle,gyroAngle,forkHeight,forkExtend,forkAngle,agvError);
- // 鍙栨秷寤惰繜鍒犻櫎鎿嶄綔
- if (pendingRemovals.containsKey(clientId)) {
- handler.removeCallbacks(pendingRemovals.get(clientId));
- pendingRemovals.remove(clientId);
- }
+ EventBus.getDefault().post(agvCar);
+// Log.d(TAG, "Client connected: " + clientId);
+ log = formatDate(new Date(), "yyyy-MM-dd HH:mm:ss.SSS") + " 涓婅: " + ip + "[tcp]>>>宸茶繛鎺�";
+ Log.d("updown", log);
+ AGVApplication.addLog(log);
+
+// // 鍙栨秷寤惰繜鍒犻櫎鎿嶄綔
+// if (pendingRemovals.containsKey(clientId)) {
+// handler.removeCallbacks(pendingRemovals.get(clientId));
+// pendingRemovals.remove(clientId);
+// }
}
@@ -92,24 +100,38 @@
InetSocketAddress remoteAddress = (InetSocketAddress) ctx.channel().remoteAddress();
String ip = remoteAddress.getAddress().getHostAddress();
int port = remoteAddress.getPort();
- channelMap.remove(clientId);
+// channelMap.remove(clientId);
EventBus.getDefault().post(clientId);
- Log.d(TAG, "Client disconnected: " + clientId);
+// Log.d(TAG, "Client disconnected: " + clientId);
+ agvCar = new AGVCar(clientId, ip, port, agvNo, 0, battery,agvStatus,positionID,positionX,positionY,agvAngle,gyroAngle,forkHeight,forkExtend,forkAngle,agvError);
- // 鍚姩寤惰繜鍒犻櫎鎿嶄綔
- Runnable removalRunnable = new Runnable() {
- @Override
- public void run() {
- removeItem(clientId);
- }
- };
- pendingRemovals.put(clientId, removalRunnable);
- handler.postDelayed(removalRunnable, 20000); // 20绉掑悗鎵ц鍒犻櫎鎿嶄綔
+ EventBus.getDefault().post(agvCar);
+// Log.d(TAG, "Client connected: " + clientId);
+ log = formatDate(new Date(), "yyyy-MM-dd HH:mm:ss.SSS") + " 涓婅: " + ip + "[tcp]>>>鏂紑杩炴帴";
+ Log.d("updown", log);
+ AGVApplication.addLog(log);
+// // 鍚姩寤惰繜鍒犻櫎鎿嶄綔
+// Runnable removalRunnable = new Runnable() {
+// @Override
+// public void run() {
+// removeItem(clientId);
+// }
+// };
+// pendingRemovals.put(clientId, removalRunnable);
+// handler.postDelayed(removalRunnable, 20000); // 20绉掑悗鎵ц鍒犻櫎鎿嶄綔
}
private void removeItem(String clientId) {
+// 鍘熷厛鏄鍒犻櫎鍚庣画涓轰簡鑳藉姩鎬佽嚜鍔ㄨ繛鎺ラ渶瑕佹洿鏂�
+// if (channelMap.remove(clientId) != null) {
+// Log.d(TAG, "Client removed after 20 seconds: " + clientId);
+// EventBus.getDefault().post(clientId);
+// } else {
+// Log.d(TAG, "Client already reconnected or not found: " + clientId);
+// }
+
if (channelMap.remove(clientId) != null) {
Log.d(TAG, "Client removed after 20 seconds: " + clientId);
EventBus.getDefault().post(clientId);
@@ -150,11 +172,6 @@
// ack
ProtocolType ackType = isNeedAck(pac);
final String uniqueNo = pac.getHeader().getUniqueNo();
- String agvNo;
- AGVCar agvCar;
-
- String log;
-
label : switch (pac.getHeader().getProtocolType()){
case ACTION_COMPLETE: // 鍔ㄤ綔瀹屾垚鏁版嵁鍖�
AGV_11_UP agv_11_up = (AGV_11_UP) pac.getBody().getMessageBody();
--
Gitblit v1.9.1