#
whycq
2025-01-04 98e96b71e1866cf1f3315d15b5ae7ced6447519e
#
3个文件已修改
290 ■■■■■ 已修改文件
app/src/main/java/com/example/agvcontroller/MainActivity.java 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gradle/wrapper/gradle-wrapper.properties 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
app/src/main/java/com/example/agvcontroller/protocol/HandleCmdType.java
@@ -1,15 +1,21 @@
package com.example.agvcontroller.protocol;
import com.example.agvcontroller.action.AllResetAction;
import com.example.agvcontroller.action.BackPaddle;
import com.example.agvcontroller.action.CameraResetAction;
import com.example.agvcontroller.action.ForceStopAction;
import com.example.agvcontroller.action.ForceSwitchAction;
import com.example.agvcontroller.action.ForkResetAction;
import com.example.agvcontroller.action.ForwardBackAction;
import com.example.agvcontroller.action.FrontPaddle;
import com.example.agvcontroller.action.GyroResetAction;
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.HandOutAction;
import com.example.agvcontroller.action.LiftResetAction;
import com.example.agvcontroller.action.LoadResetAction;
import com.example.agvcontroller.action.RotatopnLeftRight;
import com.example.agvcontroller.action.SingleSwitchAction;
import com.example.agvcontroller.action.SingleSwitchRunAction;
@@ -28,6 +34,18 @@
    FORCE_STOP(0xF0, "急停", ForceStopAction.class),
    ALL_RESET(0x60, "整机复位", AllResetAction.class),
    CAMERA_RESET(0x61, "相机复位", CameraResetAction.class),
    GYRO_RESET(0x62, "陀螺仪复位", GyroResetAction.class),
    LOAD_RESET(0x65, "清除路径", LoadResetAction.class),
    FORK_RESET(0x66, "货叉归零", ForkResetAction.class),
    LIFT_RESET(0x68, "升降归零", LiftResetAction.class),
    FORWARD_BACK(0x81, "点动前进(后退)", ForwardBackAction.class),
    ROTATOPN_LEFT_RIGHT(0x82, "点动旋转(底盘)", RotatopnLeftRight.class),
gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,7 @@
#Mon Jul 29 18:35:09 CST 2024
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
#distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
distributionUrl=file:///D:/workspace/AGV_Controller/gradle/wrapper/gradle-8.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists