whycq
2025-01-04 fe9f146f29c677fc164b613a1b900e045366586f
app/src/main/java/com/example/agvcontroller/MainActivity.java
@@ -67,6 +67,13 @@
    private Button turnLeftBtn;
    private Button turnRightBtn;
    private Button cameraResetBtn;
    private Button loadResetBtn;
    private Button forkResetBtn;
    private Button gyroResetBtn;
    private Button liftResetBtn;
    private Button allResetBtn;
    private Button bodySwitchBtn; // 底盘/货叉切换
    private Socket socket;
@@ -77,7 +84,8 @@
    private RelativeLayout layout_reset;
    int liftHeight = 400;
    int extendWidth = 0;
    int extendWidth = -450;
    int angle = -91;  // 7 度
    SocketManager socketManager;
@@ -107,6 +115,7 @@
    // 底盘前进、后退、左旋转、右旋转
    private Handler handler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message msg) {
@@ -118,7 +127,7 @@
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 10));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
                handler.sendEmptyMessageDelayed(0, 100);
                handler.sendEmptyMessageDelayed(0, 100);  //  100ms 后发送下一条消息
            }
            if (isGoBackward) {
                String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
@@ -301,6 +310,16 @@
        layout_single = findViewById(R.id.layout_single);
        layout_reset = findViewById(R.id.layout_reset);
        cameraResetBtn = findViewById(R.id.btn_camera_reset);
        loadResetBtn = findViewById(R.id.btn_load_reset);
        forkResetBtn = findViewById(R.id.btn_fork_reset);
        gyroResetBtn = findViewById(R.id.btn_gyro_reset);
        liftResetBtn = findViewById(R.id.btn_lift_reset);
        allResetBtn = findViewById(R.id.btn_all_reset);
        Intent intent = getIntent();
        clientId = intent.getStringExtra("message");
        Log.i("message1",clientId);
@@ -380,7 +399,7 @@
                if (vibrator != null && vibrator.hasVibrator()) {
                    vibrator.vibrate(500);
                }
                if (liftHeight >= 3200) {
                if (liftHeight <= 3200) {
                    String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
                    AgvAction agvAction = new AgvAction<>(HandLift.class)
                            .setAgvNo(AgvNo)
@@ -426,7 +445,7 @@
                if (vibrator != null && vibrator.hasVibrator()) {
                    vibrator.vibrate(500);
                }
                if (liftHeight >= 3200) {
                if (extendWidth <= 450) {
                    String substring = String.valueOf(new SnowflakeIdWorker().nextId()).substring(0,16);
                    AgvAction agvAction = new AgvAction<>(HandExtendCollect.class)
                            .setAgvNo(AgvNo)
@@ -434,7 +453,7 @@
                            .setVal(1)
                            .bodySync((action) -> action.setPwd((short) 21));
                    nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
                    liftHeight += 100;
                    extendWidth += 50;
                } else {
                    DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最大值!");
                }
@@ -442,53 +461,171 @@
            }
        });
        // 收起
        frontPaddleExtendBtn.setOnClickListener(new View.OnClickListener() {
        // 收叉
        collectForkBtn.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<>(HandExtendCollect.class)
                        .setAgvNo(AgvNo)
                        .setSerialNo(substring)
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 21));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
                if (extendWidth >= -450) {
                    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) 21));
                    nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端户端
                    extendWidth -= 50;
                } else {
                    DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最大值!");
                }
            }
        });
        // 左旋
        frontPaddleExtendBtn.setOnClickListener(new View.OnClickListener() {
        turnLeftBtn.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<>(HandForkRotatopn.class)
                        .setAgvNo(AgvNo)
                        .setSerialNo(substring)
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 21));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
                if (angle <= 91) {
                    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) 21));
                    nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
                    angle += 7;
                } else {
                    DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最大值!");
                }
            }
        });
        // 右旋
        frontPaddleExtendBtn.setOnClickListener(new View.OnClickListener() {
        turnRightBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (vibrator != null && vibrator.hasVibrator()) {
                    vibrator.vibrate(500);
                }
                if (angle >= -91) {
                    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) 21));
                    nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
                    angle -= 7;
                } else {
                    DialogUtil.showAlertDialog(MainActivity.this, "提示", "已超最小值!");
                }
            }
        });
        // 相机复位按钮
        cameraResetBtn.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<>(HandForkRotatopn.class)
                AgvAction agvAction = new AgvAction<>(FrontPaddle.class)
                        .setAgvNo(AgvNo)
                        .setSerialNo(substring)
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 21));
                        .bodySync((action) -> action.setPwd((short) 1));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
            }
        });
        // 路径清除按钮
        loadResetBtn.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<>(FrontPaddle.class)
                        .setAgvNo(AgvNo)
                        .setSerialNo(substring)
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 1));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
            }
        });
        // 货叉归零按钮
        forkResetBtn.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<>(FrontPaddle.class)
                        .setAgvNo(AgvNo)
                        .setSerialNo(substring)
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 1));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
            }
        });
        // 陀螺仪复位按钮
        gyroResetBtn.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<>(FrontPaddle.class)
                        .setAgvNo(AgvNo)
                        .setSerialNo(substring)
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 1));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
            }
        });
        // 升降归零按钮
        liftResetBtn.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<>(FrontPaddle.class)
                        .setAgvNo(AgvNo)
                        .setSerialNo(substring)
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 1));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
            }
        });
        // 整机复位按钮
        allResetBtn.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<>(FrontPaddle.class)
                        .setAgvNo(AgvNo)
                        .setSerialNo(substring)
                        .setVal(1)
                        .bodySync((action) -> action.setPwd((short) 1));
                nettyServerHandler.sendMessageToClient(clientId, agvAction); // 发送消息到客户端
            }
        });
@@ -610,87 +747,7 @@
                    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;