# 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