From a368ce9048e7e27bf3e922fe0f0d2d4732a7da94 Mon Sep 17 00:00:00 2001
From: ZhangJinLong <19357383190@163.com>
Date: Tue, 2 Sep 2025 15:51:47 +0800
Subject: [PATCH] second
---
.idea/deploymentTargetSelector.xml | 8 +
.idea/vcs.xml | 6 +
JNI_FIX_SUMMARY.md | 141 ++
README_REFACTOR.md | 136 ++
SIGNAL_PROCESSOR_README.md | 271 +++
app/build.gradle.kts | 6 +-
app/src/main/assets/ecg_data_raw.dat | Bin 0 -> 2354846 bytes
app/src/main/cpp/CMakeLists.txt | 24 +
app/src/main/cpp/include/cpp/data_mapper.h | 58 +
app/src/main/cpp/include/cpp/data_praser.h | 3 +
app/src/main/cpp/include/cpp/indicator_cal.h | 74 +
.../main/cpp/include/cpp/signal_processor.h | 179 ++
app/src/main/cpp/jni/jni_bridge.cpp | 841 ++++++++-
app/src/main/cpp/src/data_mapper.cpp | 531 ++++++
app/src/main/cpp/src/data_praser.cpp | 47 +-
app/src/main/cpp/src/indicator_cal.cpp | 1064 +++++++++++
app/src/main/cpp/src/signal_processor.cpp | 1573 +++++++++++++++++
.../CompletePipelineExample.kt | 183 ++
.../example/cmake_project_test/Constants.kt | 26 +
.../example/cmake_project_test/DataManager.kt | 687 +++++++
.../example/cmake_project_test/DataMapper.kt | 159 ++
.../cmake_project_test/DeviceTypeHelper.kt | 79 +
.../example/cmake_project_test/FileHelper.kt | 40 +
.../cmake_project_test/FilterSettings.kt | 129 ++
.../cmake_project_test/IndicatorCalculator.kt | 209 +++
.../cmake_project_test/MainActivity.kt | 565 +++---
.../NativeMethodCallback.kt | 14 +
.../SignalProcessingExample.kt | 206 +++
.../SignalProcessorExample.kt | 271 +++
.../cmake_project_test/SignalProcessorJNI.kt | 259 +++
.../StreamingSignalProcessor.kt | 414 +++++
.../example/cmake_project_test/UiManager.kt | 232 +++
app/src/main/res/layout/activity_main.xml | 21 -
gradle.properties | 2 +
34 files changed, 8147 insertions(+), 311 deletions(-)
create mode 100644 .idea/vcs.xml
create mode 100644 JNI_FIX_SUMMARY.md
create mode 100644 README_REFACTOR.md
create mode 100644 SIGNAL_PROCESSOR_README.md
create mode 100644 app/src/main/assets/ecg_data_raw.dat
create mode 100644 app/src/main/cpp/include/cpp/data_mapper.h
create mode 100644 app/src/main/cpp/include/cpp/indicator_cal.h
create mode 100644 app/src/main/cpp/include/cpp/signal_processor.h
create mode 100644 app/src/main/cpp/src/data_mapper.cpp
create mode 100644 app/src/main/cpp/src/indicator_cal.cpp
create mode 100644 app/src/main/cpp/src/signal_processor.cpp
create mode 100644 app/src/main/java/com/example/cmake_project_test/CompletePipelineExample.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/Constants.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/DataManager.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/DataMapper.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/DeviceTypeHelper.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/FileHelper.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/FilterSettings.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/IndicatorCalculator.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/NativeMethodCallback.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/SignalProcessingExample.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/SignalProcessorExample.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/SignalProcessorJNI.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/StreamingSignalProcessor.kt
create mode 100644 app/src/main/java/com/example/cmake_project_test/UiManager.kt
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index b268ef3..53f1e2c 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,6 +4,14 @@
+
+
+
+
+
+
+
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/JNI_FIX_SUMMARY.md b/JNI_FIX_SUMMARY.md
new file mode 100644
index 0000000..d99a981
--- /dev/null
+++ b/JNI_FIX_SUMMARY.md
@@ -0,0 +1,141 @@
+# JNI函数名不匹配问题修复说明
+
+## 问题描述
+
+在代码重构过程中,将原生方法从`MainActivity`移动到`DataManager`类后,出现了以下错误:
+
+```
+Cannot resolve corresponding JNI function Java_com_example_cmake_1project_1test_DataManager_createStreamParser
+```
+
+## 问题原因
+
+### JNI函数命名规则
+
+JNI函数名遵循以下格式:
+```
+Java_{包名}_{类名}_{方法名}
+```
+
+其中:
+- 包名中的点(.)用下划线(_)替换
+- 类名中的下划线用`_1`替换
+
+### 具体变化
+
+**重构前的JNI函数名**(在MainActivity中):
+```
+Java_com_example_cmake_1project_1test_MainActivity_createStreamParser
+Java_com_example_cmake_1project_1test_MainActivity_destroyStreamParser
+Java_com_example_cmake_1project_1test_MainActivity_streamParserAppend
+Java_com_example_cmake_1project_1test_MainActivity_streamParserDrainPackets
+```
+
+**重构后的JNI函数名**(在DataManager中):
+```
+Java_com_example_cmake_1project_1test_DataManager_createStreamParser
+Java_com_example_cmake_1project_1test_DataManager_destroyStreamParser
+Java_com_example_cmake_1project_1test_DataManager_streamParserAppend
+Java_com_example_cmake_1project_1test_DataManager_streamParserDrainPackets
+```
+
+## 解决方案
+
+### 方案1:回调接口模式(已实现)
+
+通过创建回调接口,让`DataManager`通过`MainActivity`来调用原生方法,保持原有的JNI函数名。
+
+#### 实现步骤
+
+1. **创建回调接口**
+```kotlin
+interface NativeMethodCallback {
+ fun createStreamParser(): Long
+ fun destroyStreamParser(handle: Long)
+ fun streamParserAppend(handle: Long, chunk: ByteArray)
+ fun streamParserDrainPackets(handle: Long): List?
+}
+```
+
+2. **修改DataManager构造函数**
+```kotlin
+class DataManager(private val nativeCallback: NativeMethodCallback)
+```
+
+3. **MainActivity实现接口**
+```kotlin
+class MainActivity : AppCompatActivity(), DataManager.NativeMethodCallback
+```
+
+4. **保持原生方法在MainActivity中**
+```kotlin
+// 原生方法声明 - 保持原来的JNI函数名
+external fun createStreamParser(): Long
+external fun destroyStreamParser(handle: Long)
+external fun streamParserAppend(handle: Long, chunk: ByteArray)
+external fun streamParserDrainPackets(handle: Long): List?
+```
+
+#### 优势
+- 保持原有的JNI函数名,无需修改C++代码
+- 维持了代码重构的架构优势
+- 清晰的职责分离
+
+#### 劣势
+- 增加了接口依赖
+- 稍微增加了代码复杂度
+
+### 方案2:修改C++代码中的JNI函数名
+
+如果您有权限修改C++代码,可以将C++中的JNI函数名改为新的名称。
+
+#### 需要修改的C++函数名
+```cpp
+// 原来的函数名
+JNIEXPORT jlong JNICALL Java_com_example_cmake_1project_1test_MainActivity_createStreamParser
+
+// 改为
+JNIEXPORT jlong JNICALL Java_com_example_cmake_1project_1test_DataManager_createStreamParser
+```
+
+#### 优势
+- 完全符合重构后的架构
+- 无需额外的接口层
+
+#### 劣势
+- 需要修改C++代码
+- 可能影响其他依赖项目
+
+## 推荐方案
+
+**推荐使用方案1(回调接口模式)**,原因如下:
+
+1. **无需修改C++代码**:保持现有C++代码的稳定性
+2. **维持重构优势**:仍然保持了代码的职责分离
+3. **向后兼容**:如果将来需要,可以轻松切换到方案2
+4. **风险较低**:不会引入新的编译或链接问题
+
+## 修复后的架构
+
+```
+MainActivity (实现NativeMethodCallback)
+ ↓
+DataManager (通过回调调用原生方法)
+ ↓
+原生C++库 (保持原有JNI函数名)
+```
+
+## 注意事项
+
+1. **JNI函数名一致性**:确保Kotlin中的`external`方法名与C++中的JNI函数名完全匹配
+2. **库加载**:确保在`MainActivity`的`companion object`中正确加载原生库
+3. **接口实现**:MainActivity必须实现`NativeMethodCallback`接口的所有方法
+4. **依赖注入**:DataManager的构造函数现在需要传入回调接口实例
+
+## 验证修复
+
+修复完成后,您应该能够:
+1. 成功编译项目
+2. 不再看到JNI函数名不匹配的错误
+3. 保持原有的功能正常运行
+4. 享受重构后的代码结构优势
diff --git a/README_REFACTOR.md b/README_REFACTOR.md
new file mode 100644
index 0000000..e5d7da7
--- /dev/null
+++ b/README_REFACTOR.md
@@ -0,0 +1,136 @@
+# 代码重构说明
+
+## 重构目标
+将原本堆在一个MainActivity.kt文件中的所有逻辑分解为多个职责明确的Kotlin文件,提高代码的可读性和可维护性。
+
+## 重构后的文件结构
+
+### 1. **MainActivity.kt** - 主界面控制器
+**职责**: 主界面逻辑和生命周期管理
+- 初始化各个管理器
+- 处理按钮点击事件
+- 管理Activity生命周期
+- 协调各个管理器之间的交互
+
+**主要方法**:
+- `onCreate()`: 初始化UI和管理器
+- `onBleNotify()`: 蓝牙数据通知处理
+- `resetData()`: 重置数据
+- `reloadData()`: 重新加载数据
+
+### 2. **Constants.kt** - 常量定义
+**职责**: 集中管理应用中的所有常量
+- UI更新间隔
+- 数据分块大小
+- 缓冲区管理阈值
+- 显示限制参数
+
+**主要常量**:
+- `UPDATE_INTERVAL`: UI更新间隔(500ms)
+- `CHUNK_SIZE`: 数据分块大小(64字节)
+- `BUFFER_CLEANUP_THRESHOLD`: 缓冲区清理阈值(50)
+- `BUFFER_KEEP_COUNT`: 缓冲区保留数量(30)
+
+### 3. **DeviceTypeHelper.kt** - 设备类型工具
+**职责**: 设备类型相关的工具方法
+- 设备类型名称映射
+- 通道数据详情构建
+
+**主要方法**:
+- `getDeviceName()`: 根据数据类型获取设备名称
+- `buildChannelDetails()`: 构建通道数据详情字符串
+
+### 4. **DataManager.kt** - 数据管理器
+**职责**: 数据解析、缓冲管理和原生方法调用
+- 管理流式解析器
+- 处理数据块
+- 管理数据缓冲区
+- 调用原生C++方法
+
+**主要方法**:
+- `ensureParser()`: 确保解析器已创建
+- `onBleNotify()`: 处理蓝牙通知数据块
+- `processFileData()`: 处理文件数据
+- `cleanupBuffer()`: 智能清理缓冲区
+- `resetData()`: 重置所有数据
+
+**原生方法**:
+- `createStreamParser()`: 创建流式解析器
+- `streamParserAppend()`: 向解析器追加数据
+- `streamParserDrainPackets()`: 从解析器拉取数据包
+- `destroyStreamParser()`: 销毁解析器
+
+### 5. **UiManager.kt** - UI管理器
+**职责**: UI更新、统计信息构建和显示逻辑
+- 管理UI更新调度
+- 构建统计信息
+- 构建显示内容
+- 触发UI更新
+
+**主要方法**:
+- `scheduleUiUpdate()`: 计划UI更新,避免频繁刷新
+- `buildStatisticsString()`: 构建统计信息字符串
+- `buildDisplayContent()`: 构建完整的显示内容
+- `updateDisplay()`: 更新UI显示内容
+
+### 6. **FileHelper.kt** - 文件帮助类
+**职责**: 文件读取操作
+- 从assets文件夹读取文件
+
+**主要方法**:
+- `readAssetFile()`: 读取assets文件到字节数组
+
+## 重构优势
+
+### 1. **职责分离**
+- 每个类都有明确的单一职责
+- 降低了类之间的耦合度
+- 提高了代码的可测试性
+
+### 2. **代码复用**
+- 工具方法可以在多个地方复用
+- 减少了重复代码
+- 提高了开发效率
+
+### 3. **维护性提升**
+- 修改某个功能只需要修改对应的类
+- 代码结构更清晰,易于理解
+- 降低了修改的风险
+
+### 4. **可扩展性**
+- 新增功能可以创建新的类
+- 现有类可以独立扩展
+- 支持团队协作开发
+
+## 数据流向
+
+```
+MainActivity → DataManager → 原生解析器
+ ↓
+UiManager ← DataManager ← 数据缓冲区
+ ↓
+ UI更新
+```
+
+## 使用说明
+
+1. **MainActivity**: 作为入口点,协调各个管理器
+2. **DataManager**: 处理所有数据相关的操作
+3. **UiManager**: 负责所有UI相关的更新
+4. **DeviceTypeHelper**: 提供设备类型相关的工具方法
+5. **Constants**: 集中管理所有常量
+6. **FileHelper**: 处理文件读取操作
+
+## 注意事项
+
+1. **原生方法**: 所有原生C++方法现在都在DataManager中声明
+2. **依赖关系**: 各个类之间有明确的依赖关系,避免循环依赖
+3. **线程安全**: UI更新始终在主线程进行,数据操作在后台线程进行
+4. **错误处理**: 每个类都有适当的错误处理和日志记录
+
+## 后续优化建议
+
+1. **依赖注入**: 可以考虑使用Dagger或Koin进行依赖注入
+2. **响应式编程**: 可以考虑使用RxJava或Flow进行数据流处理
+3. **单元测试**: 重构后的代码更容易进行单元测试
+4. **文档完善**: 可以添加更详细的API文档和示例代码
diff --git a/SIGNAL_PROCESSOR_README.md b/SIGNAL_PROCESSOR_README.md
new file mode 100644
index 0000000..9732d20
--- /dev/null
+++ b/SIGNAL_PROCESSOR_README.md
@@ -0,0 +1,271 @@
+# 信号处理JNI封装使用说明
+
+## 概述
+
+本项目已将C++信号处理功能封装成JNI接口,可以在Android应用中直接调用。主要功能包括:
+
+- 各种数字滤波器(带通、低通、高通、陷波)
+- 信号质量评估
+- ECG信号质量指数计算
+- 信号特征提取
+- 信号预处理(归一化、去直流等)
+- 实时信号处理
+
+## 文件结构
+
+```
+app/src/main/
+├── cpp/
+│ ├── include/cpp/
+│ │ └── signal_processor.h # C++头文件
+│ ├── src/
+│ │ └── signal_processor.cpp # C++实现文件(需要修复乱码)
+│ ├── jni/
+│ │ └── jni_bridge.cpp # 统一的JNI桥接文件(包含所有JNI函数)
+│ └── CMakeLists.txt # 构建配置
+└── java/
+ └── com/example/cmake_project_test/
+ ├── SignalProcessorJNI.kt # Java JNI接口类
+ └── SignalProcessorExample.kt # 使用示例类
+```
+
+## 使用方法
+
+### 1. 基本使用
+
+```kotlin
+// 创建信号处理器实例
+val signalProcessor = SignalProcessorJNI()
+if (signalProcessor.createProcessor()) {
+ // 使用各种信号处理功能
+ val filteredSignal = signalProcessor.bandpassFilter(
+ inputSignal,
+ sampleRate = 1000.0,
+ lowFreq = 40.0,
+ highFreq = 60.0
+ )
+
+ // 清理资源
+ signalProcessor.destroyProcessor()
+}
+```
+
+### 2. 主要功能
+
+#### 数字滤波
+
+```kotlin
+// 带通滤波
+val bandpassResult = signalProcessor.bandpassFilter(
+ signal, sampleRate, lowFreq, highFreq
+)
+
+// 低通滤波
+val lowpassResult = signalProcessor.lowpassFilter(
+ signal, sampleRate, cutoffFreq
+)
+
+// 高通滤波
+val highpassResult = signalProcessor.highpassFilter(
+ signal, sampleRate, cutoffFreq
+)
+
+// 陷波滤波(去除工频干扰)
+val notchResult = signalProcessor.notchFilter(
+ signal, sampleRate, notchFreq, qFactor
+)
+```
+
+#### 信号质量评估
+
+```kotlin
+// 计算信号质量指数
+val quality = signalProcessor.calculateSignalQuality(signal)
+
+// 计算ECG信号质量指数
+val ecgSQI = signalProcessor.calculateECGSQI(ecgSignal, sampleRate)
+
+// 计算两个信号的相关性
+val correlation = signalProcessor.calculateCorrelation(signal1, signal2)
+```
+
+#### 信号预处理
+
+```kotlin
+// 归一化信号幅度
+signalProcessor.normalizeAmplitude(signal)
+
+// 提取信号特征
+val features = signalProcessor.extractFeatures(signal, sampleRate)
+
+// 重置滤波器状态
+signalProcessor.resetFilters()
+```
+
+#### 实时处理
+
+```kotlin
+// 实时处理数据块
+val processedChunk = signalProcessor.processRealtimeChunk(
+ chunk, sampleRate
+)
+```
+
+### 3. 完整示例
+
+参考 `SignalProcessorExample.kt` 文件,其中包含了所有功能的演示代码:
+
+```kotlin
+val example = SignalProcessorExample()
+
+// 运行所有演示
+example.runAllDemonstrations()
+
+// 清理资源
+example.cleanup()
+```
+
+## 数据格式
+
+### 输入数据
+
+- 所有信号数据使用 `FloatArray` 格式
+- 采样率使用 `Double` 类型
+- 频率参数使用 `Double` 类型
+
+### 输出数据
+
+- 滤波结果返回 `FloatArray?`(可能为null表示处理失败)
+- 质量指数返回 `Float` 类型(0.0-1.0)
+- 相关性返回 `Float` 类型(-1.0到1.0)
+
+### 内部转换
+
+- Java端使用 `ByteBuffer` 进行 `FloatArray` 和 `ByteArray` 的转换
+- C++端使用 `std::vector` 处理数据
+- 字节序使用小端序(Little Endian)
+
+## 注意事项
+
+### 1. 资源管理
+
+```kotlin
+// 必须在使用前创建处理器
+if (!signalProcessor.createProcessor()) {
+ // 处理创建失败的情况
+ return
+}
+
+// 使用完毕后必须销毁处理器
+signalProcessor.destroyProcessor()
+```
+
+### 2. 错误处理
+
+```kotlin
+val result = signalProcessor.bandpassFilter(signal, sampleRate, lowFreq, highFreq)
+if (result != null) {
+ // 处理成功
+ processResult(result)
+} else {
+ // 处理失败
+ Log.e("SignalProcessor", "滤波处理失败")
+}
+```
+
+### 3. 性能考虑
+
+- 滤波器初始化有一定开销,建议复用处理器实例
+- 大数据量处理时考虑分块处理
+- 实时处理时注意内存分配
+
+### 4. 线程安全
+
+- JNI函数不是线程安全的
+- 多线程使用时需要适当的同步机制
+- 建议在主线程或专用工作线程中使用
+
+## 构建配置
+
+### CMakeLists.txt
+
+确保在 `CMakeLists.txt` 中包含了信号处理库:
+
+```cmake
+# Signal processor static library
+add_library(signal_processor STATIC
+ src/signal_processor.cpp)
+
+target_include_directories(signal_processor PUBLIC
+ ${CMAKE_CURRENT_SOURCE_DIR}/include)
+
+# 链接到主库
+target_link_libraries(${CMAKE_PROJECT_NAME}
+ core_math
+ data_parser
+ signal_processor
+ android
+ log)
+```
+
+**注意**:信号处理的JNI函数现在已整合到 `jni_bridge.cpp` 中,不再需要单独的 `signal_processor_jni.cpp` 文件。
+
+### 库加载
+
+在Java代码中确保正确加载原生库:
+
+```kotlin
+companion object {
+ init {
+ System.loadLibrary("cmake_project_test")
+ }
+}
+```
+
+## 故障排除
+
+### 1. 编译错误
+
+- 检查 `CMakeLists.txt` 配置
+- 确保所有源文件路径正确
+- 检查头文件包含路径
+
+### 2. 运行时错误
+
+- 检查Logcat中的错误信息
+- 确保处理器已正确创建
+- 检查输入数据格式和大小
+
+### 3. 性能问题
+
+- 使用Android Profiler分析性能瓶颈
+- 考虑减少数据转换开销
+- 优化滤波器参数
+
+## 扩展功能
+
+### 1. 添加新的滤波器
+
+1. 在 `signal_processor.h` 中声明新方法
+2. 在 `signal_processor.cpp` 中实现
+3. 在 `signal_processor_jni.cpp` 中添加JNI封装
+4. 在 `SignalProcessorJNI.kt` 中添加Java接口
+
+### 2. 自定义信号处理
+
+可以基于现有的JNI接口构建更高级的信号处理功能:
+
+```kotlin
+class AdvancedSignalProcessor(private val jni: SignalProcessorJNI) {
+ fun adaptiveFilter(signal: FloatArray, sampleRate: Double): FloatArray? {
+ // 实现自适应滤波算法
+ // 使用JNI接口调用底层功能
+ }
+}
+```
+
+## 总结
+
+通过JNI封装,您现在可以在Android应用中直接使用C++的高性能信号处理功能。这种架构既保持了C++的性能优势,又提供了Java/Kotlin的易用性。
+
+建议在使用前先运行示例代码,熟悉各种功能的使用方法,然后根据具体需求进行定制化开发。
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index b2584ef..dd61251 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -32,11 +32,11 @@ android {
}
}
compileOptions {
- sourceCompatibility = JavaVersion.VERSION_11
- targetCompatibility = JavaVersion.VERSION_11
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
- jvmTarget = "11"
+ jvmTarget = "17"
}
externalNativeBuild {
cmake {
diff --git a/app/src/main/assets/ecg_data_raw.dat b/app/src/main/assets/ecg_data_raw.dat
new file mode 100644
index 0000000000000000000000000000000000000000..00e9d9f6d8535975415bc4fcabc7b46f2fdce896
GIT binary patch
literal 2354846
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