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 | 307 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 304 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/example/agvcontroller/MainActivity.java b/app/src/main/java/com/example/agvcontroller/MainActivity.java index b77dcb1..20629c5 100644 --- a/app/src/main/java/com/example/agvcontroller/MainActivity.java +++ b/app/src/main/java/com/example/agvcontroller/MainActivity.java @@ -16,12 +16,17 @@ import android.view.MotionEvent; import android.view.View; 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; @@ -50,16 +55,50 @@ private Button goForwardBtn; // 鍓嶈繘 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"; + private RelativeLayout layout_bottom; + private RelativeLayout layout_top; + private RelativeLayout layout_single; + private RelativeLayout layout_reset; + + 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; + @@ -107,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; } }); @@ -125,9 +275,27 @@ // forceSwitchBtn = findViewById(R.id.btn_force_switch); goForwardBtn = findViewById(R.id.btn_go_forward); goBackwardBtn = findViewById(R.id.btn_go_backward); - rotatopnLeftBtn = findViewById(R.id.btn_go_backward); - rotatopnRightBtn = findViewById(R.id.btn_go_forward); + 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); + + layout_bottom = findViewById(R.id.layout_bottom); + layout_top = findViewById(R.id.layout_top); + layout_single = findViewById(R.id.layout_single); + layout_reset = findViewById(R.id.layout_reset); Intent intent = getIntent(); clientId = intent.getStringExtra("message"); @@ -217,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) { @@ -231,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) { @@ -239,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) { @@ -247,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) { @@ -255,11 +438,129 @@ } 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; + } } + private boolean isVisble = true; + + // 璐у弶绛夋寜閽� + public void switchover(View view) { + if (isVisble) { + layout_bottom.setVisibility(View.GONE); + layout_top.setVisibility(View.VISIBLE); + bodySwitchBtn.setText("璐у弶"); + } else { + layout_bottom.setVisibility(View.VISIBLE); + layout_top.setVisibility(View.GONE); + bodySwitchBtn.setText("搴曠洏"); + } + isVisble = !isVisble; + + layout_single.setVisibility(View.GONE); + layout_reset.setVisibility(View.GONE); + + } + + // 鍗曡酱浣胯兘鎸夐挳 + public void switchSingle(View view) { + layout_bottom.setVisibility(View.GONE); + layout_top.setVisibility(View.GONE); + layout_single.setVisibility(View.VISIBLE); + layout_reset.setVisibility(View.GONE); + } + + // 澶嶄綅鎸夐挳 + public void switchRest(View view) { + layout_bottom.setVisibility(View.GONE); + layout_top.setVisibility(View.GONE); + layout_single.setVisibility(View.GONE); + layout_reset.setVisibility(View.VISIBLE); + } + @Override protected void onDestroy() { super.onDestroy(); -- Gitblit v1.9.1