Skip to content

Latest commit

 

History

History
121 lines (91 loc) · 4.23 KB

File metadata and controls

121 lines (91 loc) · 4.23 KB

SimpleDemo 指南

功能概述

SimpleDemo 是随 M20_AndroidSDK 一同交付的示例 App,展示了 SDK 的核心能力,可作为二次开发的代码基底。主要功能包括:

  1. 机器人连接:UDP 连接建立、断开与心跳检测
  2. 状态监控:实时显示运动模式、电量、姿态、位置等状态
  3. 摇杆遥控:虚拟摇杆界面,实时发送轴指令
  4. 模式切换:一键切换机器人运动模式(站立、行走、趴下等)
  5. 急停按钮:一键触发紧急停止
  6. 虚拟摇杆:通过屏幕虚拟摇杆发送轴指令(SimpleDemo 不集成 ControllerSDK,手柄需自行接入)
  7. 异常处理:连接异常、机器人错误码提示
  8. 生命周期管理:Activity 生命周期中的连接状态维护

运行步骤

1. 环境准备

  • Android Studio 最新稳定版
  • JDK 17+
  • 山猫 M20 机器人(与开发设备在同一局域网)

2. 导入项目

在 Android Studio 中打开项目根目录,Gradle 会自动同步。

3. 编译

./gradlew :SimpleDemo:assembleDebug

或直接点击 Android Studio 的 Run 按钮。

4. 配置机器人 IP

在 App 设置页面或 Application 类中修改机器人 IP 地址,确保与机器人处于同一局域网。

5. 安装与运行

连接真机或模拟器,运行 SimpleDemo。

6. 连接机器人

App 启动后自动发起连接,通过 RobotStatesManager.robotConnectStatus 观察连接状态。

7. 验证功能

  • 查看状态监控页面是否显示实时数据
  • 使用虚拟摇杆控制机器人运动
  • 切换运动模式、急停等功能是否正常

代码结构

顶层结构

SimpleDemo/
├── app/                          # 主 App 模块
│   ├── src/main/java/            # 源码
│   │   ├── application/          # MyApplication:SDK 初始化
│   │   ├── ui/                   # UI 层
│   │   │   ├── main/             # 主页 Activity + 状态监控
│   │   │   ├── joystick/         # 虚拟摇杆界面
│   │   │   ├── settings/         # 设置页面
│   │   │   └── widget/           # 自定义 View
│   │   ├── viewmodel/            # ViewModel 封装
│   │   └── utils/                # 工具类
│   ├── src/main/res/             # 资源文件
│   └── src/main/AndroidManifest.xml
├── build.gradle
└── proguard-rules.pro

核心文件一览

文件 职责
MyApplication SDK 初始化、连接管理
MainActivity 主页 Activity,状态监控入口
JoystickFragment 虚拟摇杆 UI,通过 axisDataProvider 提供 AxisData
RobotViewModel 封装 LiveData 观察,UI 数据源
SettingsActivity 机器人 IP 等配置

数据流

UI 操作(摇杆/按钮)
    ↓
RobotViewModel
    ↓
RobotSdkManager.axisDataProvider / sendCustomMessage
    ↓
IRobotConnection(UDP)
    ↓
机器人本体
    ↓
响应回包 → ProtocolConverter → RobotStatesManager(LiveData)
    ↓
UI 更新(LiveData.observe)

自定义开发场景

场景 修改位置 说明
修改机器人 IP 配置方式 MyApplication / SettingsActivity 改为从网络配置或服务器获取
自定义 UI 主题 res/values/themes.xml 修改颜色、字体、布局
新增状态显示面板 新增 Fragment + ViewModel 监听新的 LiveData 维度
接入实体手柄 参考 controller-sdk-integration.md 初始化 ControllerManager
上装设备控制(机械臂/云台) 独立模块实现 上装通信(Socket、协议编解码等)需根据设备厂家文档自行实现,不通过 RobotSdkManager
多页面导航 增加导航组件 使用 Jetpack Navigation 或自定义路由
持久化配置 新增 SharedPreferences 封装 保存机器人 IP、用户偏好等
错误提示优化 RobotViewModel + UI 将错误码映射为友好的中文提示
日志记录 全局异常捕获 + 日志框架 接入 Timber 或自建日志系统
多语言支持 res/values-*/strings.xml 增加多语言字符串资源

开源许可

本项目采用 Apache License 2.0 开源。