iB86/README.md

178 lines
5.4 KiB
Markdown
Raw Normal View History

2025-06-25 20:02:38 +08:00
# ASR5515 Android 串口通信应用
2025-06-25 14:38:08 +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. 状态监控
- 设备佩戴检测
- 主机状态同步
- 日志控制功能
5. 网络功能
- WiFi保活机制防止频繁断连
- 蓝牙配网功能
- 网络状态监控
2025-06-25 20:02:38 +08:00
## 技术架构
```mermaid
graph TD
A[Android App] --> B[串口通信层]
A --> N[网络管理层]
2025-06-25 20:02:38 +08:00
B --> C[协议解析层]
C --> D[设备管理]
C --> E[数据采集]
C --> F[状态监控]
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[协议实现]
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 设备通信协议
- 定义命令集和数据格式
- 处理数据帧的封装和解析
3. **ASR5515DeviceManager**
2025-06-25 20:02:38 +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
- Java 11
2025-06-25 20:02:38 +08:00
- Gradle 构建系统
- 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
- 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/ # 源代码目录
│ │ ├── 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
```
## 权限需求
应用需要以下权限:
- 存储读写权限
- 网络访问权限
- 蓝牙权限包括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