peng e01fd86961 refactor(notification): 将通知显示从Activity改为DialogFragment
重构通知显示机制,使用DialogFragment替代Activity,提升性能和用户体验:
1. 删除CommonNotificationActivity及相关资源
2. 新增NotificationDialogFragment实现全屏弹窗
3. 更新NotificationManager适配新机制
4. 添加全屏样式和布局文件
5. 优化系统UI隐藏逻辑
2025-09-17 14:42:17 +08:00
2025-06-25 14:38:08 +08:00
2025-06-25 14:38:08 +08:00
2025-06-25 14:38:08 +08:00

ASR5515 Android 串口通信应用

项目概述

这是一个基于 Android 平台的串口通信应用,主要用于与 ASR5515 设备进行通信。该应用实现了完整的串口通信协议支持设备管理、数据采集、状态监控等功能。同时应用还集成了WiFi保活、蓝牙配网等网络功能以确保设备的稳定连接。

主要功能

  1. 串口通信

    • 基于 Android SerialPort API 的串口通信实现
    • 支持自定义波特率和串口配置
    • 数据帧封装和解析
  2. 设备管理

    • 设备检测和状态查询
    • 设备重启控制
    • 固件版本管理
    • 蓝牙模块管理
  3. 数据采集

    • 心率、血压、血氧自动测量
    • 手动测量模式支持
    • 动态测量功能
    • 可配置的数据采集频率
  4. 状态监控

    • 设备佩戴检测
    • 主机状态同步
    • 日志控制功能
  5. 网络功能

    • WiFi保活机制防止频繁断连
    • 蓝牙配网功能
    • 网络状态监控

技术架构

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. 克隆仓库

    git clone <仓库地址>
    cd robot/app
    
  2. 使用Gradle构建

    ./gradlew assembleDebug  # Linux/Mac
    gradlew.bat assembleDebug  # Windows
    
  3. 安装APK

    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
Description
No description provided
Readme 5.6 MiB
Languages
Java 51.3%
C 42.1%
Kotlin 5.6%
C++ 0.9%