2025-06-25 20:02:38 +08:00
|
|
|
|
# ASR5515 Android 串口通信应用
|
2025-06-25 14:38:08 +08:00
|
|
|
|
|
|
|
|
|
## 项目概述
|
2025-09-16 11:11:36 +08:00
|
|
|
|
这是一个基于 Android 平台的串口通信应用,主要用于与 ASR5515 设备进行通信。该应用实现了完整的串口通信协议,支持设备管理、数据采集、状态监控等功能。同时,应用还集成了WiFi保活、蓝牙配网等网络功能,以确保设备的稳定连接。
|
2025-06-25 14:38:08 +08:00
|
|
|
|
|
|
|
|
|
## 主要功能
|
2025-06-25 20:02:38 +08:00
|
|
|
|
1. 串口通信
|
|
|
|
|
- 基于 Android SerialPort API 的串口通信实现
|
|
|
|
|
- 支持自定义波特率和串口配置
|
|
|
|
|
- 数据帧封装和解析
|
|
|
|
|
|
|
|
|
|
2. 设备管理
|
|
|
|
|
- 设备检测和状态查询
|
|
|
|
|
- 设备重启控制
|
|
|
|
|
- 固件版本管理
|
|
|
|
|
- 蓝牙模块管理
|
|
|
|
|
|
|
|
|
|
3. 数据采集
|
|
|
|
|
- 心率、血压、血氧自动测量
|
|
|
|
|
- 手动测量模式支持
|
|
|
|
|
- 动态测量功能
|
|
|
|
|
- 可配置的数据采集频率
|
|
|
|
|
|
|
|
|
|
4. 状态监控
|
|
|
|
|
- 设备佩戴检测
|
|
|
|
|
- 主机状态同步
|
|
|
|
|
- 日志控制功能
|
|
|
|
|
|
2025-09-16 11:11:36 +08:00
|
|
|
|
5. 网络功能
|
|
|
|
|
- WiFi保活机制,防止频繁断连
|
|
|
|
|
- 蓝牙配网功能
|
|
|
|
|
- 网络状态监控
|
|
|
|
|
|
2025-06-25 20:02:38 +08:00
|
|
|
|
## 技术架构
|
|
|
|
|
|
|
|
|
|
```mermaid
|
|
|
|
|
graph TD
|
|
|
|
|
A[Android App] --> B[串口通信层]
|
2025-09-16 11:11:36 +08:00
|
|
|
|
A --> N[网络管理层]
|
2025-06-25 20:02:38 +08:00
|
|
|
|
B --> C[协议解析层]
|
|
|
|
|
C --> D[设备管理]
|
|
|
|
|
C --> E[数据采集]
|
|
|
|
|
C --> F[状态监控]
|
2025-09-16 11:11:36 +08:00
|
|
|
|
N --> O[WiFi保活]
|
|
|
|
|
N --> P[蓝牙配网]
|
2025-06-25 14:38:08 +08:00
|
|
|
|
|
2025-06-25 20:02:38 +08:00
|
|
|
|
B --> |SerialPortHelper| G[串口读写]
|
|
|
|
|
C --> |ASR5515Protocol| H[协议实现]
|
2025-09-16 11:11:36 +08:00
|
|
|
|
D --> |ASR5515DeviceManager| I[设备控制]
|
|
|
|
|
O --> |WiFiKeepAliveManager| J[WiFi锁管理]
|
2025-06-25 14:38:08 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-06-25 20:02:38 +08:00
|
|
|
|
## 核心模块
|
|
|
|
|
|
|
|
|
|
1. **SerialPortHelper**
|
|
|
|
|
- 串口通信的核心类
|
|
|
|
|
- 实现数据的发送和接收
|
|
|
|
|
- 管理通信线程和数据队列
|
|
|
|
|
|
|
|
|
|
2. **ASR5515Protocol**
|
|
|
|
|
- 实现 ASR5515 设备通信协议
|
|
|
|
|
- 定义命令集和数据格式
|
|
|
|
|
- 处理数据帧的封装和解析
|
|
|
|
|
|
2025-09-16 11:11:36 +08:00
|
|
|
|
3. **ASR5515DeviceManager**
|
2025-06-25 20:02:38 +08:00
|
|
|
|
- 设备信息查询
|
|
|
|
|
- 设备控制命令
|
|
|
|
|
- 固件升级支持
|
|
|
|
|
|
2025-09-16 11:11:36 +08:00
|
|
|
|
4. **WiFiKeepAliveManager**
|
|
|
|
|
- WiFi锁管理,防止WiFi频繁断连
|
|
|
|
|
- 网络状态监控
|
|
|
|
|
- 自动管理WiFi资源
|
|
|
|
|
|
|
|
|
|
5. **网络配置模块**
|
|
|
|
|
- 蓝牙配网功能
|
|
|
|
|
- 网络状态测试
|
|
|
|
|
- BSSID测试功能
|
|
|
|
|
|
2025-06-25 20:02:38 +08:00
|
|
|
|
## 通信协议
|
2025-07-18 17:21:43 +08:00
|
|
|
|
- 帧格式:`[命令字(2字节) + 序列号(2字节) + 长度(2字节) + 数据]`
|
2025-06-25 20:02:38 +08:00
|
|
|
|
- 支持的命令类型:
|
|
|
|
|
- 设备检查 (0x0065/0x0066)
|
|
|
|
|
- 设备重启 (0x0067/0x0068)
|
|
|
|
|
- 状态同步 (0x0079/0x007A)
|
|
|
|
|
- 数据采集 (0x00C9-0x00D0)
|
|
|
|
|
- 佩戴检测 (0x0105/0x0106)
|
|
|
|
|
|
|
|
|
|
## 开发环境
|
|
|
|
|
- Android Studio
|
2025-09-16 11:11:36 +08:00
|
|
|
|
- Java 11
|
2025-06-25 20:02:38 +08:00
|
|
|
|
- Gradle 构建系统
|
2025-09-16 11:11:36 +08:00
|
|
|
|
- Android SDK 34 (最低支持SDK 26)
|
2025-06-25 20:02:38 +08:00
|
|
|
|
|
|
|
|
|
## 依赖
|
2025-06-25 14:38:08 +08:00
|
|
|
|
- Android SerialPort API
|
2025-06-25 20:02:38 +08:00
|
|
|
|
- Android SDK
|
2025-09-16 11:11:36 +08:00
|
|
|
|
- OkHttp 网络库
|
|
|
|
|
- Aliyun Core
|
|
|
|
|
- FastJSON
|
|
|
|
|
- AndroidBootstrap UI库
|
|
|
|
|
- 阿里云视频云SDK
|
|
|
|
|
- 阿里云OSS存储
|
|
|
|
|
- 通义千问多模态对话SDK
|
|
|
|
|
|
|
|
|
|
## WiFi保活功能
|
|
|
|
|
应用实现了WiFi保活功能,通过Android的WifiLock机制保持WiFi连接稳定:
|
|
|
|
|
|
|
|
|
|
1. **核心实现**:WiFiKeepAliveManager类管理WifiLock生命周期
|
|
|
|
|
2. **网络监控**:通过NetworkStateMonitor监听网络状态变化
|
|
|
|
|
3. **自动管理**:WiFi连接时自动获取锁,断开时释放锁
|
|
|
|
|
4. **资源优化**:合理管理资源,避免不必要的电量消耗
|
2025-07-18 17:21:43 +08:00
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
```
|
|
|
|
|
├── app/ # 应用主模块
|
|
|
|
|
│ ├── src/ # 源代码目录
|
2025-09-16 11:11:36 +08:00
|
|
|
|
│ │ ├── main/ # 主要源代码
|
|
|
|
|
│ │ │ ├── java/ # Java源代码
|
|
|
|
|
│ │ │ │ ├── com/ismart/ib86/ # 主包
|
|
|
|
|
│ │ │ │ │ ├── app/ # 应用入口
|
|
|
|
|
│ │ │ │ │ ├── common/ # 通用组件
|
|
|
|
|
│ │ │ │ │ ├── feature/ # 功能模块
|
|
|
|
|
│ │ │ │ │ │ ├── gpio/ # GPIO功能
|
|
|
|
|
│ │ │ │ │ │ ├── motor/ # 电机控制
|
|
|
|
|
│ │ │ │ │ │ ├── network/ # 网络功能
|
|
|
|
|
│ │ │ │ │ │ ├── serial/ # 串口通信
|
|
|
|
|
│ │ │ │ │ ├── robotFace/ # 机器人表情
|
|
|
|
|
│ │ │ │ │ ├── view/ # 视图组件
|
|
|
|
|
│ │ │ ├── res/ # 资源文件
|
|
|
|
|
│ │ │ ├── assets/ # 资源文件
|
|
|
|
|
│ │ │ ├── libs/ # 本地依赖库
|
|
|
|
|
│ │ ├── test/ # 单元测试
|
2025-07-18 17:21:43 +08:00
|
|
|
|
│ ├── libs/ # 依赖库
|
|
|
|
|
│ └── build.gradle # 模块构建配置
|
|
|
|
|
├── gradle/ # Gradle配置
|
|
|
|
|
├── docs/ # ASR通信协议等文档资料
|
|
|
|
|
├── build.gradle # 项目构建配置
|
|
|
|
|
└── settings.gradle # 项目设置
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 构建与安装
|
|
|
|
|
1. 克隆仓库
|
|
|
|
|
```bash
|
|
|
|
|
git clone <仓库地址>
|
|
|
|
|
cd robot/app
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. 使用Gradle构建
|
|
|
|
|
```bash
|
|
|
|
|
./gradlew assembleDebug # Linux/Mac
|
|
|
|
|
gradlew.bat assembleDebug # Windows
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. 安装APK
|
|
|
|
|
```bash
|
|
|
|
|
adb install app/build/outputs/apk/debug/app-debug.apk
|
|
|
|
|
```
|
|
|
|
|
|
2025-09-16 11:11:36 +08:00
|
|
|
|
## 权限需求
|
|
|
|
|
应用需要以下权限:
|
|
|
|
|
- 存储读写权限
|
|
|
|
|
- 网络访问权限
|
|
|
|
|
- 蓝牙权限(包括BLE)
|
|
|
|
|
- WiFi状态访问和修改权限
|
|
|
|
|
- 位置权限(用于蓝牙配网)
|
|
|
|
|
- 录音权限
|
|
|
|
|
- 系统弹窗权限
|
|
|
|
|
|
2025-07-18 17:21:43 +08:00
|
|
|
|
## 许可证
|
|
|
|
|
本项目采用MIT许可证 - 详见LICENSE文件。
|
|
|
|
|
|
|
|
|
|
## 贡献指南
|
|
|
|
|
1. Fork本仓库
|
|
|
|
|
2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
|
|
|
|
|
3. 提交更改 (`git commit -m 'Add some amazing feature'`)
|
|
|
|
|
4. 推送到分支 (`git push origin feature/amazing-feature`)
|
|
|
|
|
5. 打开Pull Request
|