iB86/README.md

178 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ASR5515 Android 串口通信应用
## 项目概述
这是一个基于 Android 平台的串口通信应用,主要用于与 ASR5515 设备进行通信。该应用实现了完整的串口通信协议支持设备管理、数据采集、状态监控等功能。同时应用还集成了WiFi保活、蓝牙配网等网络功能以确保设备的稳定连接。
## 主要功能
1. 串口通信
- 基于 Android SerialPort API 的串口通信实现
- 支持自定义波特率和串口配置
- 数据帧封装和解析
2. 设备管理
- 设备检测和状态查询
- 设备重启控制
- 固件版本管理
- 蓝牙模块管理
3. 数据采集
- 心率、血压、血氧自动测量
- 手动测量模式支持
- 动态测量功能
- 可配置的数据采集频率
4. 状态监控
- 设备佩戴检测
- 主机状态同步
- 日志控制功能
5. 网络功能
- WiFi保活机制防止频繁断连
- 蓝牙配网功能
- 网络状态监控
## 技术架构
```mermaid
graph TD
A[Android App] --> B[串口通信层]
A --> N[网络管理层]
B --> C[协议解析层]
C --> D[设备管理]
C --> E[数据采集]
C --> F[状态监控]
N --> O[WiFi保活]
N --> P[蓝牙配网]
B --> |SerialPortHelper| G[串口读写]
C --> |ASR5515Protocol| H[协议实现]
D --> |ASR5515DeviceManager| I[设备控制]
O --> |WiFiKeepAliveManager| J[WiFi锁管理]
```
## 核心模块
1. **SerialPortHelper**
- 串口通信的核心类
- 实现数据的发送和接收
- 管理通信线程和数据队列
2. **ASR5515Protocol**
- 实现 ASR5515 设备通信协议
- 定义命令集和数据格式
- 处理数据帧的封装和解析
3. **ASR5515DeviceManager**
- 设备信息查询
- 设备控制命令
- 固件升级支持
4. **WiFiKeepAliveManager**
- WiFi锁管理防止WiFi频繁断连
- 网络状态监控
- 自动管理WiFi资源
5. **网络配置模块**
- 蓝牙配网功能
- 网络状态测试
- BSSID测试功能
## 通信协议
- 帧格式:`[命令字(2字节) + 序列号(2字节) + 长度(2字节) + 数据]`
- 支持的命令类型:
- 设备检查 (0x0065/0x0066)
- 设备重启 (0x0067/0x0068)
- 状态同步 (0x0079/0x007A)
- 数据采集 (0x00C9-0x00D0)
- 佩戴检测 (0x0105/0x0106)
## 开发环境
- Android Studio
- Java 11
- Gradle 构建系统
- Android SDK 34 (最低支持SDK 26)
## 依赖
- Android SerialPort API
- Android SDK
- OkHttp 网络库
- Aliyun Core
- FastJSON
- AndroidBootstrap UI库
- 阿里云视频云SDK
- 阿里云OSS存储
- 通义千问多模态对话SDK
## WiFi保活功能
应用实现了WiFi保活功能通过Android的WifiLock机制保持WiFi连接稳定
1. **核心实现**WiFiKeepAliveManager类管理WifiLock生命周期
2. **网络监控**通过NetworkStateMonitor监听网络状态变化
3. **自动管理**WiFi连接时自动获取锁断开时释放锁
4. **资源优化**:合理管理资源,避免不必要的电量消耗
## 项目结构
```
├── app/ # 应用主模块
│ ├── src/ # 源代码目录
│ │ ├── main/ # 主要源代码
│ │ │ ├── java/ # Java源代码
│ │ │ │ ├── com/ismart/ib86/ # 主包
│ │ │ │ │ ├── app/ # 应用入口
│ │ │ │ │ ├── common/ # 通用组件
│ │ │ │ │ ├── feature/ # 功能模块
│ │ │ │ │ │ ├── gpio/ # GPIO功能
│ │ │ │ │ │ ├── motor/ # 电机控制
│ │ │ │ │ │ ├── network/ # 网络功能
│ │ │ │ │ │ ├── serial/ # 串口通信
│ │ │ │ │ ├── robotFace/ # 机器人表情
│ │ │ │ │ ├── view/ # 视图组件
│ │ │ ├── res/ # 资源文件
│ │ │ ├── assets/ # 资源文件
│ │ │ ├── libs/ # 本地依赖库
│ │ ├── test/ # 单元测试
│ ├── 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状态访问和修改权限
- 位置权限(用于蓝牙配网)
- 录音权限
- 系统弹窗权限
## 许可证
本项目采用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