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