GO2 APP SRC

news/2025/11/18 15:05:39/文章来源:https://www.cnblogs.com/flyingsir/p/19237856

 

  • com.unitree.* - 这是 宇树科技(Unitree) 的包名
  • com.unitree.doggo2 - 应该是主要的应用包
  • com.unitree.baselibrary - 基础库
  • com.unitree.lib_ble - 蓝牙库
  • com.unitree.lib_db - 数据库库
  • com.unitree.webrtc - WebRTC 通信

 

com.unitree.doggo2/
├── R.java                    (资源文件)
├── DataBinderMapperImpl.java (数据绑定)
├── data/
│   ├── Group.java           (分组数据)
│   └── Tutorial.java        (教程数据)
├── ui/
│   └── activity/
│       ├── main/
│       │   └── MainActivity.java
│       ├── feedback/
│       │   └── FeedBackActivity.java
│       ├── pet/
│       │   └── PetPlayActivity.java
│       ├── serverStatus/
│       │   └── ServerStatusActivity.java
│       ├── switchSport/
│       │   └── SwitchSportActivity.java
│       ├── versionInfo/
│       │   └── VersionInfoActivity.java
│       ├── web/
│       │   └── WebActivity.java
│       └── wifiSTA/
│           └── WifiSTAActivity.java
└── service/├── AppRouteService.java└── impl/└── WebEventServiceImpl.java

  

 

 

 

 

 

 

 

登录相关文件

1. 登录模块

<activity android:name="com.unitree.login.ui.login.LoginActivity" />
<activity android:name="com.unitree.login.ui.changeBind.ChangeBindActivity" />

对应文件路径:

  • com.unitree.login.ui.login.LoginActivity
  • com.unitree.login.ui.changeBind.ChangeBindActivity

2. 用户设置相关

<activity android:name="com.unitree.doggo2.ui.activity.userSetting.UserSettingActivity" />
<activity android:name="com.unitree.doggo2.ui.activity.account.AccountActivity" />
<activity android:name="com.unitree.doggo2.ui.activity.modifyPwd.ModifyPasswordActivity" />

对应文件路径:

  • com.unitree.doggo2.ui.activity.userSetting.UserSettingActivity
  • com.unitree.doggo2.ui.activity.account.AccountActivity
  • com.unitree.doggo2.ui.activity.modifyPwd.ModifyPasswordActivity

绑定相关文件

1. 设备绑定

<activity android:name="com.unitree.lib_ble.ui.bindDog.BindDogActivity" />
<activity android:name="com.unitree.lib_ble.ui.connect.ConnectActivity" />
<activity android:name="com.unitree.lib_ble.ui.connect.ApConnectActivity" />
<activity android:name="com.unitree.lib_ble.ui.connect.ConnectSuccessActivity" />
<activity android:name="com.unitree.lib_ble.ui.remote.RemoteActivity" />

对应文件路径:

  • com.unitree.lib_ble.ui.bindDog.BindDogActivity
  • com.unitree.lib_ble.ui.connect.ConnectActivity
  • com.unitree.lib_ble.ui.connect.ApConnectActivity
  • com.unitree.lib_ble.ui.connect.ConnectSuccessActivity
  • com.unitree.lib_ble.ui.remote.RemoteActivity

2. 远程绑定

<activity android:name="com.unitree.doggo2.ui.activity.remoteBind.RemoteBindActivity" />

对应文件路径:

  • com.unitree.doggo2.ui.activity.remoteBind.RemoteBindActivity

设置相关文件

1. 应用设置

<activity android:name="com.unitree.doggo2.ui.activity.dogSetting.DogSettingActivity" />
<activity android:name="com.unitree.doggo2.ui.activity.infoSetting.InfoSettingActivity" />
<activity android:name="com.unitree.doggo2.ui.activity.configSetting.StabilityActivity" />
<activity android:name="com.unitree.doggo2.ui.activity.configSetting.LoadActivity" />
<activity android:name="com.unitree.doggo2.ui.activity.configSetting.OffsetActivity" />

对应文件路径:

  • com.unitree.doggo2.ui.activity.dogSetting.DogSettingActivity
  • com.unitree.doggo2.ui.activity.infoSetting.InfoSettingActivity
  • com.unitree.doggo2.ui.activity.configSetting.StabilityActivity
  • com.unitree.doggo2.ui.activity.configSetting.LoadActivity
  • com.unitree.doggo2.ui.activity.configSetting.OffsetActivity

2. 网络设置

<activity android:name="com.unitree.doggo2.ui.activity.wifiSTA.WifiSTAActivity" />
<activity android:name="com.unitree.lib_ble.ui.netInput.NetInputActivity" />
<activity android:name="com.unitree.lib_ble.ui.netConfiguration.NetConfigurationActivity" />

对应文件路径:

  • com.unitree.doggo2.ui.activity.wifiSTA.WifiSTAActivity
  • com.unitree.lib_ble.ui.netInput.NetInputActivity
  • com.unitree.lib_ble.ui.netConfiguration.NetConfigurationActivity

核心应用类

<application android:name="com.unitree.doggo2.core.MainApplication">

对应文件路径:

  • com.unitree.doggo2.core.MainApplication (应用主入口)

总结

主要功能模块:

  1. 登录模块 (com.unitree.login.*)
  2. 用户设置 (com.unitree.doggo2.ui.activity.userSetting.*)
  3. 设备绑定 (com.unitree.lib_ble.ui.bindDog.*)
  4. 网络配置 (com.unitree.lib_ble.ui.netConfiguration.*)
  5. 应用设置 (com.unitree.doggo2.ui.activity.configSetting.*)

 

 

通信方式分析

1. 主要通信方式

从代码分析可以看出,App 与 GO2 机器狗之间有多种通信方式:

蓝牙通信 (主要方式)

<!-- 蓝牙相关权限 -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/><!-- 蓝牙服务 -->
<service android:name="com.unitree.lib_ble.ui.ble.BluetoothService">

关键文件:

  • com.unitree.lib_ble.ui.connect.ConnectActivity - 蓝牙连接
  • com.unitree.lib_ble.ui.bindDog.BindDogActivity - 设备绑定
  • com.unitree.lib_ble.ui.ble.BluetoothService - 蓝牙服务

UDP 网络通信

从之前看到的 UdpManager.java 文件:

private final String UDP_IP;
private final int UDP_PORT;
private final int UDP_PORT_RECEIVE;

WebRTC 实时通信

CommonUtilsKt.java 中的导入:

import com.unitree.webrtc.WebrtcEvent;
import com.unitree.webrtc.data.BaseRunner;
import com.unitree.webrtc.data.DogApiId;

设备发现和绑定流程

1. 设备发现

<!-- WiFi相关权限 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
<uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES"/>

发现方式:

  • 蓝牙扫描:通过 BluetoothService 扫描附近的 GO2 设备
  • WiFi 多播:使用 UDP 多播发现局域网内的设备
  • AP 模式:GO2 可以作为热点,App 直接连接

2. 绑定流程

从 Activity 名称可以看出绑定流程:

  1. ConnectActivity - 扫描和连接设备
  2. ApConnectActivity - AP 模式连接
  3. BindDogActivity - 绑定设备到账户
  4. ConnectSuccessActivity - 连接成功确认

控制方式分析

1. 直接控制

<!-- 相关控制Activity -->
<activity android:name="com.unitree.doggo2.ui.activity.pet.PetPlayActivity"/>
<activity android:name="com.unitree.doggo2.ui.activity.singleHand.RemoteControlActivity"/>
<activity android:name="com.unitree.doggo2.ui.activity.singleHand.SingleHandActivity"/>

2. 程序化控制

<activity android:name="com.unitree.doggo2.ui.activity.programWorkShop.ProgramWorkshopActivity"/>
<activity android:name="com.unitree.doggo2.ui.activity.programme.ProgrammeListActivity"/>
<activity android:name="com.unitree.doggo2.ui.activity.programme.RemoteSettingActivity"/>

3. 高级控制

<activity android:name="com.unitree.doggo2.ui.activity.mechanicalArm.MechanicalArmActivity"/>
<activity android:name="com.unitree.doggo2.ui.activity.gps.GpsLocationActivity"/>
<activity android:name="com.unitree.doggo2.ui.activity.map3D.Map3DActivity"/>

通信协议推测

1. 命令协议

UdpManager.java 和相关文件推测:

  • UDP 广播:用于设备发现和基础命令
  • WebRTC:用于实时视频流和低延迟控制
  • 蓝牙:用于配置、绑定和近距离控制

2. 数据交换

<!-- 数据相关Activity -->
<activity android:name="com.unitree.doggo2.ui.activity.dogData.DogDataActivity"/>
<activity android:name="com.unitree.doggo2.ui.activity.batteryData.BatteryDataActivity"/>
<activity android:name="com.unitree.doggo2.ui.activity.dogBaseData.DogInfoActivity"/>

控制架构总结

App 控制架构:
├── 发现层
│   ├── 蓝牙扫描 (BluetoothService)
│   ├── UDP多播发现 (UdpManager)
│   └── WiFi AP模式 (ApConnectActivity)
├── 连接层
│   ├── 蓝牙连接 (ConnectActivity)
│   ├── WiFi连接 (WifiSTAActivity)
│   └── WebRTC连接 (实时通信)
├── 控制层
│   ├── 直接控制 (RemoteControlActivity)
│   ├── 程序控制 (ProgramWorkshopActivity)
│   └── 高级功能 (MechanicalArmActivity)
└── 数据层├── 状态监控 (ServerStatusActivity)├── 数据展示 (DogDataActivity)└── 配置管理 (DogSettingActivity)

结论

这个 App 通过多种通信方式控制 GO2:

  1. 蓝牙用于设备发现、绑定和基础控制
  2. UDP用于网络发现和命令传输
  3. WebRTC用于实时视频流和低延迟控制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/968996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PC端的安卓文件管理器(基于ADB)

PC端的安卓文件管理器(基于ADB)https://github.com/gregko/AdbExplorer/releases

CF2172H - Shuffling Cards with Problem Solver 68!

Aru loves playing card games (Poker, Texas hold em, Balatro, etc.) and she has perfected the art of shuffling cards, especially the riffle shuffle. She is playing with Mutsuki now, and its her turn to …

2025年福祉座椅定制厂家权威推荐榜单:轮椅升降平台/轮椅升降机/福祉车源头厂家精选

中国60岁及以上人口在2025年预计突破3亿,占总人口比例达22%,其中失能老人数量超550万,庞大的需求推动福祉设备市场快速发展。 福祉座椅作为提升老年人和残障人士生活质量的关键设备,正成为康复器械市场的重要组成部…

如何通过 KubeSphere 构建云原生平台,加速金融科技业务创新

导语 面对金融科技行业的快速演进与高并发业务场景需求,某大型金融科技企业基于 KubeSphere 容器平台构建现代化的云原生技术底座,实现业务快速上线、系统高可用运行与运维管理的一体化提升。该平台的上线显著增强了…

SQL学习:WITH RECURSIVE

SQL学习:WITH RECURSIVE什么是WITH RECURSIVE:WITH RECURSIVE(递归 CTE)用于在 SQL 中写递归查询,常见场景如层级结构(组织、分类树)、序列生成等。基本语法结构: WITH RECURSIVE cte_name AS (-- 1. 基础查询…

2025年温度传感器批发厂家权威推荐榜单:水温传感器/传感器/红外温度传感器源头厂家精选

2024年中国温度传感器市场规模已突破9200亿元,随着工业自动化与智能家居需求激增,水温传感器、高精度传感器与红外温度传感器成为年增长率超过15%的热门品类。 作为工业控制、智能家居及医疗设备的关键感知元件,温度…

视频汇聚平台EasyCVR构筑新时代边防哨所的“智能视觉防线”

视频汇聚平台EasyCVR构筑新时代边防哨所的“智能视觉防线”边防哨所地处偏远,环境恶劣,是国家安全的第一道屏障。传统监控系统存在设备异构、网络不稳、系统孤立等痛点,难以形成统一的态势感知。本文将深入探讨视频…

【哲学思考】我常用的方法论

【哲学思考】我常用的方法论【哲学思考】我常用的方法论一、说明我讲诉自己常用的方法论。这是一个概括、归纳和总结我常用方法论的文本。二、我的方法论1、  绑定事件:  将多个事件绑定在一起,你被强迫做没有必…

30、cp 、mv 命令

1、cp 命令 复制文件或目录 语法:cp [选项] 源文件 目标文件 cp [选项] 源文件... 目标目录选项说明-r 或 -R 递归复制整个目录(包括子目录和文件)-i 覆盖前提示确认(interactive)-v 显示详细操作过程(verbose)…

linux apache php配置

在 Linux 系统中,Apache 服务器通常用于运行 PHP 脚本。以下是一些常见配置和命令,帮助你设置和管理 Apache 与 PHP 的集成:一、安装 Apache 和 PHP 如果你还没有安装 Apache 和 PHP,可以使用以下命令安装: sudo …

[随笔15] 日常杂事 - 枝-致

今天谈绩效了,给我打了2分。没有股票,没有奖金. 真的好像在预料之中,想着去之前就做了最坏的打算。 不过我觉得,虽然不讲其他的。 我自己做的不好的地方就是做事不够圆润,虽然很卖力的查问题,干活,但是没有很积…

linux apache php 配置

在 Linux 系统中,Apache 与 PHP 的配置通常涉及以下几个关键部分:一、安装 Apache 和 PHP 如果你的系统尚未安装 Apache 和 PHP,可以使用包管理器进行安装(以 Debian/Ubuntu 为例): sudo apt update sudo apt in…

linux android环境搭建

在 Linux 环境中搭建 Android 开发环境通常需要以下几个步骤,主要涉及安装 Android SDK、Android Studio、NDK 等工具。以下是一个通用的 Linux 环境搭建指南(以 Ubuntu 为例):一、安装 Android SDK 1. 下载 Andro…

吴恩达深度学习课程二: 改善深层神经网络 第三周:超参数调整,批量标准化和编程框架(三)多值预测与多分类

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

M02694:波兰表达式 25-11-18

|递归|栈| 本题递归属于解析类递归:即输入具有特定的结构,需要按结构解析,属于一种较为特殊的递归类题目。本题的关键点有二:一、对不同的“字符”进行不同的return(基于相应的结构特点),二、运用全局变量pos进…

详细介绍:金融专业毕业设计:python股票数据分析预测系统 神经网络LSTM预测算法 股价预测 深度学习 requests爬虫 Flask框架 大数据 毕业设计✅

详细介绍:金融专业毕业设计:python股票数据分析预测系统 神经网络LSTM预测算法 股价预测 深度学习 requests爬虫 Flask框架 大数据 毕业设计✅pre { white-space: pre !important; word-wrap: normal !important; ov…

linux android环境

您提到的“Linux Android环境”可能是指在Android设备上运行Linux,或者是在Android开发环境中使用Linux工具。以下是针对这两个常见场景的详细说明和建议:一、在 Android 设备上运行 Linux(Linux on Android) 1. A…

从“人防”到“技防”:视频融合平台EasyCVR打造快递代收点智能视频监控网

一、行业背景:快递代收点的繁荣与隐忧 随着电商经济的蓬勃发展,小区驿站、校园代收点、便利店代收等已成为城市物流“最后一公里”的关键节点。然而,在带来便利的同时,这些代收点也面临着巨大的管理压力:资产安全…

设置word中第一页不显示页码,第二页页码从1开始

1.将光标移动到第一页的末尾,点击 布局-分隔符-分节符-下一页,这时候光标跳到第二页开头2.双击第二页页尾,取消“链接到前一节”3.页码-设置页码格式,改为“起始页码”为“1”,确定4.然后就开始插入页码5.插入成功…

【E3S出版 | 高录用快见刊 | 即将截稿】第二届环境工程、城市规划与设计国际学术会议(EEUPD 2025)

第二届环境工程、城市规划与设计国际学术会议(EEUPD 2025)将于2025年11月21日-23日在马来西亚新山举行。【环境科学、城市规划、工程管理、设计类稿件均可投递!】 【高录用快见刊:对综述类方向友好,录用门槛不高!…