2025-06-25 14:38:08 +08:00
|
|
|
|
# ASR5515串口通信Android应用
|
|
|
|
|
|
|
|
|
|
## 项目概述
|
|
|
|
|
这是一个用于与ASR5515设备进行串口通信的Android应用,提供设备管理、状态监控、固件升级等功能。应用通过串口(/dev/ttyS3)与设备通信,波特率115200。
|
|
|
|
|
|
|
|
|
|
## 主要功能
|
|
|
|
|
- 设备检查与状态监控
|
|
|
|
|
- 设备重启
|
|
|
|
|
- 日志控制
|
|
|
|
|
- 蓝牙版本查询
|
|
|
|
|
- 蓝牙固件升级
|
|
|
|
|
- 主机状态同步
|
|
|
|
|
- 心率血压血氧(HR/BP/BO)测量
|
|
|
|
|
- 自动测量
|
|
|
|
|
- 手动测量
|
|
|
|
|
- 动态测量功能
|
|
|
|
|
- Boot bin检查
|
|
|
|
|
- 采集频率设置
|
|
|
|
|
- 支持模拟模式(不实际连接硬件)
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
```
|
|
|
|
|
com.ismart.ib86
|
|
|
|
|
├── app/ # 主应用相关
|
|
|
|
|
│ └── MainActivity.java
|
|
|
|
|
├── common/ # 公共组件
|
|
|
|
|
│ └── utils/ # 工具类
|
|
|
|
|
└── feature/ # 功能模块
|
|
|
|
|
└── serial/ # 串口通信实现
|
|
|
|
|
├── ASR5515DeviceManager.java
|
|
|
|
|
├── ASR5515Protocol.java
|
|
|
|
|
└── SerialPortHelper.java
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 核心类说明
|
|
|
|
|
|
|
|
|
|
### 1. ASR5515Protocol
|
|
|
|
|
协议核心类,定义ASR5515设备的通信协议格式和命令。
|
|
|
|
|
|
|
|
|
|
**主要功能:**
|
|
|
|
|
- 定义设备信息结构(DeviceInfo)
|
|
|
|
|
- 定义各种命令(Commands)
|
|
|
|
|
- 定义帧结构(Frame)
|
|
|
|
|
- 提供各种请求和响应的创建与解析方法
|
|
|
|
|
|
|
|
|
|
### 2. SerialPortHelper
|
|
|
|
|
串口通信核心实现类,封装了与ASR5515设备的通信逻辑。
|
|
|
|
|
|
|
|
|
|
**主要功能:**
|
|
|
|
|
- 串口初始化和管理
|
|
|
|
|
- 数据发送和接收
|
|
|
|
|
- ASR5515协议命令的封装
|
|
|
|
|
- 回调机制处理各种响应
|
|
|
|
|
- 支持模拟模式
|
|
|
|
|
|
|
|
|
|
### 3. ASR5515DeviceManager
|
|
|
|
|
设备管理核心类,提供高级设备管理接口。
|
|
|
|
|
|
|
|
|
|
**主要功能:**
|
|
|
|
|
- 设备状态检查
|
|
|
|
|
- 设备重启
|
|
|
|
|
- 日志控制
|
|
|
|
|
- 蓝牙版本查询
|
|
|
|
|
- 蓝牙升级
|
|
|
|
|
- 主机状态同步
|
|
|
|
|
|
|
|
|
|
### 4. MainActivity
|
|
|
|
|
应用主界面,提供用户交互界面。
|
|
|
|
|
|
|
|
|
|
## 使用说明
|
|
|
|
|
|
|
|
|
|
### 初始化串口
|
|
|
|
|
```java
|
|
|
|
|
SerialPortHelper serialPortHelper = new SerialPortHelper("/dev/ttyS1", 115200);
|
|
|
|
|
serialPortHelper.setDeviceStatusCallback(new DeviceStatusCallback() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onDeviceCheckResponse(DeviceInfo deviceInfo) {
|
|
|
|
|
// 处理设备检查响应
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 实现其他回调方法...
|
|
|
|
|
});
|
|
|
|
|
serialPortHelper.open();
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 发送命令
|
|
|
|
|
```java
|
|
|
|
|
// 设备检查
|
|
|
|
|
serialPortHelper.checkDevice();
|
|
|
|
|
|
|
|
|
|
// 设备重启
|
|
|
|
|
serialPortHelper.restartDevice();
|
|
|
|
|
|
|
|
|
|
// 查询蓝牙版本
|
|
|
|
|
serialPortHelper.queryBtVersion();
|
|
|
|
|
|
|
|
|
|
// 蓝牙升级
|
|
|
|
|
serialPortHelper.upgradeBt();
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 关闭串口
|
|
|
|
|
```java
|
|
|
|
|
serialPortHelper.close();
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 开发环境要求
|
|
|
|
|
- Android Studio 最新稳定版
|
|
|
|
|
- Android SDK API 21+
|
|
|
|
|
- JDK 8+
|
|
|
|
|
- 支持串口的Android设备或模拟器
|
|
|
|
|
|
|
|
|
|
## 硬件连接指南
|
|
|
|
|
1. 确保ASR5515设备已正确供电
|
|
|
|
|
2. 使用USB转串口线连接设备与Android主机
|
|
|
|
|
3. 确认串口设备节点(通常为/dev/ttyS3)
|
|
|
|
|
4. 设置波特率为115200
|
|
|
|
|
|
|
|
|
|
## 构建与运行
|
|
|
|
|
1. 克隆项目
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://github.com/ismart/ib86.git
|
|
|
|
|
```
|
|
|
|
|
2. 导入Android Studio
|
|
|
|
|
3. 配置设备连接参数(在MainActivity中修改)
|
|
|
|
|
4. 构建并运行应用
|
|
|
|
|
|
|
|
|
|
## 测试方法
|
|
|
|
|
1. 单元测试
|
|
|
|
|
```bash
|
|
|
|
|
./gradlew test
|
|
|
|
|
```
|
|
|
|
|
2. 功能测试
|
|
|
|
|
- 使用模拟模式测试基本功能
|
|
|
|
|
- 连接实际设备测试通信功能
|
|
|
|
|
- 测试各种测量功能(HR/BP/BO)
|
|
|
|
|
|
|
|
|
|
## 依赖项
|
|
|
|
|
- Android SerialPort API
|
|
|
|
|
- ASR5515通信协议(参考ASR-5515通信协议.docx)
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
1. 需要设备支持串口通信
|
|
|
|
|
2. 需要正确配置串口名称和波特率
|
|
|
|
|
3. 模拟模式可用于开发测试
|
|
|
|
|
4. 实际使用时请参考ASR5515设备的具体通信协议
|
|
|
|
|
5. 测量功能需要ASR5515设备支持相应传感器
|