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