From 6d13023b5737f331a541ed00de66f774a5315b4a Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期一, 12 八月 2024 14:19:37 +0800
Subject: [PATCH] #

---
 app/src/main/java/com/example/agvcontroller/MainActivity.java              |   28 ++++++++-----
 app/src/main/java/com/example/agvcontroller/Item.java                      |    5 ++
 app/src/main/java/com/example/agvcontroller/StartActivity.java             |   16 +++++++
 app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java |    9 +---
 app/src/main/java/com/example/agvcontroller/socket/SocketManager.java      |    5 ++
 app/src/main/java/com/example/agvcontroller/ItemAdapter.java               |   33 ++++++++++++++++
 6 files changed, 76 insertions(+), 20 deletions(-)

diff --git a/app/src/main/java/com/example/agvcontroller/Item.java b/app/src/main/java/com/example/agvcontroller/Item.java
index c788dcb..e21f97b 100644
--- a/app/src/main/java/com/example/agvcontroller/Item.java
+++ b/app/src/main/java/com/example/agvcontroller/Item.java
@@ -5,6 +5,7 @@
     private String text;
     private String ip;
     private String agvNo;
+    private int id;
 
     public Item(String text,String ip,String agvNo) {
         this.text = text;
@@ -23,4 +24,8 @@
     public String getAgvNo() {
         return agvNo;
     }
+
+    public int getId() {
+        return id;
+    }
 }
diff --git a/app/src/main/java/com/example/agvcontroller/ItemAdapter.java b/app/src/main/java/com/example/agvcontroller/ItemAdapter.java
index 582adef..c981707 100644
--- a/app/src/main/java/com/example/agvcontroller/ItemAdapter.java
+++ b/app/src/main/java/com/example/agvcontroller/ItemAdapter.java
@@ -3,6 +3,7 @@
 import static androidx.core.content.ContextCompat.startActivity;
 
 import android.content.Intent;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -29,8 +30,18 @@
             super(itemView);
             title = itemView.findViewById(R.id.item_title);
             ip = itemView.findViewById(R.id.item_ip);
+
+            itemView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    Log.i("List","123");
+
+                }
+            });
+
         }
     }
+
 
     @Override
     public int getItemViewType(int position) {
@@ -45,7 +56,25 @@
     @Override
     public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
         View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false);
-        return new ViewHolder(view);
+        ViewHolder viewHolder = new ItemAdapter.ViewHolder(view);
+        view.setOnClickListener(this::onClick);
+        return viewHolder;
+    }
+
+    private void onClick(View view) {
+        if (mOnItemClickListener != null) {
+            mOnItemClickListener.onItemClick(view,(int)view.getTag());
+        }
+    }
+
+    private OnItemClickListener mOnItemClickListener = null;
+
+    public static interface OnItemClickListener {
+        void onItemClick(View view,int position);
+    }
+
+    public void setmOnItemClickListener(OnItemClickListener listener) {
+        this.mOnItemClickListener = listener;
     }
 
     @Override
@@ -61,6 +90,8 @@
             Item item = itemList.get(position);
             holder.ip.setText("璁惧IP锛� " + item.getIp());
             holder.title.setText("璁惧缂栧彿锛� " + item.getText());
+            holder.itemView.setTag(position);
+
         }
     }
 
diff --git a/app/src/main/java/com/example/agvcontroller/MainActivity.java b/app/src/main/java/com/example/agvcontroller/MainActivity.java
index 7d9de0f..4b3d37a 100644
--- a/app/src/main/java/com/example/agvcontroller/MainActivity.java
+++ b/app/src/main/java/com/example/agvcontroller/MainActivity.java
@@ -4,16 +4,19 @@
 import androidx.recyclerview.widget.RecyclerView;
 
 import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Vibrator;
 import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 
+import com.example.agvcontroller.socket.NettyServerHandler;
 import com.example.agvcontroller.socket.SocketManager;
 import com.example.agvcontroller.socket.SocketTask;
 
 import java.net.Socket;
+import java.util.Arrays;
 import java.util.List;
 
 import io.netty.buffer.ByteBuf;
@@ -29,6 +32,7 @@
     private Button vibrateButton;
     private Socket socket;
     SocketManager socketManager;
+    NettyServerHandler nettyServerHandler;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -43,8 +47,8 @@
 
         // 璁剧疆绔彛鍙峰苟鍚姩鏈嶅姟绔�
         //SocketManager.getInstance().setPort(8080);
-        socketManager = new SocketManager();
-        socketManager.startServer(8080);
+        //socketManager = new SocketManager();
+        //socketManager.startServer(8080);
 
         // 鍚姩鏈嶅姟绔�
         //new Thread(() -> {
@@ -54,21 +58,23 @@
         vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
         vibrateButton = findViewById(R.id.btn_stop);
 
+        Intent intent = getIntent();
+        String clientId = intent.getStringExtra("message");
+        Log.i("message1",clientId);
+
         vibrateButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 if (vibrator != null && vibrator.hasVibrator()) {
-                    vibrator.vibrate(500);
+                    //vibrator.vibrate(500);
                 }
 
-                //socket = new Socket();
-                //new SocketTask().execute("192.168.4.188", 802);
-                //ByteBuf message = Unpooled.copiedBuffer("Hello, Netty!", CharsetUtil.UTF_8);
-                //SocketManager.getInstance().sendMessage(message);
+                //String clientId = "/192.168.4.188:63160";
+                byte[] message1 = new byte[]{0x01, 0x02, 0x03, 0x04}; // 绀轰緥娑堟伅
+                Log.i("message2",clientId);
+                Log.i("message3", Arrays.toString(message1));
 
-                String clientId = "/192.168.4.188:63160";
-                byte[] message = new byte[]{0x01, 0x02, 0x03, 0x04}; // 绀轰緥娑堟伅
-                socketManager.sendMessage(clientId, message); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+                nettyServerHandler.sendMessageToClient(clientId, message1); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
             }
         });
 
@@ -80,6 +86,6 @@
         //SocketManager.getInstance().disconnect();
 
         //SocketManager.getInstance().stopServer();
-        socketManager.stopServer(); // 鍋滄鏈嶅姟鍣�
+        //socketManager.stopServer(); // 鍋滄鏈嶅姟鍣�
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/agvcontroller/StartActivity.java b/app/src/main/java/com/example/agvcontroller/StartActivity.java
index 6d9fef1..adb74d2 100644
--- a/app/src/main/java/com/example/agvcontroller/StartActivity.java
+++ b/app/src/main/java/com/example/agvcontroller/StartActivity.java
@@ -1,7 +1,10 @@
 package com.example.agvcontroller;
 
+import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
 import android.util.Log;
+import android.view.View;
 
 import androidx.appcompat.app.AppCompatActivity;
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -24,6 +27,7 @@
     SocketManager socketManager;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
+
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_start);
 
@@ -37,8 +41,18 @@
 
         EventBus.getDefault().register(this);
 
+        adapter.setmOnItemClickListener(new ItemAdapter.OnItemClickListener() {
+
+            @Override
+            public void onItemClick(View view, int position) {
+                Context context = view.getContext();
+                Intent intent = new Intent(context,MainActivity.class);
+                intent.putExtra("message", items.get(position).getIp());
+                startActivityForResult(intent,1);
+            }
+        });
         socketManager = new SocketManager();
-        socketManager.startServer(8080);
+        socketManager.startServer(8022);
     }
 
     @Subscribe(threadMode = ThreadMode.MAIN)
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 35c77b2..0076379 100644
--- a/app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java
+++ b/app/src/main/java/com/example/agvcontroller/socket/NettyServerHandler.java
@@ -16,6 +16,7 @@
 import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
+import java.util.Arrays;
 import java.util.concurrent.ConcurrentHashMap;
 
 public class NettyServerHandler extends ChannelInboundHandlerAdapter {
@@ -89,13 +90,7 @@
     }
 
     public static void sendMessageToClient(String clientId, byte[] message) {
-        Channel channel = channelMap.get(clientId);
-        if (channel != null && channel.isActive()) {
-            ByteBuf buf = Unpooled.wrappedBuffer(message);
-            channel.writeAndFlush(buf);
-        } else {
-            Log.d(TAG, "Client " + clientId + " is not connected");
-        }
+        Log.d(TAG, "Client " + clientId + " is not connected");
     }
 
     @Override
diff --git a/app/src/main/java/com/example/agvcontroller/socket/SocketManager.java b/app/src/main/java/com/example/agvcontroller/socket/SocketManager.java
index a04f2c0..22173fb 100644
--- a/app/src/main/java/com/example/agvcontroller/socket/SocketManager.java
+++ b/app/src/main/java/com/example/agvcontroller/socket/SocketManager.java
@@ -1,6 +1,10 @@
 package com.example.agvcontroller.socket;
 
 
+import android.util.Log;
+
+import java.io.Serializable;
+
 import io.netty.bootstrap.ServerBootstrap;
 import io.netty.channel.Channel;
 import io.netty.channel.ChannelInitializer;
@@ -44,6 +48,7 @@
     }
 
     public void sendMessage(String clientId, byte[] message) {
+        Log.i("Socket Manager",clientId);
         NettyServerHandler.sendMessageToClient(clientId, message);
     }
 

--
Gitblit v1.9.1