From 4e3fdde993a3ae960eedf1c1df8341583d7825da Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期四, 15 八月 2024 15:53:31 +0800
Subject: [PATCH] #

---
 app/src/main/java/com/example/agvcontroller/action/SingleSwitchAction.java    |   32 ++++++++
 app/src/main/java/com/example/agvcontroller/action/SingleSwitchRunAction.java |   32 ++++++++
 app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java       |   11 ++
 app/src/main/java/com/example/agvcontroller/MainActivity.java                 |   39 ++++++---
 app/src/main/java/com/example/agvcontroller/action/HandOutAction.java         |   32 ++++++++
 app/src/main/java/com/example/agvcontroller/action/HandInAction.java          |   32 ++++++++
 app/src/main/java/com/example/agvcontroller/action/ForceStopAction.java       |   32 ++++++++
 7 files changed, 194 insertions(+), 16 deletions(-)

diff --git a/app/src/main/java/com/example/agvcontroller/MainActivity.java b/app/src/main/java/com/example/agvcontroller/MainActivity.java
index 3b2a5ee..72f66e2 100644
--- a/app/src/main/java/com/example/agvcontroller/MainActivity.java
+++ b/app/src/main/java/com/example/agvcontroller/MainActivity.java
@@ -45,24 +45,29 @@
     private boolean isDowm = false;
     private boolean isOpen = false;
 
+    String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
 
 
     private Handler handler = new Handler(new Handler.Callback() {
         @Override
         public boolean handleMessage(Message msg) {
-            String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,15);
-
-            AgvAction agvAction = new AgvAction<>(ForceSwitchAction.class)
-                    .setAgvNo("1")
-                    .setSerialNo(substring)
-                    .setVal(1)
-                    .bodySync((action) -> action.setPwd((short) 21));
-
-
             if (isDowm) {
-                System.out.println(agvAction);
+                AgvAction agvAction = new AgvAction<>(ForceSwitchAction.class)
+                        .setAgvNo("1")
+                        .setSerialNo(substring)
+                        .setVal(1)
+                        .bodySync((action) -> action.setPwd((short) 21));
                 nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
-//                handler.sendEmptyMessageDelayed(0, 100);
+                handler.sendEmptyMessageDelayed(0, 100);
+            }
+            if (isOpen) {
+                AgvAction agvAction = new AgvAction<>(ForceSwitchAction.class)
+                        .setAgvNo("12")
+                        .setSerialNo(substring)
+                        .setVal(1)
+                        .bodySync((action) -> action.setPwd((short) 21));
+                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+                handler.sendEmptyMessageDelayed(0, 100);
             }
             return false;
         }
@@ -87,13 +92,13 @@
         clientId = intent.getStringExtra("message");
         Log.i("message1",clientId);
 
+        // 杩涘嚭鎵嬪姩妯″紡
         forceSwitchBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 if (vibrator != null && vibrator.hasVibrator()) {
                     vibrator.vibrate(500);
                 }
-                String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
 
                 AgvAction agvAction = new AgvAction<>(HandOutAction.class)
                         .setAgvNo("12")
@@ -114,15 +119,19 @@
         @Override
         public boolean onTouch(View view, MotionEvent motionEvent) {
             if (view.getId() == R.id.btn_go_forward) {
-                Log.i("message1","1111");
-            } else if (view.getId() == R.id.btn_go_backward) {
-                Log.i("message1","22222");
                 if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
                     isDowm = true;
                     handler.sendEmptyMessage(0);
                 } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
                     isDowm = false;
                 }
+            } else if (view.getId() == R.id.btn_go_backward) {
+                if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+                    isOpen = true;
+                    handler.sendEmptyMessage(0);
+                } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+                    isOpen = false;
+                }
             }
             return false;
         }
diff --git a/app/src/main/java/com/example/agvcontroller/action/ForceStopAction.java b/app/src/main/java/com/example/agvcontroller/action/ForceStopAction.java
new file mode 100644
index 0000000..405afe7
--- /dev/null
+++ b/app/src/main/java/com/example/agvcontroller/action/ForceStopAction.java
@@ -0,0 +1,32 @@
+package com.example.agvcontroller.action;
+
+import com.example.agvcontroller.protocol.IActionBody;
+import com.example.agvcontroller.socket.RadixTools;
+
+import java.io.Serializable;
+
+public class ForceStopAction implements IActionBody, Serializable {
+
+    private static final long serialVersionUID = -3250235107705010316L;
+
+    private Short pwd;
+
+    @Override
+    public byte[] writeToBytes() {
+        byte[] bytes = RadixTools.shortToByte(pwd);
+        return bytes;
+    }
+
+    @Override
+    public void readFromBytes(byte[] messageBodyBytes) {
+
+    }
+
+    public Short getPwd() {
+        return pwd;
+    }
+
+    public void setPwd(Short pwd) {
+        this.pwd = pwd;
+    }
+}
diff --git a/app/src/main/java/com/example/agvcontroller/action/HandInAction.java b/app/src/main/java/com/example/agvcontroller/action/HandInAction.java
new file mode 100644
index 0000000..a7ff530
--- /dev/null
+++ b/app/src/main/java/com/example/agvcontroller/action/HandInAction.java
@@ -0,0 +1,32 @@
+package com.example.agvcontroller.action;
+
+import com.example.agvcontroller.protocol.IActionBody;
+import com.example.agvcontroller.socket.RadixTools;
+
+import java.io.Serializable;
+
+public class HandInAction implements IActionBody, Serializable {
+
+    private static final long serialVersionUID = -3250235107705010316L;
+
+    private Short pwd;
+
+    @Override
+    public byte[] writeToBytes() {
+        byte[] bytes = RadixTools.shortToByte(pwd);
+        return bytes;
+    }
+
+    @Override
+    public void readFromBytes(byte[] messageBodyBytes) {
+
+    }
+
+    public Short getPwd() {
+        return pwd;
+    }
+
+    public void setPwd(Short pwd) {
+        this.pwd = pwd;
+    }
+}
diff --git a/app/src/main/java/com/example/agvcontroller/action/HandOutAction.java b/app/src/main/java/com/example/agvcontroller/action/HandOutAction.java
new file mode 100644
index 0000000..50fc028
--- /dev/null
+++ b/app/src/main/java/com/example/agvcontroller/action/HandOutAction.java
@@ -0,0 +1,32 @@
+package com.example.agvcontroller.action;
+
+import com.example.agvcontroller.protocol.IActionBody;
+import com.example.agvcontroller.socket.RadixTools;
+
+import java.io.Serializable;
+
+public class HandOutAction implements IActionBody, Serializable {
+
+    private static final long serialVersionUID = -3250235107705010316L;
+
+    private Short pwd;
+
+    @Override
+    public byte[] writeToBytes() {
+        byte[] bytes = RadixTools.shortToByte(pwd);
+        return bytes;
+    }
+
+    @Override
+    public void readFromBytes(byte[] messageBodyBytes) {
+
+    }
+
+    public Short getPwd() {
+        return pwd;
+    }
+
+    public void setPwd(Short pwd) {
+        this.pwd = pwd;
+    }
+}
diff --git a/app/src/main/java/com/example/agvcontroller/action/SingleSwitchAction.java b/app/src/main/java/com/example/agvcontroller/action/SingleSwitchAction.java
new file mode 100644
index 0000000..23ff3be
--- /dev/null
+++ b/app/src/main/java/com/example/agvcontroller/action/SingleSwitchAction.java
@@ -0,0 +1,32 @@
+package com.example.agvcontroller.action;
+
+import com.example.agvcontroller.protocol.IActionBody;
+import com.example.agvcontroller.socket.RadixTools;
+
+import java.io.Serializable;
+
+public class SingleSwitchAction implements IActionBody, Serializable {
+
+    private static final long serialVersionUID = -3250235107705010316L;
+
+    private Short pwd;
+
+    @Override
+    public byte[] writeToBytes() {
+        byte[] bytes = RadixTools.shortToByte(pwd);
+        return bytes;
+    }
+
+    @Override
+    public void readFromBytes(byte[] messageBodyBytes) {
+
+    }
+
+    public Short getPwd() {
+        return pwd;
+    }
+
+    public void setPwd(Short pwd) {
+        this.pwd = pwd;
+    }
+}
diff --git a/app/src/main/java/com/example/agvcontroller/action/SingleSwitchRunAction.java b/app/src/main/java/com/example/agvcontroller/action/SingleSwitchRunAction.java
new file mode 100644
index 0000000..37502e1
--- /dev/null
+++ b/app/src/main/java/com/example/agvcontroller/action/SingleSwitchRunAction.java
@@ -0,0 +1,32 @@
+package com.example.agvcontroller.action;
+
+import com.example.agvcontroller.protocol.IActionBody;
+import com.example.agvcontroller.socket.RadixTools;
+
+import java.io.Serializable;
+
+public class SingleSwitchRunAction implements IActionBody, Serializable {
+
+    private static final long serialVersionUID = -3250235107705010316L;
+
+    private Short pwd;
+
+    @Override
+    public byte[] writeToBytes() {
+        byte[] bytes = RadixTools.shortToByte(pwd);
+        return bytes;
+    }
+
+    @Override
+    public void readFromBytes(byte[] messageBodyBytes) {
+
+    }
+
+    public Short getPwd() {
+        return pwd;
+    }
+
+    public void setPwd(Short pwd) {
+        this.pwd = pwd;
+    }
+}
diff --git a/app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java b/app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java
index 1cdd119..66682a2 100644
--- a/app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java
+++ b/app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java
@@ -1,16 +1,25 @@
 package com.example.agvcontroller.protocol;
 
+import com.example.agvcontroller.action.ForceStopAction;
 import com.example.agvcontroller.action.ForceSwitchAction;
 import com.example.agvcontroller.action.HandInAction;
 import com.example.agvcontroller.action.HandOutAction;
+import com.example.agvcontroller.action.SingleSwitchAction;
+import com.example.agvcontroller.action.SingleSwitchRunAction;
 
 public enum HandleCmdType {
 
-    HAND_OUT(0x00, "鎺ㄥ嚭鎵嬪姩妯″紡", HandOutAction.class),
+    HAND_OUT(0x00, "閫�鍑烘墜鍔ㄦā寮�", HandOutAction.class),
 
     HAND_IN(0x01, "杩涘叆鎵嬪姩妯″紡", HandInAction.class),
 
     FORCE_SWITCH(0x80, "寮�鍚�/鍏抽棴寮哄埗", ForceSwitchAction.class),
+
+    SINGLE_SWITCH(0x8C  , "鍗曡酱浣胯兘", SingleSwitchAction.class),
+
+    SINGLE_SWITCH_RUN(0x8C  , "寮哄埗鍗曡酱鐐瑰姩", SingleSwitchRunAction.class),
+
+    FORCE_STOP(0xF0, "鎬ュ仠", ForceStopAction.class),
     ;
 
     public int cmdCode;

--
Gitblit v1.9.1