From 1eb6c8b77d99bb43437a974787baea33dc67253c Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期三, 14 八月 2024 17:01:21 +0800
Subject: [PATCH] #

---
 app/src/main/java/com/example/agvcontroller/MainActivity.java |  117 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 80 insertions(+), 37 deletions(-)

diff --git a/app/src/main/java/com/example/agvcontroller/MainActivity.java b/app/src/main/java/com/example/agvcontroller/MainActivity.java
index 7d9de0f..6bda580 100644
--- a/app/src/main/java/com/example/agvcontroller/MainActivity.java
+++ b/app/src/main/java/com/example/agvcontroller/MainActivity.java
@@ -4,21 +4,27 @@
 import androidx.recyclerview.widget.RecyclerView;
 
 import android.content.Context;
+import android.content.Intent;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
 import android.os.Vibrator;
 import android.util.Log;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
 import android.view.View;
 import android.widget.Button;
 
+import com.example.agvcontroller.protocol.AgvAction;
+import com.example.agvcontroller.protocol.ForceSwitchAction;
+import com.example.agvcontroller.protocol2.PackagePart;
+import com.example.agvcontroller.socket.NettyServerHandler;
 import com.example.agvcontroller.socket.SocketManager;
-import com.example.agvcontroller.socket.SocketTask;
+import com.example.agvcontroller.utils.SnowflakeIdWorker;
 
 import java.net.Socket;
 import java.util.List;
 
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import io.netty.util.CharsetUtil;
 
 public class MainActivity extends AppCompatActivity {
 
@@ -28,58 +34,95 @@
     private Vibrator vibrator;
     private Button vibrateButton;
     private Socket socket;
+
     SocketManager socketManager;
+
+    private boolean isDowm = false;
+    private Handler handler = new Handler(new Handler.Callback() {
+        @Override
+        public boolean handleMessage(Message msg) {
+            String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,3);
+
+            AgvAction agvAction = new AgvAction<>(ForceSwitchAction.class)
+                    .setAgvNo("1")
+                    .setSerialNo(substring)
+                    .setVal(1)
+                    .bodySync((action) -> action.setPwd((short) 21));
+
+
+            if (isDowm) {
+                System.out.println(agvAction);
+//                byte[] message2 = new byte[]{0x01, 0x02, 0x03, 0x06}; // 绀轰緥娑堟伅
+                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+//                handler.sendEmptyMessageDelayed(0, 100);
+            }
+            return false;
+        }
+    });
+
+    String clientId;
+    NettyServerHandler nettyServerHandler;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
 
-        // 浣滀负瀹㈡埛绔繛鎺�
-        //SocketManager.getInstance().setHostAndPort("192.168.4.188", 802);
-        //SocketManager.getInstance().connect();
-
-        //SocketManager.getInstance().setPort(8080);
-        //SocketManager.getInstance().startServer();
-
-        // 璁剧疆绔彛鍙峰苟鍚姩鏈嶅姟绔�
-        //SocketManager.getInstance().setPort(8080);
-        socketManager = new SocketManager();
-        socketManager.startServer(8080);
-
-        // 鍚姩鏈嶅姟绔�
-        //new Thread(() -> {
-        //    SocketManager.getInstance().startServer();
-        //}).start();
-
         vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
         vibrateButton = findViewById(R.id.btn_stop);
 
-        vibrateButton.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                if (vibrator != null && vibrator.hasVibrator()) {
-                    vibrator.vibrate(500);
-                }
+        Intent intent = getIntent();
+        clientId = intent.getStringExtra("message");
+        Log.i("message1",clientId);
+        // 鍒濆鍖栧崟杞翠娇鑳�
+        int single = 9;
+        int len = PackagePart.UNIQUENO.getLen()
+                + PackagePart.TIMESTAMP.getLen()
+                + PackagePart.COMMAND_MARK.getLen()
+                + 16 + 1 + 1 + 1;
+        for (int i = 0; i < single; i++) {
 
-                //socket = new Socket();
-                //new SocketTask().execute("192.168.4.188", 802);
-                //ByteBuf message = Unpooled.copiedBuffer("Hello, Netty!", CharsetUtil.UTF_8);
-                //SocketManager.getInstance().sendMessage(message);
+        }
+        byte[] message2 = new byte[]{0x01, 0x02, 0x03, 0x06}; // 绀轰緥娑堟伅
+        nettyServerHandler.sendMessageToClient(clientId, message2); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
 
-                String clientId = "/192.168.4.188:63160";
-                byte[] message = new byte[]{0x01, 0x02, 0x03, 0x04}; // 绀轰緥娑堟伅
-                socketManager.sendMessage(clientId, message); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
-            }
-        });
+        //vibrateButton.setOnClickListener(new View.OnClickListener() {
+        //    @Override
+        //    public void onClick(View v) {
+        //        if (vibrator != null && vibrator.hasVibrator()) {
+        //            //vibrator.vibrate(500);
+        //        }
+        //
+        //        //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));
+        //
+        //        nettyServerHandler.sendMessageToClient(clientId, message1); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+        //    }
+        //});
+        vibrateButton.setOnTouchListener(new CarTouchButton());
 
     }
 
+    private class CarTouchButton implements View.OnTouchListener {
+
+        @Override
+        public boolean onTouch(View view, MotionEvent motionEvent) {
+            if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+                isDowm = true;
+                handler.sendEmptyMessage(0);
+            } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+                isDowm = false;
+            }
+            return false;
+        }
+    }
     @Override
     protected void onDestroy() {
         super.onDestroy();
         //SocketManager.getInstance().disconnect();
 
         //SocketManager.getInstance().stopServer();
-        socketManager.stopServer(); // 鍋滄鏈嶅姟鍣�
+        //socketManager.stopServer(); // 鍋滄鏈嶅姟鍣�
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1