From a5519c76cb177d22ed5d001410132e430664c877 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期一, 19 八月 2024 16:03:00 +0800
Subject: [PATCH] #
---
app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java | 6
app/src/main/java/com/example/agvcontroller/MainActivity.java | 250 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 252 insertions(+), 4 deletions(-)
diff --git a/app/src/main/java/com/example/agvcontroller/MainActivity.java b/app/src/main/java/com/example/agvcontroller/MainActivity.java
index f9ffbe3..20629c5 100644
--- a/app/src/main/java/com/example/agvcontroller/MainActivity.java
+++ b/app/src/main/java/com/example/agvcontroller/MainActivity.java
@@ -18,11 +18,15 @@
import android.widget.Button;
import android.widget.RelativeLayout;
+import com.example.agvcontroller.action.BackPaddle;
import com.example.agvcontroller.action.ForwardBackAction;
+import com.example.agvcontroller.action.FrontPaddle;
+import com.example.agvcontroller.action.HandExtendCollect;
+import com.example.agvcontroller.action.HandForkRotatopn;
import com.example.agvcontroller.action.HandInAction;
+import com.example.agvcontroller.action.HandLift;
import com.example.agvcontroller.action.RotatopnLeftRight;
import com.example.agvcontroller.protocol.AgvAction;
-import com.example.agvcontroller.action.ForceSwitchAction;
import com.example.agvcontroller.action.HandOutAction;
import com.example.agvcontroller.socket.NettyServerHandler;
import com.example.agvcontroller.socket.SocketManager;
@@ -52,6 +56,18 @@
private Button goBackwardBtn; // 鍚庨��
private Button modelSwitchBtn; // 杩涘叆銆侀��鍑� 鎵嬪姩
+ private Button frontPaddleExtendBtn;
+ private Button frontPaddleCollectBtn;
+ private Button backPaddleExtendBtn;
+ private Button backPaddleCollectBtn;
+ private Button riseBtn;
+ private Button dropBtn;
+ private Button extendForkBtn;
+ private Button collectForkBtn;
+ private Button turnLeftBtn;
+ private Button turnRightBtn;
+
+
private Button bodySwitchBtn; // 搴曠洏/璐у弶鍒囨崲
private Socket socket;
private String AgvNo = "12";
@@ -63,12 +79,26 @@
SocketManager socketManager;
+
+ // 鎸夐挳闀挎寜浜嬩欢
private int autoVal = 1;
private boolean isAuto = true;
private boolean isGoForward = false;
private boolean isGoBackward = false;
private boolean isRotatopnRight = false;
private boolean isRotatopnLeft = false;
+
+ private boolean isFrontPaddleExtendBtn = false;
+ private boolean isFrontPaddleCollectBtn = false;
+ private boolean isBackPaddleExtendBtn = false;
+ private boolean isBackPaddleCollectBtn = false;
+ private boolean isRiseBtn = false;
+ private boolean isDropBtn = false;
+ private boolean isExtendForkBtn = false;
+ private boolean isCollectForkBtn = false;
+ private boolean isTurnLeftBtn = false;
+ private boolean isTurnRightBtn = false;
+
@@ -116,6 +146,117 @@
nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
handler.sendEmptyMessageDelayed(0, 100);
}
+
+ // 鍓嶆嫧鏉嗕几
+ if (isFrontPaddleExtendBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(FrontPaddle.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 鍓嶆嫧鏉嗘敹
+ if (isFrontPaddleCollectBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(FrontPaddle.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 鍚庢嫧鏉嗕几
+ if (isBackPaddleExtendBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(BackPaddle.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 鍚庢嫧鏉嗘敹
+ if (isBackPaddleCollectBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(BackPaddle.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 涓婂崌
+ if (isRiseBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(HandLift.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 涓嬮檷
+ if (isDropBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(HandLift.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 浼稿弶
+ if (isExtendForkBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(HandExtendCollect.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 鏀跺弶
+ if (isCollectForkBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(HandExtendCollect.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 璐у弶宸︽棆
+ if (isTurnLeftBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(HandForkRotatopn.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
+ // 璐у弶鍙虫棆
+ if (isTurnRightBtn) {
+ String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
+ AgvAction agvAction = new AgvAction<>(HandForkRotatopn.class)
+ .setAgvNo(AgvNo)
+ .setSerialNo(substring)
+ .setVal(1)
+ .bodySync((action) -> action.setPwd((short) -10));
+ nettyServerHandler.sendMessageToClient(clientId, agvAction); // 鍙戦�佹秷鎭埌瀹㈡埛绔�
+ handler.sendEmptyMessageDelayed(0, 100);
+ }
return false;
}
});
@@ -137,6 +278,17 @@
rotatopnLeftBtn = findViewById(R.id.btn_rotatopn_left);
rotatopnRightBtn = findViewById(R.id.btn_rotatopn_right);
modelSwitchBtn = findViewById(R.id.btn_model_switch);
+
+ frontPaddleExtendBtn = findViewById(R.id.btn_front_paddle_extend); // 鍓嶆嫧鏉�
+ frontPaddleCollectBtn = findViewById(R.id.btn_front_paddle_collect); // 鍓嶆嫧鏉�
+ backPaddleExtendBtn = findViewById(R.id.btn_back_paddle_extend); // 鍚庢嫧鏉�
+ backPaddleCollectBtn = findViewById(R.id.btn_back_paddle_collect); // 鍚庢嫧鏉�
+ riseBtn = findViewById(R.id.btn_rise);
+ dropBtn = findViewById(R.id.btn_drop);
+ extendForkBtn = findViewById(R.id.btn_extend_fork);
+ collectForkBtn = findViewById(R.id.btn_collect_fork);
+ turnLeftBtn = findViewById(R.id.btn_turn_left);
+ turnRightBtn = findViewById(R.id.btn_turn_right);
bodySwitchBtn = findViewById(R.id.btn_body_switch);
@@ -233,12 +385,24 @@
rotatopnLeftBtn.setOnTouchListener(new CarTouchButton());
rotatopnRightBtn.setOnTouchListener(new CarTouchButton());
+ frontPaddleExtendBtn.setOnTouchListener(new CarTouchButton());
+ frontPaddleCollectBtn.setOnTouchListener(new CarTouchButton());
+ backPaddleExtendBtn.setOnTouchListener(new CarTouchButton());
+ backPaddleCollectBtn.setOnTouchListener(new CarTouchButton());
+ riseBtn.setOnTouchListener(new CarTouchButton());
+ dropBtn.setOnTouchListener(new CarTouchButton());
+ extendForkBtn.setOnTouchListener(new CarTouchButton());
+ collectForkBtn.setOnTouchListener(new CarTouchButton());
+ turnLeftBtn.setOnTouchListener(new CarTouchButton());
+ turnRightBtn.setOnTouchListener(new CarTouchButton());
+
}
private class CarTouchButton implements View.OnTouchListener {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
+
if (view.getId() == R.id.btn_go_forward) {
// 鍓嶈繘
if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
@@ -247,6 +411,7 @@
} else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
isGoForward = false;
}
+
} else if (view.getId() == R.id.btn_go_backward) {
// 鍚庨��
if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
@@ -255,6 +420,7 @@
} else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
isGoBackward = false;
}
+
} else if (view.getId() == R.id.btn_rotatopn_left) {
// 宸︽棆杞�
if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
@@ -263,6 +429,7 @@
} else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
isRotatopnLeft = false;
}
+
} else if (view.getId() == R.id.btn_rotatopn_right) {
// 鍙虫棆杞�
if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
@@ -271,7 +438,88 @@
} else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
isRotatopnRight = false;
}
+ } else if (view.getId() == R.id.btn_front_paddle_extend) {
+ // 鍓嶆嫧鏉嗕几鍑�
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isFrontPaddleExtendBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isFrontPaddleExtendBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_front_paddle_collect) {
+ // 鍓嶆嫧鏉嗘敹璧�
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isFrontPaddleCollectBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isFrontPaddleCollectBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_back_paddle_extend) {
+ // 鍚庢嫧鏉嗕几鍑�
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isBackPaddleExtendBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isBackPaddleExtendBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_back_paddle_collect) {
+ // 鍚庢嫧鏉嗘敹璧�
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isBackPaddleCollectBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isBackPaddleCollectBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_rise) {
+ // 涓婂崌
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isRiseBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isRiseBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_drop) {
+ // 涓嬮檷
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isDropBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isDropBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_extend_fork) {
+ // 浼稿弶
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isExtendForkBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isExtendForkBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_collect_fork) {
+ // 鏀跺弶
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isCollectForkBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isCollectForkBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_turn_left) {
+ // 宸︽棆杞�
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isTurnLeftBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isTurnLeftBtn = false;
+ }
+ } else if (view.getId() == R.id.btn_turn_right) {
+ // 宸︽棆杞�
+ if (motionEvent.getAction() == KeyEvent.ACTION_DOWN) {
+ isTurnRightBtn = true;
+ handler.sendEmptyMessage(0);
+ } else if (motionEvent.getAction() == KeyEvent.ACTION_UP) {
+ isTurnRightBtn = false;
+ }
}
+
return false;
}
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 147f8de..f961e6a 100644
--- a/app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java
+++ b/app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java
@@ -36,11 +36,11 @@
HAND_FORK_ROTATOPN(0x87, "鎵嬪姩鎺у埗璐у弶鏃嬭浆", HandForkRotatopn.class),
- HAND_EXTEND_COLLECT(0x88, "鎵嬪姩鎺у埗璐у弶鏃嬭浆", HandExtendCollect.class),
+ HAND_EXTEND_COLLECT(0x88, "鎵嬪姩鎺у埗浼哥缉", HandExtendCollect.class),
- FRONT_PADDLE(0x89, "鎵嬪姩鎺у埗璐у弶鏃嬭浆", FrontPaddle.class),
+ FRONT_PADDLE(0x89, "鎵嬪姩鎺у埗鍓嶆嫧鏉�", FrontPaddle.class),
- BACK_PADDLE(0x8A, "鎵嬪姩鎺у埗璐у弶鏃嬭浆", BackPaddle.class),
+ BACK_PADDLE(0x8A, "鎵嬪姩鎺у埗鍚庢嫧鏉�", BackPaddle.class),
;
--
Gitblit v1.9.1