From 318bd727e2fe02e4f541dfe943f77606af41d509 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期四, 06 二月 2025 14:30:11 +0800
Subject: [PATCH] #

---
 app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java |   68 ++++++++++++++++++++++++++++++++-
 1 files changed, 65 insertions(+), 3 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 28297aa..0c05544 100644
--- a/app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java
+++ b/app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java
@@ -2,6 +2,8 @@
 
 
 
+import static com.example.agvcontroller.utils.DateUtils.formatDate;
+
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.ByteBufUtil;
 import io.netty.buffer.Unpooled;
@@ -13,11 +15,13 @@
 import android.os.Message;
 import android.util.Log;
 
+import com.example.agvcontroller.AGVApplication;
 import com.example.agvcontroller.AGVCar;
 import com.example.agvcontroller.MainActivity;
 import com.example.agvcontroller.action.AGV_11_UP;
 import com.example.agvcontroller.action.AckMsgBuilder;
 import com.example.agvcontroller.met.AbstractInboundHandler;
+import com.example.agvcontroller.protocol.AGV_03_UP;
 import com.example.agvcontroller.protocol.AGV_12_UP;
 import com.example.agvcontroller.protocol.AGV_13_UP;
 import com.example.agvcontroller.protocol.AGV_A1_DOWN;
@@ -26,11 +30,13 @@
 import com.example.agvcontroller.protocol.AgvAction;
 import com.example.agvcontroller.protocol.AgvPackage;
 import com.example.agvcontroller.protocol.ProtocolType;
+import com.example.agvcontroller.utils.DateUtils;
 
 
 import org.greenrobot.eventbus.EventBus;
 
 import java.net.InetSocketAddress;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -40,6 +46,18 @@
     private static final String TAG = "NettyServerHandler";
     private static ConcurrentHashMap<String, Channel> channelMap = new ConcurrentHashMap<>();
     private Map<String, Runnable> pendingRemovals = new HashMap<>();
+    int battery = 0;
+    int status = 0;
+    int agvStatus = 0;
+    String positionID = "--";
+    int positionX = 0;
+    int positionY = 0;
+    float agvAngle = 0;
+    float gyroAngle = 0;
+    int forkHeight = 0;
+    int forkExtend = 0;
+    int forkAngle = 0;
+    int agvError = 0;
     private Handler handler = new Handler(Looper.getMainLooper()) {
         @Override
         public void handleMessage(Message msg) {
@@ -133,6 +151,10 @@
         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();
@@ -149,24 +171,63 @@
                 AGV_12_UP agv_12_up = (AGV_12_UP) pac.getBody().getMessageBody();
                 agvNo = pac.getHeader().getUniqueNo();
                 channelMap.put(clientId, ctx.channel());
-                EventBus.getDefault().post(new AGVCar(clientId,ip,port,agvNo,1));
+                agvStatus = agv_12_up.getStatus();
+                positionID = agv_12_up.getQrCode();
+                positionX = agv_12_up.getOffsetX();
+                positionY = agv_12_up.getOffsetY();
+                agvAngle = agv_12_up.getAGVCurrentAngle();
+                gyroAngle = agv_12_up.getGyroAngle();
+                forkHeight = agv_12_up.getCurrentAltitude();
+                forkExtend = agv_12_up.getForkLength();
+                forkAngle = agv_12_up.getLoaderTheta();
+                agvCar = new AGVCar(clientId, ip, port, agvNo, 1, battery,agvStatus,positionID,positionX,positionY,agvAngle,gyroAngle,forkHeight,forkExtend,forkAngle,agvError);
+                EventBus.getDefault().post(agvCar);
+                log = formatDate(new Date(), "yyyy-MM-dd HH:mm:ss.SSS") + " 涓婅: " + ip + "[鏈夌爜瀹炴椂鏁版嵁鍖匽>>>" + pac.getSourceHexStr();
+                Log.d("updown", log);
+                AGVApplication.addLog(log);
                 break label;
             case DATA_WITHOUT_CODE_REPORT:
                 AGV_13_UP agv_13_up = (AGV_13_UP) pac.getBody().getMessageBody();
                 agvNo = pac.getHeader().getUniqueNo();
                 channelMap.put(clientId, ctx.channel());
-                EventBus.getDefault().post(new AGVCar(clientId,ip,port,agvNo,1));
+                agvCar = new AGVCar(clientId, ip, port, agvNo, 1, battery,agvStatus,positionID,positionX,positionY,agvAngle,gyroAngle,forkHeight,forkExtend,forkAngle,agvError);
+                EventBus.getDefault().post(agvCar);
+                log = formatDate(new Date(), "yyyy-MM-dd HH:mm:ss:SSS") + " 涓婅: " + ip + "[鏃犵爜瀹炴椂鏁版嵁鍖匽>>>" + pac.getSourceHexStr();
+                Log.d("updown", log);
+                AGVApplication.addLog(log);
+                break label;
+            case HEARTBEAT_REPORT:
+                AGV_03_UP agv_03_up = (AGV_03_UP) pac.getBody().getMessageBody();
+                battery = agv_03_up.getBattery();
+                agvError = agv_03_up.getError();
+//                pac.getBody().getMessageBody()
+                agvNo = pac.getHeader().getUniqueNo();
+                channelMap.put(clientId, ctx.channel());
+                agvCar = new AGVCar(clientId, ip, port, agvNo, 1, battery,agvStatus,positionID,positionX,positionY,agvAngle,gyroAngle,forkHeight,forkExtend,forkAngle,agvError);
+                EventBus.getDefault().post(agvCar);
+                log = formatDate(new Date(), "yyyy-MM-dd HH:mm:ss.SSS") + " 涓婅: " + ip + "[蹇冭烦鍖匽>>>" + pac.getSourceHexStr();
+                Log.d("updown", log);
+                AGVApplication.addLog(log);
                 break label;
             case LOGIN_REPORT:
                 AGV_F0_UP agv_f0_up = (AGV_F0_UP) pac.getBody().getMessageBody();
                 if (null != ackType) {
                     AgvPackage ackPac = AckMsgBuilder.ofSuccess(pac, ackType);
                     AGV_F0_DOWN agv_f0_down = (AGV_F0_DOWN) ackPac.getBody().getMessageBody();
+                    log = formatDate(new Date(), "yyyy-MM-dd HH:mm:ss.SSS") + " 涓婅: " + ip + "[鐧诲綍鍖匽>>>" + pac.getSourceHexStr();
+                    Log.d("updown", log);
+                    AGVApplication.addLog(log);
+
+//                    EventBus.getDefault().post(log);
+
                     ctx.writeAndFlush(ackPac);
                 }
+                battery = agv_f0_up.getBattery();
+//                pac.getBody().getMessageBody()
                 agvNo = pac.getHeader().getUniqueNo();
                 channelMap.put(clientId, ctx.channel());
-                EventBus.getDefault().post(new AGVCar(clientId,ip,port,agvNo,1));
+                agvCar = new AGVCar(clientId, ip, port, agvNo, 1, battery,agvStatus,positionID,positionX,positionY,agvAngle,gyroAngle,forkHeight,forkExtend,forkAngle,agvError);
+                EventBus.getDefault().post(agvCar);
                 break label;
 
         }
@@ -180,6 +241,7 @@
         }
         return sb.toString();
     }
+
     // 灏嗗崄鍏繘鍒跺瓧绗︿覆杞崲涓哄瓧鑺傛暟缁�
     private byte[] hexStringToByteArray(String s) {
         int len = s.length();

--
Gitblit v1.9.1