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/MainActivity.java | 250 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 249 insertions(+), 1 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; } -- Gitblit v1.9.1