From bd8fd53597be8de0bd4b214f87e6e867d28c4b6c Mon Sep 17 00:00:00 2001 From: ZhangJinLong <19357383190@163.com> Date: Thu, 25 Sep 2025 10:29:07 +0800 Subject: [PATCH] APP --- .idea/vcs.xml | 1 - app/src/main/cpp/src/data_praser.cpp | 17 +- .../cmake_project_test/BluetoothManager.kt | 274 ++-------- .../CompletePipelineExample.kt | 183 ------- .../example/cmake_project_test/Constants.kt | 26 - .../example/cmake_project_test/DataManager.kt | 280 +--------- .../cmake_project_test/DeviceTypeHelper.kt | 79 --- .../cmake_project_test/ECGChartView.kt | 414 --------------- .../cmake_project_test/ECGRhythmView.kt | 367 ------------- .../cmake_project_test/ECGWaveformView.kt | 363 ------------- .../example/cmake_project_test/FileHelper.kt | 40 -- .../cmake_project_test/MainActivity.kt | 362 +------------ .../NativeMethodCallback.kt | 14 - .../cmake_project_test/PPTMCommandEncoder.kt | 157 ------ .../ProducerConsumerChartView.kt | 484 ------------------ .../SignalProcessingExample.kt | 206 -------- .../SignalProcessorExample.kt | 271 ---------- .../example/cmake_project_test/UiManager.kt | 95 +++- app/轻迅蓝牙通信协议V1.0.1_ql.pdf | Bin 0 -> 394571 bytes 19 files changed, 190 insertions(+), 3443 deletions(-) delete mode 100644 app/src/main/java/com/example/cmake_project_test/CompletePipelineExample.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/Constants.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/DeviceTypeHelper.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/ECGChartView.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/ECGRhythmView.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/ECGWaveformView.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/FileHelper.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/NativeMethodCallback.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/PPTMCommandEncoder.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/ProducerConsumerChartView.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/SignalProcessingExample.kt delete mode 100644 app/src/main/java/com/example/cmake_project_test/SignalProcessorExample.kt create mode 100644 app/轻迅蓝牙通信协议V1.0.1_ql.pdf diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 24ccfcd..94a25f7 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,6 +2,5 @@ - \ No newline at end of file diff --git a/app/src/main/cpp/src/data_praser.cpp b/app/src/main/cpp/src/data_praser.cpp index 2b0f574..4aa4baf 100644 --- a/app/src/main/cpp/src/data_praser.cpp +++ b/app/src/main/cpp/src/data_praser.cpp @@ -565,22 +565,23 @@ std::vector parse_device_data(const std::vector& file_data) return final_results; } -// CRC16校验函数 (Modbus CRC16) +// CRC16校验函数 (CCITT CRC16) uint16_t calculate_crc16(const uint8_t* data, size_t length) { - uint16_t crc = 0xFFFF; + uint16_t wCRCin = 0xFFFF; + const uint16_t wCPoly = 0x1021; for (size_t i = 0; i < length; i++) { - crc ^= data[i]; for (int j = 0; j < 8; j++) { - if (crc & 0x0001) { - crc = (crc >> 1) ^ 0xA001; - } else { - crc = crc >> 1; + bool bit = ((data[i] >> (7 - j)) & 1) == 1; + bool c15 = ((wCRCin >> 15) & 1) == 1; + wCRCin = wCRCin << 1; + if (c15 ^ bit) { + wCRCin = wCRCin ^ wCPoly; } } } - return crc; + return wCRCin & 0xFFFF; } // 工具函数:将数值转换为十六进制字符串 diff --git a/app/src/main/java/com/example/cmake_project_test/BluetoothManager.kt b/app/src/main/java/com/example/cmake_project_test/BluetoothManager.kt index 9fee58b..4a6ee41 100644 --- a/app/src/main/java/com/example/cmake_project_test/BluetoothManager.kt +++ b/app/src/main/java/com/example/cmake_project_test/BluetoothManager.kt @@ -26,9 +26,6 @@ import java.util.UUID */ class BluetoothManager(private val context: Context) { - // PPTM命令编码器 - private val pptmEncoder = PPTMCommandEncoder() - companion object { private const val TAG = "BluetoothManager" @@ -44,22 +41,14 @@ class BluetoothManager(private val context: Context) { // 功能码定义 const val FUNC_QUERY_DEVICE_INFO = 0x0000 // 查询设备信息 - const val FUNC_START_COLLECTION = 0x0001 // 开启采集 - const val FUNC_QUERY_BATTERY = 0x0002 // 查询电量 - const val FUNC_SET_SAMPLE_RATE = 0x0003 // 设置采样率 - const val FUNC_SET_GAIN = 0x0004 // 设置增益 - const val FUNC_SET_FILTER = 0x0005 // 设置滤波器 - const val FUNC_SET_LEAD = 0x0006 // 设置导联 - const val FUNC_SET_ALARM = 0x0007 // 设置报警 - const val FUNC_SET_TIME = 0x0008 // 设置时间 - const val FUNC_SET_DATE = 0x0009 // 设置日期 - const val FUNC_POWER_LINE_FILTER = 0x000A // 工频滤波 - const val FUNC_QUERY_STATUS = 0x000B // 查询状态 - const val FUNC_RESET_DEVICE = 0x000C // 设备复位 - const val FUNC_UPDATE_FIRMWARE = 0x000D // 固件升级 - const val FUNC_DATA_STREAM = 0x8000 // 数据流 - const val FUNC_ALARM_DATA = 0x8001 // 报警数据 - const val FUNC_STATUS_REPORT = 0x8002 // 状态报告 + const val FUNC_START_COLLECTION = 0x0001 // 采集使能开关(带时间戳) + const val FUNC_QUERY_BATTERY = 0x0002 // 电量查询 + const val FUNC_STIM_SWITCH = 0x0003 // 电刺激开关 + const val FUNC_POWER_LINE_FILTER = 0x000A // 工频滤波开关 + const val FUNC_SYNC_TIMESTAMP = 0x0080 // 同步时间戳(64bit毫秒) + const val FUNC_DATA_STREAM = 0x8000 // 数据上传 + const val FUNC_ALARM_DATA = 0x8001 // 设备状态上报 + const val FUNC_STATUS_REPORT = 0x8002 // 电量上报 // 数据包类型 const val PACKET_TYPE_COMMAND = 0x00 // 命令包 @@ -75,31 +64,7 @@ class BluetoothManager(private val context: Context) { const val POWER_LINE_FILTER_OFF = 0x00 // 关闭工频滤波 const val POWER_LINE_FILTER_ON = 0x01 // 开启工频滤波 - // 采样率 - const val SAMPLE_RATE_125 = 125 // 125Hz - const val SAMPLE_RATE_250 = 250 // 250Hz - const val SAMPLE_RATE_500 = 500 // 500Hz - const val SAMPLE_RATE_1000 = 1000 // 1000Hz - - // 增益设置 - const val GAIN_1 = 1 // 1倍增益 - const val GAIN_2 = 2 // 2倍增益 - const val GAIN_4 = 4 // 4倍增益 - const val GAIN_8 = 8 // 8倍增益 - - // 导联设置 - const val LEAD_I = 0x01 // I导联 - const val LEAD_II = 0x02 // II导联 - const val LEAD_III = 0x03 // III导联 - const val LEAD_AVR = 0x04 // aVR导联 - const val LEAD_AVL = 0x05 // aVL导联 - const val LEAD_AVF = 0x06 // aVF导联 - const val LEAD_V1 = 0x07 // V1导联 - const val LEAD_V2 = 0x08 // V2导联 - const val LEAD_V3 = 0x09 // V3导联 - const val LEAD_V4 = 0x0A // V4导联 - const val LEAD_V5 = 0x0B // V5导联 - const val LEAD_V6 = 0x0C // V6导联 + // 已移除:采样率、增益、导联设置常量(按PDF协议未定义) // 响应状态码 const val RESPONSE_SUCCESS = 0x00 // 成功 @@ -156,9 +121,7 @@ class BluetoothManager(private val context: Context) { // 协议状态 private var deviceInfo: DeviceInfo? = null private var isCollecting = false - private var currentSampleRate = Protocol.SAMPLE_RATE_500 - private var currentGain = Protocol.GAIN_1 - private var currentLead = Protocol.LEAD_II + // 已移除:采样率、增益、导联状态变量(按PDF协议未定义) private var powerLineFilterEnabled = false // 数据统计 @@ -908,101 +871,70 @@ class BluetoothManager(private val context: Context) { } /** - * 查询设备信息 - * 功能码: 0x0000 + * 电刺激开关 + * 功能码: 0x0003 + * 数据格式: [开关及类型(1字节)] + * 数据长度字段表示整个包的长度(7字节) */ - fun queryDeviceInfo() { + fun stimSwitch(stimType: Int, enable: Boolean) { try { - val packet = buildProtocolPacket(Protocol.FUNC_QUERY_DEVICE_INFO) - Log.d(TAG, "发送查询设备信息指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") + val data = ByteArray(1) + // 开关及类型控制 + // 高4位:开关控制(0000=关闭,0001=开启) + // 低4位:刺激类型(0000~1111,即0-15) + val switchBits = if (enable) 0x10 else 0x00 // 高4位:0001或0000 + val typeBits = stimType and 0x0F // 低4位:确保在0-15范围内 + data[0] = (switchBits or typeBits).toByte() + + val packet = buildProtocolPacket(Protocol.FUNC_STIM_SWITCH, data) + Log.d(TAG, "发送电刺激开关指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") sendCommand(packet) } catch (e: Exception) { - Log.e(TAG, "构建查询设备信息指令失败: ${e.message}") - callback?.onCommandSent(false, "构建查询设备信息指令失败: ${e.message}") + Log.e(TAG, "构建电刺激开关指令失败: ${e.message}") + callback?.onCommandSent(false, "构建电刺激开关指令失败: ${e.message}") } } - + /** - * 查询电量 - * 功能码: 0x0002 + * 同步时间戳 + * 功能码: 0x0080 + * 数据格式: [时间戳(8字节, 小端, 毫秒)] */ - fun queryBattery() { + fun syncTimestamp(timestampMs: Long) { try { - val packet = buildProtocolPacket(Protocol.FUNC_QUERY_BATTERY) - Log.d(TAG, "发送查询电量指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") + val data = ByteArray(8) + for (i in 0..7) { + data[i] = ((timestampMs shr (i * 8)) and 0xFF).toByte() + } + val packet = buildProtocolPacket(Protocol.FUNC_SYNC_TIMESTAMP, data) + Log.d(TAG, "发送同步时间戳指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") sendCommand(packet) } catch (e: Exception) { - Log.e(TAG, "构建查询电量指令失败: ${e.message}") - callback?.onCommandSent(false, "构建查询电量指令失败: ${e.message}") + Log.e(TAG, "构建同步时间戳指令失败: ${e.message}") + callback?.onCommandSent(false, "构建同步时间戳指令失败: ${e.message}") } } - + /** * 设置采样率 * 功能码: 0x0003 * 数据格式: [采样率(2字节)] */ - fun setSampleRate(sampleRate: Int) { - try { - val data = ByteArray(2) - data[0] = (sampleRate and 0xFF).toByte() - data[1] = ((sampleRate shr 8) and 0xFF).toByte() - - val packet = buildProtocolPacket(Protocol.FUNC_SET_SAMPLE_RATE, data) - Log.d(TAG, "发送设置采样率指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") - sendCommand(packet) - - currentSampleRate = sampleRate - - } catch (e: Exception) { - Log.e(TAG, "构建设置采样率指令失败: ${e.message}") - callback?.onCommandSent(false, "构建设置采样率指令失败: ${e.message}") - } - } + // 已移除:设置采样率(按PDF未列出) /** * 设置增益 * 功能码: 0x0004 * 数据格式: [增益(1字节)] */ - fun setGain(gain: Int) { - try { - val data = ByteArray(1) - data[0] = gain.toByte() - - val packet = buildProtocolPacket(Protocol.FUNC_SET_GAIN, data) - Log.d(TAG, "发送设置增益指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") - sendCommand(packet) - - currentGain = gain - - } catch (e: Exception) { - Log.e(TAG, "构建设置增益指令失败: ${e.message}") - callback?.onCommandSent(false, "构建设置增益指令失败: ${e.message}") - } - } + // 已移除:设置增益(按PDF未列出) /** * 设置导联 * 功能码: 0x0006 * 数据格式: [导联(1字节)] */ - fun setLead(lead: Int) { - try { - val data = ByteArray(1) - data[0] = lead.toByte() - - val packet = buildProtocolPacket(Protocol.FUNC_SET_LEAD, data) - Log.d(TAG, "发送设置导联指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") - sendCommand(packet) - - currentLead = lead - - } catch (e: Exception) { - Log.e(TAG, "构建设置导联指令失败: ${e.message}") - callback?.onCommandSent(false, "构建设置导联指令失败: ${e.message}") - } - } + // 已移除:设置导联(按PDF未列出) /** * 工频滤波开关 @@ -1030,31 +962,13 @@ class BluetoothManager(private val context: Context) { * 查询状态 * 功能码: 0x000B */ - fun queryStatus() { - try { - val packet = buildProtocolPacket(Protocol.FUNC_QUERY_STATUS) - Log.d(TAG, "发送查询状态指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") - sendCommand(packet) - } catch (e: Exception) { - Log.e(TAG, "构建查询状态指令失败: ${e.message}") - callback?.onCommandSent(false, "构建查询状态指令失败: ${e.message}") - } - } + // 已移除:查询状态(按PDF未列出) /** * 设备复位 * 功能码: 0x000C */ - fun resetDevice() { - try { - val packet = buildProtocolPacket(Protocol.FUNC_RESET_DEVICE) - Log.d(TAG, "发送设备复位指令: ${packet.joinToString(", ") { "0x%02X".format(it) }}") - sendCommand(packet) - } catch (e: Exception) { - Log.e(TAG, "构建设备复位指令失败: ${e.message}") - callback?.onCommandSent(false, "构建设备复位指令失败: ${e.message}") - } - } + // 已移除:设备复位(按PDF未列出) /** * 获取协议统计信息 @@ -1066,9 +980,7 @@ class BluetoothManager(private val context: Context) { "totalPacketsReceived" to totalPacketsReceived, "totalBytesReceived" to totalBytesReceived, "isCollecting" to isCollecting, - "currentSampleRate" to currentSampleRate, - "currentGain" to currentGain, - "currentLead" to currentLead, + // 已移除:采样率、增益、导联状态(按PDF协议未定义) "powerLineFilterEnabled" to powerLineFilterEnabled, "deviceInfo" to deviceInfo ) @@ -1164,21 +1076,21 @@ class BluetoothManager(private val context: Context) { * 计算CRC16-CCITT-FALSE校验 */ private fun calculateCRC16(data: ByteArray, offset: Int, length: Int): Int { - var crc = 0xFFFF + var wCRCin = 0xFFFF + val wCPoly = 0x1021 for (i in offset until offset + length) { - crc = crc xor (data[i].toInt() and 0xFF) for (j in 0..7) { - if ((crc and 0x0001) != 0) { - crc = crc shr 1 - crc = crc xor 0x8408 - } else { - crc = crc shr 1 + val bit = ((data[i].toInt() shr (7 - j)) and 1) == 1 + val c15 = ((wCRCin shr 15) and 1) == 1 + wCRCin = wCRCin shl 1 + if (c15 xor bit) { + wCRCin = wCRCin xor wCPoly } } } - return crc + return wCRCin and 0xFFFF } /** @@ -1691,80 +1603,4 @@ class BluetoothManager(private val context: Context) { isCleaningUp = true } } - - // ==================== PPTM设备命令方法 ==================== - - /** - * 发送PPTM开始采样命令 - * 使用PPTM协议编码器生成带CRC16校验的命令 - */ - fun sendPptmStartSampleCmd() { - try { - val command = pptmEncoder.createPptmStartSampleCmd() - Log.d(TAG, "发送PPTM开始采样命令: ${command.joinToString(", ") { "0x%02X".format(it) }}") - sendCommand(command) - callback?.onStatusChanged("📤 已发送PPTM开始采样命令") - } catch (e: Exception) { - Log.e(TAG, "发送PPTM开始采样命令失败: ${e.message}") - callback?.onCommandSent(false, "发送PPTM开始采样命令失败: ${e.message}") - } - } - - /** - * 发送PPTM停止采样命令 - * 使用PPTM协议编码器生成带CRC16校验的命令 - */ - fun sendPptmStopSampleCmd() { - try { - val command = pptmEncoder.createPptmStopSampleCmd() - Log.d(TAG, "发送PPTM停止采样命令: ${command.joinToString(", ") { "0x%02X".format(it) }}") - sendCommand(command) - callback?.onStatusChanged("📤 已发送PPTM停止采样命令") - } catch (e: Exception) { - Log.e(TAG, "发送PPTM停止采样命令失败: ${e.message}") - callback?.onCommandSent(false, "发送PPTM停止采样命令失败: ${e.message}") - } - } - - /** - * 发送自定义PPTM命令 - * @param opcode 操作码 - * @param payload 负载数据 - */ - fun sendCustomPptmCmd(opcode: Short, payload: ByteArray) { - try { - val command = pptmEncoder.createCustomPptmCmd(opcode, payload) - Log.d(TAG, "发送自定义PPTM命令: 操作码=0x%04X, 负载=${payload.joinToString(", ") { "0x%02X".format(it) }}".format(opcode)) - sendCommand(command) - callback?.onStatusChanged("📤 已发送自定义PPTM命令: 操作码=0x%04X".format(opcode)) - } catch (e: Exception) { - Log.e(TAG, "发送自定义PPTM命令失败: ${e.message}") - callback?.onCommandSent(false, "发送自定义PPTM命令失败: ${e.message}") - } - } - - /** - * 验证PPTM数据包CRC16校验 - * @param packet 完整数据包 - * @return 校验是否通过 - */ - fun verifyPptmPacket(packet: ByteArray): Boolean { - return pptmEncoder.verifyCrc16(packet) - } - - /** - * 解析PPTM数据包 - * @param packet 完整数据包 - * @return 解析结果 (操作码, 负载数据) 或 null - */ - fun parsePptmPacket(packet: ByteArray): Pair? { - return pptmEncoder.parsePacket(packet) - } - - /** - * 获取PPTM编码器实例(用于调试) - */ - fun getPptmEncoder(): PPTMCommandEncoder { - return pptmEncoder - } } diff --git a/app/src/main/java/com/example/cmake_project_test/CompletePipelineExample.kt b/app/src/main/java/com/example/cmake_project_test/CompletePipelineExample.kt deleted file mode 100644 index 992985c..0000000 --- a/app/src/main/java/com/example/cmake_project_test/CompletePipelineExample.kt +++ /dev/null @@ -1,183 +0,0 @@ -package com.example.cmake_project_test - -import android.util.Log -import type.SensorData - -/** - * 完整数据处理管道示例 - * 演示从原始数据到最终指标的完整流程 - */ -class CompletePipelineExample { - - private val dataMapper = DataMapper() - private val indicatorCalculator = IndicatorCalculator() - private val signalProcessor = SignalProcessorJNI() - - private var dataMapperInitialized = false - private var indicatorCalculatorInitialized = false - private var signalProcessorInitialized = false - - /** - * 初始化完整管道 - */ - fun initialize(): Boolean { - Log.d("CompletePipeline", "初始化完整数据处理管道...") - - // 初始化数据映射器 - dataMapperInitialized = dataMapper.initialize() - if (!dataMapperInitialized) { - Log.e("CompletePipeline", "数据映射器初始化失败") - return false - } - - // 初始化指标计算器 - indicatorCalculatorInitialized = indicatorCalculator.initialize() - if (!indicatorCalculatorInitialized) { - Log.e("CompletePipeline", "指标计算器初始化失败") - cleanup() - return false - } - - // 初始化信号处理器 - try { - signalProcessorInitialized = signalProcessor.createProcessor() - if (!signalProcessorInitialized) { - Log.e("CompletePipeline", "信号处理器初始化失败") - cleanup() - return false - } - } catch (e: Exception) { - Log.e("CompletePipeline", "信号处理器初始化异常: ${e.message}") - cleanup() - return false - } - - Log.d("CompletePipeline", "完整数据处理管道初始化成功") - return true - } - - /** - * 处理单个数据包的完整流程 - * 原始数据 → 解析数据 → 通道映射 → 信号处理 → 指标计算 - */ - fun processCompletePipeline(rawData: SensorData, sampleRate: Float = 250.0f): Map? { - if (!isInitialized()) { - Log.w("CompletePipeline", "管道未初始化") - return null - } - - Log.d("CompletePipeline", "开始处理完整数据管道...") - Log.d("CompletePipeline", "输入数据类型: ${rawData.dataType}, 采样率: $sampleRate Hz") - - try { - // 步骤1: 通道映射 - Log.d("CompletePipeline", "步骤1: 执行通道映射...") - val mappedData = dataMapper.mapSensorData(rawData) - if (mappedData == null) { - Log.e("CompletePipeline", "通道映射失败") - return null - } - Log.d("CompletePipeline", "通道映射完成") - - // 步骤2: 信号处理 (这里可以添加信号处理逻辑) - Log.d("CompletePipeline", "步骤2: 执行信号处理...") - // 暂时跳过信号处理,直接使用映射后的数据 - val processedData = mappedData - Log.d("CompletePipeline", "信号处理完成") - - // 步骤3: 指标计算 - Log.d("CompletePipeline", "步骤3: 执行指标计算...") - val metrics = indicatorCalculator.processCompletePipeline(processedData, sampleRate) - if (metrics == null) { - Log.e("CompletePipeline", "指标计算失败") - return null - } - - Log.d("CompletePipeline", "指标计算完成,计算了 ${metrics.size} 个指标") - Log.d("CompletePipeline", "完整数据处理管道执行成功") - - // 打印主要指标 - metrics["heart_rate"]?.let { - Log.d("CompletePipeline", "心率: ${String.format("%.1f", it)} bpm") - } - metrics["signal_quality"]?.let { - Log.d("CompletePipeline", "信号质量: ${String.format("%.2f", it)}") - } - metrics["spo2"]?.let { - Log.d("CompletePipeline", "血氧饱和度: ${String.format("%.1f", it)}%") - } - - return metrics - - } catch (e: Exception) { - Log.e("CompletePipeline", "完整数据处理管道异常: ${e.message}") - return null - } - } - - /** - * 批量处理数据包 - */ - fun processBatchPipeline(rawDataList: List, sampleRate: Float = 250.0f): List> { - if (!isInitialized()) { - Log.w("CompletePipeline", "管道未初始化") - return emptyList() - } - - Log.d("CompletePipeline", "开始批量处理 ${rawDataList.size} 个数据包...") - - val results = mutableListOf>() - var successCount = 0 - - for ((index, rawData) in rawDataList.withIndex()) { - val metrics = processCompletePipeline(rawData, sampleRate) - if (metrics != null) { - results.add(metrics) - successCount++ - } else { - results.add(emptyMap()) - } - - // 每处理100个数据包打印一次进度 - if ((index + 1) % 100 == 0) { - Log.d("CompletePipeline", "已处理 ${index + 1}/${rawDataList.size} 个数据包") - } - } - - Log.d("CompletePipeline", "批量处理完成: 成功 $successCount/${rawDataList.size} 个数据包") - return results - } - - /** - * 检查管道是否已初始化 - */ - fun isInitialized(): Boolean { - return dataMapperInitialized && indicatorCalculatorInitialized && signalProcessorInitialized - } - - /** - * 清理资源 - */ - fun cleanup() { - try { - if (dataMapperInitialized) { - // 使用公共方法或直接设置为false - dataMapperInitialized = false - } - - if (indicatorCalculatorInitialized) { - // 使用公共方法或直接设置为false - indicatorCalculatorInitialized = false - } - - if (signalProcessorInitialized) { - signalProcessor.destroyProcessor() - signalProcessorInitialized = false - } - - Log.d("CompletePipelineExample", "资源清理完成") - } catch (e: Exception) { - Log.e("CompletePipelineExample", "资源清理异常: ${e.message}") - } - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/Constants.kt b/app/src/main/java/com/example/cmake_project_test/Constants.kt deleted file mode 100644 index 28938cf..0000000 --- a/app/src/main/java/com/example/cmake_project_test/Constants.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.example.cmake_project_test - -object Constants { - // UI更新相关 - const val UPDATE_INTERVAL = 200L // 优化:每200毫秒更新一次UI,减慢更新速度以便观察心电波形 - - // 数据分块相关 - const val CHUNK_SIZE = 64 // 数据分块大小 - - // 缓冲区管理相关 - const val BUFFER_CLEANUP_THRESHOLD = 50 // 缓冲区清理阈值 - const val BUFFER_KEEP_COUNT = 30 // 缓冲区保留数量 - - // 显示限制相关 - const val MAX_DISPLAY_PACKETS = 5 // 最大显示数据包数量 - const val MAX_DETAIL_PACKETS = 3 // 最大详情数据包数量 - const val MAX_DISPLAY_CHANNELS = 4 // 最大显示通道数量 - const val MAX_12LEAD_CHANNELS = 6 // 12导联心电最大通道数量 - const val MAX_DISPLAY_SAMPLES = 750 // 最大显示采样点数量,调整为显示约3秒数据(基于250Hz采样率) - - // 文件相关 - const val DEFAULT_DATA_FILE = "ecg_data_raw.dat" // 默认数据文件名 - - // 延迟相关 - const val SIMULATION_DELAY = 1L // 模拟传输延迟(毫秒)- 减少延迟 -} diff --git a/app/src/main/java/com/example/cmake_project_test/DataManager.kt b/app/src/main/java/com/example/cmake_project_test/DataManager.kt index acc5483..bfa8e8b 100644 --- a/app/src/main/java/com/example/cmake_project_test/DataManager.kt +++ b/app/src/main/java/com/example/cmake_project_test/DataManager.kt @@ -7,6 +7,17 @@ import java.io.IOException import java.nio.ByteBuffer import java.nio.ByteOrder +/** + * 原生方法回调接口 + * 用于DataManager调用MainActivity中的原生方法 + */ +interface NativeMethodCallback { + fun createStreamParser(): Long + fun destroyStreamParser(handle: Long) + fun streamParserAppend(handle: Long, chunk: ByteArray) + fun streamParserDrainPackets(handle: Long): List? +} + /** * 数据管理类 * 负责数据解析、缓冲管理和原生方法调用 @@ -165,45 +176,7 @@ class DataManager(private val nativeCallback: NativeMethodCallback) { // 注释掉后台处理,只显示原始数据 // processStreamingData(packets) } else { - Log.w("DataManager", "没有解析出有效数据包,尝试生成测试数据") - - // 如果原生解析器没有解析出数据包,生成一些测试数据来验证图表显示 - generateTestDataForChart() - } - } - - /** - * 生成测试数据用于验证图表显示 - */ - private fun generateTestDataForChart() { - try { - Log.d("DataManager", "生成测试数据用于验证图表显示") - - // 生成模拟的单导联ECG数据 - val testData = mutableListOf() - val sampleCount = 100 // 生成100个样本点 - - for (i in 0 until sampleCount) { - val t = i.toFloat() / 10f // 时间参数 - val value = (Math.sin(t * 2 * Math.PI) * 100 + - Math.sin(t * 4 * Math.PI) * 50 + - Math.sin(t * 8 * Math.PI) * 25).toFloat() - testData.add(value) - } - - Log.d("DataManager", "生成测试数据: ${testData.size} 个样本点") - Log.d("DataManager", "测试数据前5个值: ${testData.take(5).joinToString(", ")}") - - // 发送测试数据到图表 - if (realTimeCallback != null) { - realTimeCallback!!.onRawDataAvailable(0, testData) - Log.d("DataManager", "已发送测试数据到图表") - } else { - Log.e("DataManager", "realTimeCallback 为空,无法发送测试数据") - } - - } catch (e: Exception) { - Log.e("DataManager", "生成测试数据失败: ${e.message}", e) + Log.w("DataManager", "没有解析出有效数据包") } } @@ -649,48 +622,17 @@ class DataManager(private val nativeCallback: NativeMethodCallback) { /** * 处理文件数据 */ - fun processFileData(fileData: ByteArray, progressCallback: ((Int) -> Unit)? = null) { - Log.d("DataManager", "开始处理文件数据,数据大小: ${fileData.size} 字节") - - try { - val chunkSize = 1024 - var processedBytes = 0 - - for (i in fileData.indices step chunkSize) { - val endIndex = minOf(i + chunkSize, fileData.size) - val chunk = fileData.copyOfRange(i, endIndex) - - onBleNotify(chunk) - processedBytes += chunk.size - - // 性能优化:减少进度更新频率 - if (processedBytes % (chunkSize * 10) == 0) { - val progress = (processedBytes * 100 / fileData.size).coerceAtMost(100) - progressCallback?.invoke(progress) - } - } - - Log.d("DataManager", "文件数据处理完成,总共处理了 $processedBytes 字节") - - } catch (e: Exception) { - Log.e("DataManager", "处理文件数据时发生错误: ${e.message}", e) - } - } + // Getter方法 fun getPacketBufferSize(): Int = packetBuffer.size - fun getProcessedPacketsSize(): Int = processedPackets.size - fun getCalculatedMetricsSize(): Int = calculatedMetrics.size fun getRawStreamSize(): Int = rawStream.size() fun getTotalPacketsParsed(): Long = totalPacketsParsed fun getPacketBuffer(): List = packetBuffer fun getProcessedPackets(): List = processedPackets fun getCalculatedMetrics(): List> = calculatedMetrics - fun getLatestMetrics(): Map = latestMetrics - fun getChannelBuffersStatus(): Map = channelBuffers.mapValues { it.value.size } // 流式处理相关getter方法 - fun getProcessedChannelBuffersStatus(): Map = processedChannelBuffers.mapValues { it.value.size } fun getProcessedChannelData(channelIndex: Int): List = processedChannelBuffers[channelIndex] ?: emptyList() fun getTotalProcessedSamples(): Long = totalProcessedSamples fun getCurrentDataType(): type.SensorData.DataType? = currentDataType @@ -716,168 +658,9 @@ class DataManager(private val nativeCallback: NativeMethodCallback) { } } - /** - * 计算信号质量 - */ - fun calculateSignalQuality(packet: SensorData): Float { - if (!streamingSignalProcessorInitialized || streamingSignalProcessor == null) return 0.0f - - try { - // 获取第一个通道的数据进行质量评估 - val channelData = packet.getChannelData() - if (channelData != null && channelData.isNotEmpty()) { - val firstChannel = channelData[0] - if (firstChannel != null) { - val signal = firstChannel.toFloatArray() - val quality = streamingSignalProcessor!!.calculateSignalQuality(signal) - - // 添加调试信息 - Log.d("DataManager", "信号质量计算: 通道0, 数据长度=${signal.size}, 质量=$quality") - return quality - } - } - } catch (e: Exception) { - Log.e("DataManager", "计算信号质量时发生错误: ${e.message}") - } - - return 0.0f - } - /** - * 应用信号处理 - */ - fun applySignalProcessing(packets: List): List { - Log.d("DataManager", "开始应用信号处理,处理 ${packets.size} 个数据包") - - ensureStreamingSignalProcessor() - if (!streamingSignalProcessorInitialized || streamingSignalProcessor == null) { - Log.w("DataManager", "流式信号处理器未初始化,跳过信号处理") - return packets - } - - val processedPackets = mutableListOf() - - for (packet in packets) { - try { - val processedPacket = processSinglePacket(packet) - processedPackets.add(processedPacket) - } catch (e: Exception) { - Log.e("DataManager", "处理数据包时发生错误: ${e.message}") - processedPackets.add(packet) // 处理失败时返回原始数据包 - } - } - - Log.d("DataManager", "信号处理完成,处理了 ${processedPackets.size} 个数据包") - return processedPackets - } - - /** - * 处理单个数据包 - */ - private fun processSinglePacket(packet: SensorData): SensorData { - val channelData = packet.getChannelData() - if (channelData == null || channelData.isEmpty()) { - return packet - } - - val processedChannels = mutableListOf>() - - for (channel in channelData) { - val processedChannel = when (packet.getDataType()) { - type.SensorData.DataType.EEG -> applyEEGFilters(channel) - type.SensorData.DataType.ECG_2LEAD, type.SensorData.DataType.ECG_12LEAD -> applyECGFilters(channel) - type.SensorData.DataType.PPG -> channel // PPG不进行滤波处理,直接返回原始数据 - else -> channel // 其他类型暂时不处理 - } - processedChannels.add(processedChannel) - } - - // 创建处理后的数据包 - val processedPacket = SensorData() - processedPacket.setDataType(packet.getDataType()) - processedPacket.setTimestamp(packet.getTimestamp()) - processedPacket.setPacketSn(packet.getPacketSn()) - processedPacket.setChannelData(processedChannels) - - return processedPacket - } - - /** - * 应用EEG滤波器 - */ - private fun applyEEGFilters(channel: List): List { - val signal = channel.toFloatArray() - - try { - if (streamingSignalProcessor != null) { - // 1. 带通滤波 (1-40Hz,EEG主要频率范围) - val bandpassFiltered = streamingSignalProcessor!!.bandpassFilter( - signal, - filterSettings.sampleRate.toFloat(), - 1.0f, - 40.0f - ) - - if (bandpassFiltered != null) { - // 2. 幅度归一化 - val normalized = streamingSignalProcessor!!.normalizeAmplitude(bandpassFiltered) - - if (normalized != null) { - return normalized.toList() - } - } - } - } catch (e: Exception) { - Log.e("DataManager", "EEG滤波处理失败: ${e.message}") - } - - return channel // 处理失败时返回原始数据 - } - - /** - * 应用ECG滤波器 - */ - private fun applyECGFilters(channel: List): List { - val signal = channel.toFloatArray() - - try { - if (streamingSignalProcessor != null) { - // 1. 高通滤波 (0.5Hz,去除基线漂移) - val highpassFiltered = streamingSignalProcessor!!.highpassFilter( - signal, - filterSettings.sampleRate.toFloat(), - 0.5f - ) - - if (highpassFiltered != null) { - // 2. 低通滤波 (40Hz,去除高频噪声) - val lowpassFiltered = streamingSignalProcessor!!.lowpassFilter( - highpassFiltered, - filterSettings.sampleRate.toFloat(), - 40.0f - ) - - if (lowpassFiltered != null) { - // 3. 陷波滤波 (50Hz,去除工频干扰) - val notchFiltered = streamingSignalProcessor!!.notchFilter( - lowpassFiltered, - filterSettings.sampleRate.toFloat(), - 50.0f, - 10.0f - ) - - if (notchFiltered != null) { - return notchFiltered.toList() - } - } - } - } - } catch (e: Exception) { - Log.e("DataManager", "ECG滤波处理失败: ${e.message}") - } - - return channel // 处理失败时返回原始数据 - } + + /** * 清理缓冲区 @@ -982,39 +765,6 @@ class DataManager(private val nativeCallback: NativeMethodCallback) { - /** - * 应用PPG滤波器 - */ - private fun applyPPGFilters(channel: List): List { - val signal = channel.toFloatArray() - - try { - if (streamingSignalProcessor != null) { - // 1. 低通滤波 (8Hz,PPG主要频率范围) - val filtered = streamingSignalProcessor!!.lowpassFilter( - signal, - filterSettings.sampleRate.toFloat(), - 8.0f - ) - - if (filtered != null) { - // 2. 去运动伪影 - val motionArtifactRemoved = streamingSignalProcessor!!.processRealtimeChunk( - filtered, - filterSettings.sampleRate.toFloat() - ) - - if (motionArtifactRemoved != null) { - return motionArtifactRemoved.toList() - } - } - } - } catch (e: Exception) { - Log.e("DataManager", "PPG滤波处理失败: ${e.message}") - } - - return channel // 处理失败时返回原始数据 - } /** * 设置滤波器参数 diff --git a/app/src/main/java/com/example/cmake_project_test/DeviceTypeHelper.kt b/app/src/main/java/com/example/cmake_project_test/DeviceTypeHelper.kt deleted file mode 100644 index a210b68..0000000 --- a/app/src/main/java/com/example/cmake_project_test/DeviceTypeHelper.kt +++ /dev/null @@ -1,79 +0,0 @@ -package com.example.cmake_project_test - -import type.SensorData - -/** - * 设备类型帮助类 - * 负责设备类型名称映射和通道数据详情构建 - */ -object DeviceTypeHelper { - - /** - * 根据数据类型获取设备名称 - */ - fun getDeviceName(dataType: SensorData.DataType): String { - return when (dataType) { - SensorData.DataType.EEG -> "脑电设备" - SensorData.DataType.ECG_2LEAD -> "胸腹设备" - SensorData.DataType.PPG -> "血氧设备" - SensorData.DataType.ECG_12LEAD -> "12导联心电" - SensorData.DataType.STETHOSCOPE -> "数字听诊" - SensorData.DataType.SNORE -> "鼾声设备" - SensorData.DataType.RESPIRATION -> "呼吸/姿态" - SensorData.DataType.MIT_BIH -> "MIT-BIH" - else -> "未知设备" - } - } - - /** - * 构建通道数据详情字符串 - */ - fun buildChannelDetails( - data: List, - maxPackets: Int = Constants.MAX_DETAIL_PACKETS, - maxChannels: Int = Constants.MAX_DISPLAY_CHANNELS, - maxSamples: Int = Constants.MAX_DISPLAY_SAMPLES - ): String { - if (data.isEmpty()) { - return "无通道数据" - } - - val details = mutableListOf() - - data.take(maxPackets).forEachIndexed { packetIndex, sensorData -> - if (sensorData.channelData.isNullOrEmpty()) { - details.add("数据包 ${packetIndex + 1}: 无通道数据") - return@forEachIndexed - } - - details.add("数据包 ${packetIndex + 1} (${getDeviceName(sensorData.dataType ?: SensorData.DataType.EEG)}):") - - sensorData.channelData.take(maxChannels).forEachIndexed { channelIndex, channel -> - if (channel.isNullOrEmpty()) { - details.add(" 通道 ${channelIndex + 1}: 空数据") - return@forEachIndexed - } - - // 只显示前几个采样点 - val sampleCount = minOf(maxSamples, channel.size) - val channelDataStr = channel.take(sampleCount).joinToString(", ") { "%.1f".format(it) } - - details.add(" 通道 ${channelIndex + 1}: ${sampleCount}/${channel.size} 采样点") - details.add(" 示例: $channelDataStr${if (channel.size > sampleCount) "..." else ""}") - } - - if (sensorData.channelData.size > maxChannels) { - details.add(" ... 还有 ${sensorData.channelData.size - maxChannels} 个通道") - } - - // 添加分隔线 - details.add("") - } - - if (data.size > maxPackets) { - details.add("... 还有 ${data.size - maxPackets} 个数据包") - } - - return details.joinToString("\n") - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/ECGChartView.kt b/app/src/main/java/com/example/cmake_project_test/ECGChartView.kt deleted file mode 100644 index 7ffe613..0000000 --- a/app/src/main/java/com/example/cmake_project_test/ECGChartView.kt +++ /dev/null @@ -1,414 +0,0 @@ -package com.example.cmake_project_test - -import android.content.Context -import android.graphics.* -import android.util.AttributeSet -import android.view.GestureDetector -import android.view.MotionEvent -import android.view.View -import kotlin.math.max -import kotlin.math.min - -class ECGChartView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : View(context, attrs, defStyleAttr) { - - private val paint = Paint().apply { - color = Color.BLUE - strokeWidth = 2f - style = Paint.Style.STROKE - isAntiAlias = true - } - - private val gridPaint = Paint().apply { - color = Color.LTGRAY - strokeWidth = 1f - style = Paint.Style.STROKE - alpha = 100 - } - - private val textPaint = Paint().apply { - color = Color.BLACK - textSize = 30f - isAntiAlias = true - } - - private val buttonPaint = Paint().apply { - color = Color.GRAY - style = Paint.Style.FILL - alpha = 150 - } - - private val buttonTextPaint = Paint().apply { - color = Color.WHITE - textSize = 20f - isAntiAlias = true - textAlign = Paint.Align.CENTER - } - - private val path = Path() - private var dataPoints = mutableListOf() - private var maxDataPoints = 1000 // 优化:显示更多数据点,提供更好的可视化效果 - private var minValue = Float.MAX_VALUE - private var maxValue = Float.MIN_VALUE - - // 缩放控制参数 - private var scaleX = 1.0f // X轴缩放因子 - private var scaleY = 1.0f // Y轴缩放因子 - private var offsetX = 0f // X轴偏移 - private var offsetY = 0f // Y轴偏移 - - // 自动居中控制 - private var autoCenter = true // 自动居中模式 - private var lockToCenter = true // 锁定到屏幕中央 - - // 手势检测器 - private val gestureDetector = GestureDetector(context, object : GestureDetector.SimpleOnGestureListener() { - override fun onDoubleTap(e: MotionEvent): Boolean { - // 双击重置缩放并锁定到中央 - resetZoom() - lockToCenter = true - invalidate() - return true - } - - override fun onScroll(e1: MotionEvent?, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean { - // 只有在非锁定模式下才允许平移 - if (!lockToCenter) { - offsetX -= distanceX - offsetY -= distanceY - invalidate() - } - return true - } - }) - - // 按钮区域 - private val buttonSize = 60f - private val buttonMargin = 20f - - // 缩放按钮区域 - private val zoomInXButtonRect = RectF() - private val zoomOutXButtonRect = RectF() - private val zoomInYButtonRect = RectF() - private val zoomOutYButtonRect = RectF() - private val resetButtonRect = RectF() - private val lockButtonRect = RectF() - - fun updateData(newData: List) { - // 快速累积数据 - dataPoints.addAll(newData) - - // 限制数据点数量(避免内存溢出) - if (dataPoints.size > maxDataPoints) { - dataPoints = dataPoints.takeLast(maxDataPoints).toMutableList() - } - - // 快速计算数据范围(减少计算量) - if (dataPoints.isNotEmpty()) { - // 只计算最近的数据范围,提高性能 - val recentData = dataPoints.takeLast(minOf(1000, dataPoints.size)) - minValue = recentData.minOrNull() ?: 0f - maxValue = recentData.maxOrNull() ?: 0f - - // 确保有足够的显示范围 - val range = maxValue - minValue - if (range < 0.1f) { - val center = (maxValue + minValue) / 2 - minValue = center - 0.05f - maxValue = center + 0.05f - } else { - // 添加10%的上下边距(减少边距,提高响应速度) - val margin = range * 0.1f - minValue -= margin - maxValue += margin - } - } - - // 如果启用自动居中,重置偏移 - if (autoCenter) { - offsetX = 0f - offsetY = 0f - } - - // 立即重绘 - invalidate() - } - - fun clearData() { - dataPoints.clear() - invalidate() - } - - // 缩放控制方法 - fun zoomInX() { - scaleX = min(scaleX * 1.2f, 5.0f) - invalidate() - } - - fun zoomOutX() { - scaleX = max(scaleX / 1.2f, 0.2f) - invalidate() - } - - fun zoomInY() { - scaleY = min(scaleY * 1.2f, 5.0f) - invalidate() - } - - fun zoomOutY() { - scaleY = max(scaleY / 1.2f, 0.2f) - invalidate() - } - - fun resetZoom() { - scaleX = 1.0f - scaleY = 1.0f - offsetX = 0f - offsetY = 0f - lockToCenter = true - invalidate() - } - - // 切换锁定模式 - fun toggleLockMode() { - lockToCenter = !lockToCenter - if (lockToCenter) { - offsetX = 0f - offsetY = 0f - } - invalidate() - } - - // 获取锁定状态 - fun isLockedToCenter(): Boolean = lockToCenter - - override fun onTouchEvent(event: MotionEvent): Boolean { - when (event.action) { - MotionEvent.ACTION_DOWN -> { - // 检查是否点击了按钮 - val x = event.x - val y = event.y - - if (zoomInXButtonRect.contains(x, y)) { - zoomInX() - return true - } else if (zoomOutXButtonRect.contains(x, y)) { - zoomOutX() - return true - } else if (zoomInYButtonRect.contains(x, y)) { - zoomInY() - return true - } else if (zoomOutYButtonRect.contains(x, y)) { - zoomOutY() - return true - } else if (resetButtonRect.contains(x, y)) { - resetZoom() - return true - } else if (lockButtonRect.contains(x, y)) { - toggleLockMode() - return true - } - } - } - - // 处理手势 - return gestureDetector.onTouchEvent(event) || super.onTouchEvent(event) - } - - override fun onDraw(canvas: Canvas) { - super.onDraw(canvas) - - val width = width.toFloat() - val height = height.toFloat() - - // 更新按钮位置 - updateButtonPositions(width, height) - - // 绘制网格 - drawGrid(canvas, width, height) - - // 绘制标题 - canvas.drawText("ECG Channel 1 (滤波后)", 20f, 40f, textPaint) - - // 绘制缩放信息 - canvas.drawText("X缩放: ${String.format("%.1f", scaleX)}x", 20f, 70f, textPaint) - canvas.drawText("Y缩放: ${String.format("%.1f", scaleY)}x", 20f, 100f, textPaint) - - // 绘制锁定状态 - val lockStatus = if (lockToCenter) "🔒 已锁定" else "🔓 已解锁" - canvas.drawText(lockStatus, 20f, 130f, textPaint) - - // 绘制数据点数量 - canvas.drawText("数据点: ${dataPoints.size}", 20f, height - 20f, textPaint) - - // 绘制数据范围 - if (dataPoints.isNotEmpty()) { - canvas.drawText("范围: ${String.format("%.3f", minValue)} - ${String.format("%.3f", maxValue)}", - 20f, height - 50f, textPaint) - } - - // 绘制控制按钮 - drawControlButtons(canvas) - - // 绘制曲线 - if (dataPoints.size > 1) { - drawCurve(canvas, width, height) - } - } - - private fun updateButtonPositions(width: Float, height: Float) { - val buttonY = height - buttonSize - buttonMargin - - // X轴缩放按钮 - zoomInXButtonRect.set( - width - buttonSize * 6 - buttonMargin * 6, - buttonY, - width - buttonSize * 5 - buttonMargin * 5, - buttonY + buttonSize - ) - - zoomOutXButtonRect.set( - width - buttonSize * 5 - buttonMargin * 5, - buttonY, - width - buttonSize * 4 - buttonMargin * 4, - buttonY + buttonSize - ) - - // Y轴缩放按钮 - zoomInYButtonRect.set( - width - buttonSize * 4 - buttonMargin * 4, - buttonY, - width - buttonSize * 3 - buttonMargin * 3, - buttonY + buttonSize - ) - - zoomOutYButtonRect.set( - width - buttonSize * 3 - buttonMargin * 3, - buttonY, - width - buttonSize * 2 - buttonMargin * 2, - buttonY + buttonSize - ) - - // 重置按钮 - resetButtonRect.set( - width - buttonSize * 2 - buttonMargin * 2, - buttonY, - width - buttonSize - buttonMargin, - buttonY + buttonSize - ) - - // 锁定按钮 - lockButtonRect.set( - width - buttonSize - buttonMargin, - buttonY, - width - buttonMargin, - buttonY + buttonSize - ) - } - - private fun drawControlButtons(canvas: Canvas) { - // 绘制X轴缩放按钮 - canvas.drawRoundRect(zoomInXButtonRect, 10f, 10f, buttonPaint) - canvas.drawText("X+", zoomInXButtonRect.centerX(), zoomInXButtonRect.centerY() + 7f, buttonTextPaint) - - canvas.drawRoundRect(zoomOutXButtonRect, 10f, 10f, buttonTextPaint) - canvas.drawText("X-", zoomOutXButtonRect.centerX(), zoomOutXButtonRect.centerY() + 7f, buttonTextPaint) - - // 绘制Y轴缩放按钮 - canvas.drawRoundRect(zoomInYButtonRect, 10f, 10f, buttonPaint) - canvas.drawText("Y+", zoomInYButtonRect.centerX(), zoomInYButtonRect.centerY() + 7f, buttonTextPaint) - - canvas.drawRoundRect(zoomOutYButtonRect, 10f, 10f, buttonPaint) - canvas.drawText("Y-", zoomOutYButtonRect.centerX(), zoomOutYButtonRect.centerY() + 7f, buttonTextPaint) - - // 绘制重置按钮 - canvas.drawRoundRect(resetButtonRect, 10f, 10f, buttonPaint) - canvas.drawText("重置", resetButtonRect.centerX(), resetButtonRect.centerY() + 7f, buttonTextPaint) - - // 绘制锁定按钮 - val lockButtonColor = if (lockToCenter) Color.GREEN else Color.RED - buttonPaint.color = lockButtonColor - canvas.drawRoundRect(lockButtonRect, 10f, 10f, buttonPaint) - canvas.drawText(if (lockToCenter) "🔒" else "🔓", lockButtonRect.centerX(), lockButtonRect.centerY() + 7f, buttonTextPaint) - buttonPaint.color = Color.GRAY // 恢复默认颜色 - } - - private fun drawGrid(canvas: Canvas, width: Float, height: Float) { - // 绘制垂直线 - val verticalSpacing = width / 10 - for (i in 0..10) { - val x = i * verticalSpacing - canvas.drawLine(x, 0f, x, height, gridPaint) - } - - // 绘制水平线 - val horizontalSpacing = height / 8 - for (i in 0..8) { - val y = i * horizontalSpacing - canvas.drawLine(0f, y, width, y, gridPaint) - } - } - - private fun drawCurve(canvas: Canvas, width: Float, height: Float) { - path.reset() - - val padding = 60f - val drawWidth = width - 2 * padding - val drawHeight = height - 2 * padding - - // 应用缩放和偏移 - val scaledWidth = drawWidth * scaleX - val scaledHeight = drawHeight * scaleY - - // 如果锁定到中央,强制偏移为0 - val effectiveOffsetX = if (lockToCenter) 0f else offsetX - val effectiveOffsetY = if (lockToCenter) 0f else offsetY - - val xStep = scaledWidth / (dataPoints.size - 1) - - for (i in dataPoints.indices) { - val x = padding + i * xStep + effectiveOffsetX - val normalizedValue = (dataPoints[i] - minValue) / (maxValue - minValue) - // 使用0.1到0.9的范围,确保曲线在中间80%的区域显示 - val y = padding + (0.1f + normalizedValue * 0.8f) * scaledHeight + effectiveOffsetY - - // 确保点在可见区域内 - if (x >= padding && x <= width - padding && y >= padding && y <= height - padding) { - if (i == 0) { - path.moveTo(x, y) - } else { - path.lineTo(x, y) - } - } - } - - canvas.drawPath(path, paint) - } - - override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { - val desiredWidth = 800 - val desiredHeight = 400 - - val widthMode = MeasureSpec.getMode(widthMeasureSpec) - val widthSize = MeasureSpec.getSize(widthMeasureSpec) - val heightMode = MeasureSpec.getMode(heightMeasureSpec) - val heightSize = MeasureSpec.getSize(heightMeasureSpec) - - val width = when (widthMode) { - MeasureSpec.EXACTLY -> widthSize - MeasureSpec.AT_MOST -> min(desiredWidth, widthSize) - else -> desiredWidth - } - - val height = when (heightMode) { - MeasureSpec.EXACTLY -> heightSize - MeasureSpec.AT_MOST -> min(desiredHeight, heightSize) - else -> desiredHeight - } - - setMeasuredDimension(width, height) - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/ECGRhythmView.kt b/app/src/main/java/com/example/cmake_project_test/ECGRhythmView.kt deleted file mode 100644 index 6924947..0000000 --- a/app/src/main/java/com/example/cmake_project_test/ECGRhythmView.kt +++ /dev/null @@ -1,367 +0,0 @@ -package com.example.cmake_project_test - -import android.content.Context -import android.graphics.* -import android.util.AttributeSet -import android.util.Log -import android.view.GestureDetector -import android.view.MotionEvent -import android.view.View -import kotlin.math.max -import kotlin.math.min - -/** - * ECG节律视图 - * 显示10秒(2500点)的连续信号,用于评估心率节律 - */ -class ECGRhythmView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : View(context, attrs, defStyleAttr) { - - private val paint = Paint().apply { - color = Color.BLUE - strokeWidth = 1.5f - style = Paint.Style.STROKE - isAntiAlias = false // 关闭抗锯齿,提高绘制性能 - } - - private val gridPaint = Paint().apply { - color = Color.LTGRAY - strokeWidth = 0.5f - style = Paint.Style.STROKE - alpha = 80 - } - - private val textPaint = Paint().apply { - color = Color.BLACK - textSize = 24f - isAntiAlias = true - } - - private val path = Path() - private var dataPoints = mutableListOf() - private var maxDataPoints = 2500 // 10秒数据(250Hz采样率) - private var minValue = Float.MAX_VALUE - private var maxValue = Float.MIN_VALUE - private var isDataAvailable = false // 标记是否有数据 - - // 简化的数据管理:直接显示新数据 - - // 缩放控制参数 - private var scaleX = 1.0f - private var scaleY = 1.0f - private var offsetX = 0f - private var offsetY = 0f - - // 手势检测器 - private val gestureDetector = GestureDetector(context, object : GestureDetector.SimpleOnGestureListener() { - override fun onDoubleTap(e: MotionEvent): Boolean { - resetZoom() - return true - } - - override fun onScroll(e1: MotionEvent?, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean { - offsetX -= distanceX - offsetY -= distanceY - invalidate() - return true - } - }) - - // 缩放手势检测器 - private val scaleGestureDetector = android.view.ScaleGestureDetector(context, - object : android.view.ScaleGestureDetector.SimpleOnScaleGestureListener() { - override fun onScale(detector: android.view.ScaleGestureDetector): Boolean { - scaleX *= detector.scaleFactor - scaleY *= detector.scaleFactor - - // 限制缩放范围 - scaleX = scaleX.coerceIn(0.1f, 5.0f) - scaleY = scaleY.coerceIn(0.1f, 5.0f) - - invalidate() - return true - } - }) - - // 触摸事件处理 - private var lastTouchX = 0f - private var lastTouchY = 0f - private var isDragging = false - - fun updateData(newData: List) { - if (newData.isEmpty()) return - - isDataAvailable = true - - // 直接添加新数据,来多少显示多少 - dataPoints.addAll(newData) - - // 限制数据点数量,保持滚动显示 - if (dataPoints.size > maxDataPoints) { - dataPoints = dataPoints.takeLast(maxDataPoints).toMutableList() - } - - // 更新数据范围 - updateDataRange(newData) - - // 立即重绘 - invalidate() - } - - private fun updateDataRange(newData: List) { - // 使用全部数据点计算范围,提供更准确的范围 - if (dataPoints.isEmpty()) return - - // 计算全部数据点的范围 - minValue = dataPoints.minOrNull() ?: 0f - maxValue = dataPoints.maxOrNull() ?: 0f - - // 确保有足够的显示范围 - val range = maxValue - minValue - if (range < 0.1f) { - val center = (maxValue + minValue) / 2 - minValue = center - 0.05f - maxValue = center + 0.05f - } else { - // 添加10%的上下边距 - val margin = range * 0.1f - minValue -= margin - maxValue += margin - } - } - - fun clearData() { - dataPoints.clear() - invalidate() - } - - /** - * 获取当前图表数据 - */ - fun getCurrentData(): List { - return dataPoints.toList() - } - - /** - * 获取数据统计信息 - */ - fun getDataStats(): Map { - return mapOf( - "dataPoints" to dataPoints.size, - "minValue" to minValue, - "maxValue" to maxValue, - "range" to (maxValue - minValue), - "isDataAvailable" to isDataAvailable - ) - } - - fun resetZoom() { - scaleX = 1.0f - scaleY = 1.0f - offsetX = 0f - offsetY = 0f - invalidate() - } - - override fun onTouchEvent(event: MotionEvent): Boolean { - when (event.action) { - MotionEvent.ACTION_DOWN -> { - lastTouchX = event.x - lastTouchY = event.y - isDragging = false - } - MotionEvent.ACTION_MOVE -> { - if (event.pointerCount == 1) { - // 单指拖拽 - val deltaX = event.x - lastTouchX - val deltaY = event.y - lastTouchY - offsetX += deltaX - offsetY += deltaY - lastTouchX = event.x - lastTouchY = event.y - isDragging = true - invalidate() - } - } - MotionEvent.ACTION_UP -> { - if (!isDragging) { - // 如果没有拖拽,可能是点击事件 - return gestureDetector.onTouchEvent(event) - } - } - } - - // 处理缩放手势 - scaleGestureDetector.onTouchEvent(event) - - return true - } - - override fun onDraw(canvas: Canvas) { - super.onDraw(canvas) - - val width = width.toFloat() - val height = height.toFloat() - - // 绘制网格 - drawGrid(canvas, width, height) - - // 绘制标题 - canvas.drawText("ECG节律视图 (10秒)", 20f, 30f, textPaint) - - // 绘制时间轴标签 - canvas.drawText("0s", 20f, height - 10f, textPaint) - canvas.drawText("5s", width / 2 - 15f, height - 10f, textPaint) - canvas.drawText("10s", width - 50f, height - 10f, textPaint) - - // 绘制数据点数量 - canvas.drawText("数据点: ${dataPoints.size}", 20f, height - 35f, textPaint) - - // 绘制数据范围 - if (dataPoints.isNotEmpty()) { - canvas.drawText("范围: ${String.format("%.3f", minValue)} - ${String.format("%.3f", maxValue)}", - 20f, height - 60f, textPaint) - } - - // 绘制缩放信息 - canvas.drawText("X缩放: ${String.format("%.1f", scaleX)}x", width - 150f, 30f, textPaint) - canvas.drawText("Y缩放: ${String.format("%.1f", scaleY)}x", width - 150f, 55f, textPaint) - - // 如果没有数据,显示默认内容 - if (!isDataAvailable) { - drawDefaultContent(canvas, width, height) - } else { - // 绘制曲线 - if (dataPoints.size > 1) { - drawCurve(canvas, width, height) - } - } - } - - private fun drawGrid(canvas: Canvas, width: Float, height: Float) { - // 绘制垂直线(时间轴) - val verticalSpacing = width / 20 // 20条垂直线,每0.5秒一条 - for (i in 0..20) { - val x = i * verticalSpacing - canvas.drawLine(x, 0f, x, height, gridPaint) - } - - // 绘制水平线(幅度轴) - val horizontalSpacing = height / 10 - for (i in 0..10) { - val y = i * horizontalSpacing - canvas.drawLine(0f, y, width, y, gridPaint) - } - } - - private fun drawDefaultContent(canvas: Canvas, width: Float, height: Float) { - // 绘制默认的提示信息 - val centerX = width / 2 - val centerY = height / 2 - - // 绘制提示文字 - val hintPaint = Paint().apply { - color = Color.GRAY - textSize = 32f - isAntiAlias = true - textAlign = Paint.Align.CENTER - } - - canvas.drawText("等待数据...", centerX, centerY - 20f, hintPaint) - canvas.drawText("请先连接蓝牙设备", centerX, centerY + 20f, hintPaint) - canvas.drawText("然后点击'启动程序'显示原始数据", centerX, centerY + 60f, hintPaint) - - // 绘制一个简单的示例波形 - drawSampleWaveform(canvas, width, height) - } - - private fun drawSampleWaveform(canvas: Canvas, width: Float, height: Float) { - val samplePaint = Paint().apply { - color = Color.LTGRAY - strokeWidth = 2f - style = Paint.Style.STROKE - isAntiAlias = true - alpha = 100 - } - - val path = Path() - val padding = 80f - val drawWidth = width - 2 * padding - val drawHeight = height - 2 * padding - val centerY = height / 2 - - path.moveTo(padding, centerY) - - // 绘制一个简单的正弦波示例 - for (i in 0..100) { - val x = padding + (i * drawWidth / 100) - val y = centerY + (Math.sin(i * 0.3) * drawHeight / 4).toFloat() - path.lineTo(x, y) - } - - canvas.drawPath(path, samplePaint) - } - - private fun drawCurve(canvas: Canvas, width: Float, height: Float) { - path.reset() - - val padding = 80f - val drawWidth = width - 2 * padding - val drawHeight = height - 2 * padding - - // 应用缩放和偏移 - val scaledWidth = drawWidth * scaleX - val scaledHeight = drawHeight * scaleY - - // 性能优化:减少数据点绘制,提高流畅度 - val stepSize = maxOf(1, dataPoints.size / 1000) // 最多绘制1000个点 - val xStep = scaledWidth / (dataPoints.size - 1) - - var firstPoint = true - for (i in dataPoints.indices step stepSize) { - val x = padding + i * xStep + offsetX - val normalizedValue = (dataPoints[i] - minValue) / (maxValue - minValue) - // 使用0.1到0.9的范围,确保曲线在中间80%的区域显示 - val y = padding + (0.1f + normalizedValue * 0.8f) * scaledHeight + offsetY - - // 确保点在可见区域内 - if (x >= padding && x <= width - padding && y >= padding && y <= height - padding) { - if (firstPoint) { - path.moveTo(x, y) - firstPoint = false - } else { - path.lineTo(x, y) - } - } - } - - canvas.drawPath(path, paint) - } - - override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { - val desiredWidth = 1000 - val desiredHeight = 300 - - val widthMode = MeasureSpec.getMode(widthMeasureSpec) - val widthSize = MeasureSpec.getSize(widthMeasureSpec) - val heightMode = MeasureSpec.getMode(heightMeasureSpec) - val heightSize = MeasureSpec.getSize(heightMeasureSpec) - - val width = when (widthMode) { - MeasureSpec.EXACTLY -> widthSize - MeasureSpec.AT_MOST -> min(desiredWidth, widthSize) - else -> desiredWidth - } - - val height = when (heightMode) { - MeasureSpec.EXACTLY -> heightSize - MeasureSpec.AT_MOST -> min(desiredHeight, heightSize) - else -> desiredHeight - } - - setMeasuredDimension(width, height) - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/ECGWaveformView.kt b/app/src/main/java/com/example/cmake_project_test/ECGWaveformView.kt deleted file mode 100644 index 5a27680..0000000 --- a/app/src/main/java/com/example/cmake_project_test/ECGWaveformView.kt +++ /dev/null @@ -1,363 +0,0 @@ -package com.example.cmake_project_test - -import android.content.Context -import android.graphics.* -import android.util.AttributeSet -import android.util.Log -import android.view.GestureDetector -import android.view.MotionEvent -import android.view.View -import kotlin.math.max -import kotlin.math.min - -/** - * ECG波形视图 - * 显示2.5秒(625点)的放大信号,用于精确测量波形形态和间期 - */ -class ECGWaveformView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : View(context, attrs, defStyleAttr) { - - private val paint = Paint().apply { - color = Color.RED - strokeWidth = 2f - style = Paint.Style.STROKE - isAntiAlias = true - } - - private val gridPaint = Paint().apply { - color = Color.LTGRAY - strokeWidth = 1f - style = Paint.Style.STROKE - alpha = 100 - } - - private val textPaint = Paint().apply { - color = Color.BLACK - textSize = 28f - isAntiAlias = true - } - - private val path = Path() - private var dataPoints = mutableListOf() - private var maxDataPoints = 625 // 2.5秒数据(250Hz采样率) - private var minValue = Float.MAX_VALUE - private var maxValue = Float.MIN_VALUE - private var isDataAvailable = false // 标记是否有数据 - - // 简化的数据管理:直接显示新数据 - - // 缩放控制参数 - private var scaleX = 1.0f - private var scaleY = 1.0f - private var offsetX = 0f - private var offsetY = 0f - - // 手势检测器 - private val gestureDetector = GestureDetector(context, object : GestureDetector.SimpleOnGestureListener() { - override fun onDoubleTap(e: MotionEvent): Boolean { - resetZoom() - return true - } - - override fun onScroll(e1: MotionEvent?, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean { - offsetX -= distanceX - offsetY -= distanceY - invalidate() - return true - } - }) - - // 缩放手势检测器 - private val scaleGestureDetector = android.view.ScaleGestureDetector(context, - object : android.view.ScaleGestureDetector.SimpleOnScaleGestureListener() { - override fun onScale(detector: android.view.ScaleGestureDetector): Boolean { - scaleX *= detector.scaleFactor - scaleY *= detector.scaleFactor - - // 限制缩放范围 - scaleX = scaleX.coerceIn(0.1f, 5.0f) - scaleY = scaleY.coerceIn(0.1f, 5.0f) - - invalidate() - return true - } - }) - - // 触摸事件处理 - private var lastTouchX = 0f - private var lastTouchY = 0f - private var isDragging = false - - fun updateData(newData: List) { - if (newData.isEmpty()) return - - isDataAvailable = true - - // 直接添加新数据,来多少显示多少 - dataPoints.addAll(newData) - - // 限制数据点数量,保持滚动显示 - if (dataPoints.size > maxDataPoints) { - dataPoints = dataPoints.takeLast(maxDataPoints).toMutableList() - } - - // 更新数据范围 - updateDataRange(newData) - - // 立即重绘 - invalidate() - } - - private fun updateDataRange(newData: List) { - // 使用全部数据点计算范围,提供更准确的范围 - if (dataPoints.isEmpty()) return - - // 计算全部数据点的范围 - minValue = dataPoints.minOrNull() ?: 0f - maxValue = dataPoints.maxOrNull() ?: 0f - - // 确保有足够的显示范围 - val range = maxValue - minValue - if (range < 0.1f) { - val center = (maxValue + minValue) / 2 - minValue = center - 0.05f - maxValue = center + 0.05f - } else { - // 添加15%的上下边距 - val margin = range * 0.15f - minValue -= margin - maxValue += margin - } - } - - fun clearData() { - dataPoints.clear() - invalidate() - } - - /** - * 获取当前图表数据 - */ - fun getCurrentData(): List { - return dataPoints.toList() - } - - /** - * 获取数据统计信息 - */ - fun getDataStats(): Map { - return mapOf( - "dataPoints" to dataPoints.size, - "minValue" to minValue, - "maxValue" to maxValue, - "range" to (maxValue - minValue), - "isDataAvailable" to isDataAvailable - ) - } - - fun resetZoom() { - scaleX = 1.0f - scaleY = 1.0f - offsetX = 0f - offsetY = 0f - invalidate() - } - - override fun onTouchEvent(event: MotionEvent): Boolean { - when (event.action) { - MotionEvent.ACTION_DOWN -> { - lastTouchX = event.x - lastTouchY = event.y - isDragging = false - } - MotionEvent.ACTION_MOVE -> { - if (event.pointerCount == 1) { - // 单指拖拽 - val deltaX = event.x - lastTouchX - val deltaY = event.y - lastTouchY - offsetX += deltaX - offsetY += deltaY - lastTouchX = event.x - lastTouchY = event.y - isDragging = true - invalidate() - } - } - MotionEvent.ACTION_UP -> { - if (!isDragging) { - // 如果没有拖拽,可能是点击事件 - return gestureDetector.onTouchEvent(event) - } - } - } - - // 处理缩放手势 - scaleGestureDetector.onTouchEvent(event) - - return true - } - - override fun onDraw(canvas: Canvas) { - super.onDraw(canvas) - - val width = width.toFloat() - val height = height.toFloat() - - // 绘制网格 - drawGrid(canvas, width, height) - - // 绘制标题 - canvas.drawText("ECG波形视图 (2.5秒)", 20f, 35f, textPaint) - - // 绘制时间轴标签 - canvas.drawText("0s", 20f, height - 10f, textPaint) - canvas.drawText("1.25s", width / 2 - 25f, height - 10f, textPaint) - canvas.drawText("2.5s", width - 60f, height - 10f, textPaint) - - // 绘制数据点数量 - canvas.drawText("数据点: ${dataPoints.size}", 20f, height - 40f, textPaint) - - // 绘制数据范围 - if (dataPoints.isNotEmpty()) { - canvas.drawText("范围: ${String.format("%.3f", minValue)} - ${String.format("%.3f", maxValue)}", - 20f, height - 70f, textPaint) - } - - // 绘制缩放信息 - canvas.drawText("X缩放: ${String.format("%.1f", scaleX)}x", width - 150f, 35f, textPaint) - canvas.drawText("Y缩放: ${String.format("%.1f", scaleY)}x", width - 150f, 65f, textPaint) - - // 如果没有数据,显示默认内容 - if (!isDataAvailable) { - drawDefaultContent(canvas, width, height) - } else { - // 绘制曲线 - if (dataPoints.size > 1) { - drawCurve(canvas, width, height) - } - } - } - - private fun drawGrid(canvas: Canvas, width: Float, height: Float) { - // 绘制垂直线(时间轴)- 更密集的网格用于精确测量 - val verticalSpacing = width / 25 // 25条垂直线,每0.1秒一条 - for (i in 0..25) { - val x = i * verticalSpacing - canvas.drawLine(x, 0f, x, height, gridPaint) - } - - // 绘制水平线(幅度轴) - val horizontalSpacing = height / 12 // 12条水平线,更密集 - for (i in 0..12) { - val y = i * horizontalSpacing - canvas.drawLine(0f, y, width, y, gridPaint) - } - } - - private fun drawDefaultContent(canvas: Canvas, width: Float, height: Float) { - // 绘制默认的提示信息 - val centerX = width / 2 - val centerY = height / 2 - - // 绘制提示文字 - val hintPaint = Paint().apply { - color = Color.GRAY - textSize = 28f - isAntiAlias = true - textAlign = Paint.Align.CENTER - } - - canvas.drawText("等待数据...", centerX, centerY - 20f, hintPaint) - canvas.drawText("请先连接蓝牙设备", centerX, centerY + 20f, hintPaint) - canvas.drawText("然后点击'启动程序'显示原始数据", centerX, centerY + 60f, hintPaint) - - // 绘制一个简单的示例波形 - drawSampleWaveform(canvas, width, height) - } - - private fun drawSampleWaveform(canvas: Canvas, width: Float, height: Float) { - val samplePaint = Paint().apply { - color = Color.LTGRAY - strokeWidth = 1.5f - style = Paint.Style.STROKE - isAntiAlias = true - alpha = 80 - } - - val path = Path() - val padding = 100f - val drawWidth = width - 2 * padding - val drawHeight = height - 2 * padding - val centerY = height / 2 - - path.moveTo(padding, centerY) - - // 绘制一个简单的正弦波示例 - for (i in 0..100) { - val x = padding + (i * drawWidth / 100) - val y = centerY + (Math.sin(i * 0.5) * drawHeight / 6).toFloat() - path.lineTo(x, y) - } - - canvas.drawPath(path, samplePaint) - } - - private fun drawCurve(canvas: Canvas, width: Float, height: Float) { - path.reset() - - val padding = 100f - val drawWidth = width - 2 * padding - val drawHeight = height - 2 * padding - - // 应用缩放和偏移 - val scaledWidth = drawWidth * scaleX - val scaledHeight = drawHeight * scaleY - - val xStep = scaledWidth / (dataPoints.size - 1) - - for (i in dataPoints.indices) { - val x = padding + i * xStep + offsetX - val normalizedValue = (dataPoints[i] - minValue) / (maxValue - minValue) - // 使用0.1到0.9的范围,确保曲线在中间80%的区域显示 - val y = padding + (0.1f + normalizedValue * 0.8f) * scaledHeight + offsetY - - // 确保点在可见区域内 - if (x >= padding && x <= width - padding && y >= padding && y <= height - padding) { - if (i == 0) { - path.moveTo(x, y) - } else { - path.lineTo(x, y) - } - } - } - - canvas.drawPath(path, paint) - } - - override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { - val desiredWidth = 1000 - val desiredHeight = 400 - - val widthMode = MeasureSpec.getMode(widthMeasureSpec) - val widthSize = MeasureSpec.getSize(widthMeasureSpec) - val heightMode = MeasureSpec.getMode(heightMeasureSpec) - val heightSize = MeasureSpec.getSize(heightMeasureSpec) - - val width = when (widthMode) { - MeasureSpec.EXACTLY -> widthSize - MeasureSpec.AT_MOST -> min(desiredWidth, widthSize) - else -> desiredWidth - } - - val height = when (heightMode) { - MeasureSpec.EXACTLY -> heightSize - MeasureSpec.AT_MOST -> min(desiredHeight, heightSize) - else -> desiredHeight - } - - setMeasuredDimension(width, height) - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/FileHelper.kt b/app/src/main/java/com/example/cmake_project_test/FileHelper.kt deleted file mode 100644 index 7978707..0000000 --- a/app/src/main/java/com/example/cmake_project_test/FileHelper.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.example.cmake_project_test - -import android.content.Context -import android.util.Log -import java.io.IOException - -/** - * 文件帮助类 - * 负责文件读取操作 - */ -object FileHelper { - - /** - * 从 assets 文件夹读取文件到字节数组 - */ - fun readAssetFile(context: Context, fileName: String): ByteArray? { - return try { - context.assets.open(fileName).use { inputStream -> - // 使用更可靠的文件读取方式 - val bytes = mutableListOf() - val buffer = ByteArray(1024) - var bytesRead: Int - - while (inputStream.read(buffer).also { bytesRead = it } != -1) { - for (i in 0 until bytesRead) { - bytes.add(buffer[i]) - } - } - - bytes.toByteArray() - } - } catch (e: IOException) { - Log.e("FileHelper", "Error reading asset file: $fileName", e) - null - } catch (e: Exception) { - Log.e("FileHelper", "Unexpected error reading asset file: $fileName", e) - null - } - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/MainActivity.kt b/app/src/main/java/com/example/cmake_project_test/MainActivity.kt index 59ca30c..507f212 100644 --- a/app/src/main/java/com/example/cmake_project_test/MainActivity.kt +++ b/app/src/main/java/com/example/cmake_project_test/MainActivity.kt @@ -972,8 +972,7 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real */ private fun showCommandDialog() { val commands = arrayOf( - "轻迅协议指令", - "PPTM协议指令" + "轻迅协议指令" ) androidx.appcompat.app.AlertDialog.Builder(this) @@ -981,7 +980,6 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real .setItems(commands) { _, which -> when (which) { 0 -> showQingXunProtocolDialog() - 1 -> showPptmProtocolDialog() } } .setNegativeButton("取消", null) @@ -995,8 +993,7 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real val commands = arrayOf( "开启采集", "停止采集", - "查询设备信息", - "查询电量", + "电刺激开关", "工频滤波开关" ) @@ -1006,87 +1003,8 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real when (which) { 0 -> sendQingXunStartCollection() 1 -> sendQingXunStopCollection() - 2 -> bluetoothManager.queryDeviceInfo() - 3 -> bluetoothManager.queryBattery() - 4 -> showPowerLineFilterDialog() - } - } - .setNegativeButton("取消", null) - .show() - } - - /** - * 显示PPTM协议指令对话框 - */ - private fun showPptmProtocolDialog() { - val commands = arrayOf( - "开始采样", - "停止采样", - "自定义PPTM指令" - ) - - androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("PPTM协议指令") - .setItems(commands) { _, which -> - when (which) { - 0 -> { - bluetoothManager.sendPptmStartSampleCmd() - updateStatus("发送PPTM开始采样指令") - } - 1 -> { - bluetoothManager.sendPptmStopSampleCmd() - updateStatus("发送PPTM停止采样指令") - } - 2 -> showCustomPptmCommandDialog() - } - } - .setNegativeButton("取消", null) - .show() - } - - /** - * 显示自定义PPTM指令对话框 - */ - private fun showCustomPptmCommandDialog() { - val input = android.widget.EditText(this) - input.hint = "输入操作码(如:0x0001)" - - val payloadInput = android.widget.EditText(this) - payloadInput.hint = "输入负载数据(十六进制,如:01 00 00 00)" - - val layout = android.widget.LinearLayout(this).apply { - orientation = android.widget.LinearLayout.VERTICAL - setPadding(50, 20, 50, 20) - addView(input) - addView(payloadInput) - } - - androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("自定义PPTM指令") - .setView(layout) - .setPositiveButton("发送") { _, _ -> - val opcodeStr = input.text.toString().trim() - val payloadStr = payloadInput.text.toString().trim() - - if (opcodeStr.isNotEmpty()) { - try { - val opcode = if (opcodeStr.startsWith("0x")) { - opcodeStr.substring(2).toShort(16) - } else { - opcodeStr.toShort() - } - - val payload = if (payloadStr.isNotEmpty()) { - payloadStr.split(" ").map { it.toInt(16).toByte() }.toByteArray() - } else { - ByteArray(0) - } - - bluetoothManager.sendCustomPptmCmd(opcode, payload) - updateStatus("发送自定义PPTM指令: 操作码=0x%04X".format(opcode)) - } catch (e: Exception) { - updateStatus("PPTM指令格式错误: ${e.message}") - } + 2 -> showStimSwitchDialog() + 3 -> showPowerLineFilterDialog() } } .setNegativeButton("取消", null) @@ -1102,9 +1020,7 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real */ private fun sendQingXunStartCollection() { val options = arrayOf( - "立即开启", - "延迟开启(5秒后)", - "指定时间戳开启" + "立即开启" ) androidx.appcompat.app.AlertDialog.Builder(this) @@ -1115,17 +1031,6 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real bluetoothManager.startCollection(0L) // 立即开启 updateStatus("发送轻迅协议开启采集指令(立即),准备接收数据...") } - 1 -> { - val timestamp = System.currentTimeMillis() + 5000 // 5秒后 - bluetoothManager.startCollection(timestamp) - updateStatus("发送轻迅协议开启采集指令(5秒后),准备接收数据...") - } - 2 -> { - showTimestampInputDialog { timestamp -> - bluetoothManager.startCollection(timestamp) - updateStatus("发送轻迅协议开启采集指令(指定时间戳: $timestamp),准备接收数据...") - } - } } } .setNegativeButton("取消", null) @@ -1137,9 +1042,7 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real */ private fun sendQingXunStopCollection() { val options = arrayOf( - "立即停止", - "延迟停止(5秒后)", - "指定时间戳停止" + "立即停止" ) androidx.appcompat.app.AlertDialog.Builder(this) @@ -1150,17 +1053,6 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real bluetoothManager.stopCollection(0L) // 立即停止 updateStatus("发送轻迅协议停止采集指令(立即)") } - 1 -> { - val timestamp = System.currentTimeMillis() + 5000 // 5秒后 - bluetoothManager.stopCollection(timestamp) - updateStatus("发送轻迅协议停止采集指令(5秒后)") - } - 2 -> { - showTimestampInputDialog { timestamp -> - bluetoothManager.stopCollection(timestamp) - updateStatus("发送轻迅协议停止采集指令(指定时间戳: $timestamp)") - } - } } } .setNegativeButton("取消", null) @@ -1195,71 +1087,30 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real } /** - * 显示时间戳输入对话框 + * 显示电刺激开关对话框 */ - private fun showTimestampInputDialog(onConfirm: (Long) -> Unit) { - val input = android.widget.EditText(this) - input.hint = "输入时间戳(毫秒,0表示立即执行)" - input.setText("0") - - androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("输入时间戳") - .setView(input) - .setPositiveButton("确定") { _, _ -> - try { - val timestamp = input.text.toString().toLong() - onConfirm(timestamp) - } catch (e: NumberFormatException) { - updateStatus("时间戳格式错误,请输入数字") - } - } - .setNegativeButton("取消", null) - .show() - } - - /** - * 显示轻迅协议命令菜单 - */ - private fun showQingXunProtocolMenu() { - val options = arrayOf( - "查询设备信息", - "开启采集", - "停止采集", - "查询电量", - "设置采样率", - "设置增益", - "设置导联", - "工频滤波开关", - "查询状态", - "设备复位", - "查看协议统计" + private fun showStimSwitchDialog() { + val stimOptions = arrayOf( + "开启刺激A", + "开启刺激B", + "关闭电刺激" ) androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("轻迅协议V1.0.1命令") - .setItems(options) { _, which -> + .setTitle("电刺激开关") + .setItems(stimOptions) { _, which -> when (which) { 0 -> { - bluetoothManager.queryDeviceInfo() - updateStatus("发送查询设备信息指令") + bluetoothManager.stimSwitch(0, true) + updateStatus("发送电刺激开关指令: 刺激A 开启") } - 1 -> sendQingXunStartCollection() - 2 -> sendQingXunStopCollection() - 3 -> { - bluetoothManager.queryBattery() - updateStatus("发送查询电量指令") + 1 -> { + bluetoothManager.stimSwitch(1, true) + updateStatus("发送电刺激开关指令: 刺激B 开启") } - 4 -> showSampleRateDialog() - 5 -> showGainDialog() - 6 -> showLeadDialog() - 7 -> showPowerLineFilterDialog() - 8 -> { - bluetoothManager.queryStatus() - updateStatus("发送查询状态指令") - } - 9 -> { - bluetoothManager.resetDevice() - updateStatus("发送设备复位指令") + 2 -> { + bluetoothManager.stimSwitch(0, false) + updateStatus("发送电刺激开关指令: 关闭电刺激") } } } @@ -1268,154 +1119,19 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real } /** - * 显示采样率设置对话框 + * 显示调试状态对话框 */ - private fun showSampleRateDialog() { - val options = arrayOf( - "125 Hz", - "250 Hz", - "500 Hz", - "1000 Hz", - "2000 Hz", - "自定义" - ) + private fun showDebugStatus() { + val status = bluetoothManager.debugConnectionStatus() androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("设置采样率") - .setItems(options) { _, which -> - when (which) { - 0 -> bluetoothManager.setSampleRate(125) - 1 -> bluetoothManager.setSampleRate(250) - 2 -> bluetoothManager.setSampleRate(500) - 3 -> bluetoothManager.setSampleRate(1000) - 4 -> bluetoothManager.setSampleRate(2000) - 5 -> showCustomSampleRateDialog() - } - updateStatus("发送设置采样率指令") - } - .setNegativeButton("取消", null) + .setTitle("协议统计信息") + .setMessage(status) + .setPositiveButton("确定", null) .show() } - /** - * 显示自定义采样率对话框 - */ - private fun showCustomSampleRateDialog() { - val input = android.widget.EditText(this) - input.hint = "输入采样率 (Hz)" - input.setText("500") - - androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("自定义采样率") - .setView(input) - .setPositiveButton("确定") { _, _ -> - try { - val sampleRate = input.text.toString().toInt() - if (sampleRate > 0 && sampleRate <= 10000) { - bluetoothManager.setSampleRate(sampleRate) - updateStatus("发送设置采样率指令: ${sampleRate} Hz") - } else { - updateStatus("采样率范围错误,请输入1-10000之间的数字") - } - } catch (e: NumberFormatException) { - updateStatus("采样率格式错误,请输入数字") - } - } - .setNegativeButton("取消", null) - .show() - } - /** - * 显示增益设置对话框 - */ - private fun showGainDialog() { - val options = arrayOf( - "1x", - "2x", - "4x", - "8x", - "16x", - "32x", - "自定义" - ) - - androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("设置增益") - .setItems(options) { _, which -> - when (which) { - 0 -> bluetoothManager.setGain(1) - 1 -> bluetoothManager.setGain(2) - 2 -> bluetoothManager.setGain(4) - 3 -> bluetoothManager.setGain(8) - 4 -> bluetoothManager.setGain(16) - 5 -> bluetoothManager.setGain(32) - 6 -> showCustomGainDialog() - } - updateStatus("发送设置增益指令") - } - .setNegativeButton("取消", null) - .show() - } - - /** - * 显示自定义增益对话框 - */ - private fun showCustomGainDialog() { - val input = android.widget.EditText(this) - input.hint = "输入增益倍数" - input.setText("1") - - androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("自定义增益") - .setView(input) - .setPositiveButton("确定") { _, _ -> - try { - val gain = input.text.toString().toInt() - if (gain > 0 && gain <= 100) { - bluetoothManager.setGain(gain) - updateStatus("发送设置增益指令: ${gain}x") - } else { - updateStatus("增益范围错误,请输入1-100之间的数字") - } - } catch (e: NumberFormatException) { - updateStatus("增益格式错误,请输入数字") - } - } - .setNegativeButton("取消", null) - .show() - } - - /** - * 显示导联设置对话框 - */ - private fun showLeadDialog() { - val options = arrayOf( - "I导联", - "II导联", - "III导联", - "aVR导联", - "aVL导联", - "aVF导联", - "V1导联", - "V2导联", - "V3导联", - "V4导联", - "V5导联", - "V6导联" - ) - - androidx.appcompat.app.AlertDialog.Builder(this) - .setTitle("设置导联") - .setItems(options) { _, which -> - val lead = which + 1 // 导联编号从1开始 - bluetoothManager.setLead(lead) - updateStatus("发送设置导联指令: ${options[which]}") - } - .setNegativeButton("取消", null) - .show() - } - - private fun clearAllData() { // 清空动态图表数据 dynamicChartManager.clearAllCharts() @@ -1426,16 +1142,6 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real updateStatus("已清空所有数据") } - /** - * 测试图表显示功能 - */ - - /** - * 显示调试状态对话框 - */ - - - private fun startDataMonitoring() { if (!isDataMonitoringEnabled) { isDataMonitoringEnabled = true @@ -1572,18 +1278,6 @@ class MainActivity : AppCompatActivity(), NativeMethodCallback, DataManager.Real }.start() } - - /** - * 导出设备信息 - */ - - /** - * 导出节律视图数据 - */ - - /** - * 导出波形视图数据 - */ private fun exportWaveformData(data: List, stats: Map) { Thread { try { diff --git a/app/src/main/java/com/example/cmake_project_test/NativeMethodCallback.kt b/app/src/main/java/com/example/cmake_project_test/NativeMethodCallback.kt deleted file mode 100644 index 9c3c5fc..0000000 --- a/app/src/main/java/com/example/cmake_project_test/NativeMethodCallback.kt +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.cmake_project_test - -import type.SensorData - -/** - * 原生方法回调接口 - * 用于DataManager调用MainActivity中的原生方法 - */ -interface NativeMethodCallback { - fun createStreamParser(): Long - fun destroyStreamParser(handle: Long) - fun streamParserAppend(handle: Long, chunk: ByteArray) - fun streamParserDrainPackets(handle: Long): List? -} diff --git a/app/src/main/java/com/example/cmake_project_test/PPTMCommandEncoder.kt b/app/src/main/java/com/example/cmake_project_test/PPTMCommandEncoder.kt deleted file mode 100644 index f8bb0ab..0000000 --- a/app/src/main/java/com/example/cmake_project_test/PPTMCommandEncoder.kt +++ /dev/null @@ -1,157 +0,0 @@ -package com.example.cmake_project_test - -import java.nio.ByteBuffer -import java.nio.ByteOrder - -/** - * PPTM设备命令编码器 - * 负责编码PPTM设备的命令数据包,包含CRC16校验 - */ -class PPTMCommandEncoder { - - companion object { - private const val TAG = "PPTMCommandEncoder" - private const val MAX_PACKET_SIZE = 244 - - // PPTM协议操作码 - const val OPCODE_START_SAMPLE = 0x0001 - const val OPCODE_STOP_SAMPLE = 0x0001 - - // PPTM协议常量 - const val COLLECTION_ON = 0x01 - const val COLLECTION_OFF = 0x00 - } - - /** - * CRC-16-CCITT-FALSE校验 - * @param source 数据源 - * @param offset 偏移 - * @param length 长度 - * @return CRC校验值 - */ - fun crc16(source: ByteArray, offset: Int, length: Int): Int { - var wCRCin = 0xFFFF - val wCPoly = 0x1021 - - for (i in offset until offset + length) { - for (j in 0..7) { - val bit = ((source[i].toInt() shr (7 - j)) and 1) == 1 - val c15 = ((wCRCin shr 15) and 1) == 1 - wCRCin = wCRCin shl 1 - if (c15 xor bit) { - wCRCin = wCRCin xor wCPoly - } - } - } - return wCRCin and 0xFFFF - } - - /** - * 编码命令数据 - * @param opcode 操作码 - * @param payload 负载数据 - * @param payloadLen 负载长度 - * @return 编码后的完整数据包 - */ - fun encode(opcode: Short, payload: ByteArray, payloadLen: Short): ByteArray { - val buf = ByteBuffer.allocate(MAX_PACKET_SIZE) - buf.order(ByteOrder.LITTLE_ENDIAN) - - // 写入操作码 - buf.putShort(opcode) - - // 写入负载长度 - buf.putShort(payloadLen) - - // 写入负载数据 - buf.put(payload) - - // 计算CRC16校验 - val calcCrcDataLen = buf.position() - val crc = crc16(buf.array(), 0, calcCrcDataLen) - buf.putShort(crc.toShort()) - - // 获取完整数据包 - val allDataLen = buf.position() - val dst = ByteArray(allDataLen) - - buf.flip() - buf.get(dst, 0, allDataLen) - - return dst - } - - /** - * 创建PPTM开始采样命令 - * @return 编码后的命令 - */ - fun createPptmStartSampleCmd(): ByteArray { - val payload = byteArrayOf( - COLLECTION_ON.toByte(), 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ) - return encode(OPCODE_START_SAMPLE.toShort(), payload, payload.size.toShort()) - } - - /** - * 创建PPTM停止采样命令 - * @return 编码后的命令 - */ - fun createPptmStopSampleCmd(): ByteArray { - val payload = byteArrayOf( - COLLECTION_OFF.toByte(), 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - ) - return encode(OPCODE_STOP_SAMPLE.toShort(), payload, payload.size.toShort()) - } - - /** - * 创建自定义PPTM命令 - * @param opcode 操作码 - * @param payload 负载数据 - * @return 编码后的命令 - */ - fun createCustomPptmCmd(opcode: Short, payload: ByteArray): ByteArray { - return encode(opcode, payload, payload.size.toShort()) - } - - /** - * 验证数据包CRC16校验 - * @param packet 完整数据包 - * @return 校验是否通过 - */ - fun verifyCrc16(packet: ByteArray): Boolean { - if (packet.size < 6) return false // 至少需要操作码(2) + 长度(2) + CRC(2) - - val dataLen = packet.size - 2 // 减去CRC16的2字节 - val calculatedCrc = crc16(packet, 0, dataLen) - val packetCrc = ((packet[packet.size - 1].toInt() and 0xFF) shl 8) or - (packet[packet.size - 2].toInt() and 0xFF) - - return calculatedCrc == packetCrc - } - - /** - * 解析PPTM数据包 - * @param packet 完整数据包 - * @return 解析结果 (操作码, 负载数据) 或 null - */ - fun parsePacket(packet: ByteArray): Pair? { - if (!verifyCrc16(packet)) { - return null - } - - if (packet.size < 6) return null - - val buf = ByteBuffer.wrap(packet) - buf.order(ByteOrder.LITTLE_ENDIAN) - - val opcode = buf.short - val payloadLen = buf.short - - if (packet.size < 4 + payloadLen + 2) return null // 操作码(2) + 长度(2) + 负载 + CRC(2) - - val payload = ByteArray(payloadLen.toInt()) - buf.get(payload) - - return Pair(opcode, payload) - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/ProducerConsumerChartView.kt b/app/src/main/java/com/example/cmake_project_test/ProducerConsumerChartView.kt deleted file mode 100644 index 2630a6b..0000000 --- a/app/src/main/java/com/example/cmake_project_test/ProducerConsumerChartView.kt +++ /dev/null @@ -1,484 +0,0 @@ -package com.example.cmake_project_test - -import android.content.Context -import android.graphics.* -import android.util.AttributeSet -import android.util.Log -import android.view.MotionEvent -import android.view.ScaleGestureDetector -import android.view.View -import java.util.concurrent.* -import java.util.concurrent.atomic.AtomicBoolean -import kotlin.math.* - -/** - * 真正的生产者-消费者模式图表视图 - * - * 关键设计特点: - * 1. 生产者-消费者模式:蓝牙回调生产数据,定时器消费数据 - * 2. 批量处理:减少频繁的UI更新,提高性能 - * 3. 自动滚动:数据超出屏幕宽度时自动滚动显示最新数据 - * 4. 多通道支持:每个通道独立的数据列表和绘制路径 - * 5. 内存控制:自动清理旧数据,防止内存溢出 - */ -class ProducerConsumerChartView @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null, - defStyleAttr: Int = 0 -) : View(context, attrs, defStyleAttr) { - - // ==================== 生产者-消费者模式核心 ==================== - - // 生产者:蓝牙数据回调线程 - private val dataQueue = LinkedBlockingQueue>() - private val multiChannelDataQueue = LinkedBlockingQueue>>() - - // 消费者:定时器线程 - private val displayExecutor = ScheduledThreadPoolExecutor(1) { r -> - Thread(r, "ChartDisplayThread").apply { isDaemon = true } - } - private var displayTask: ScheduledFuture<*>? = null - - // 消费者控制 - private val isConsuming = AtomicBoolean(false) - // 修复 'val' cannot be reassigned 错误 - // 将 val 改为 var - private var displayIntervalMs = 16L // 60fps = 16ms间隔 - - // ==================== 数据缓冲区 ==================== - - // 单通道数据缓冲区 - private val dataBuffer = mutableListOf() - private val maxBufferSize = 2000 - - // 多通道数据缓冲区 - private val multiChannelBuffer = mutableListOf>() - private var isMultiChannelMode = false - private val channelColors = listOf(Color.RED, Color.BLUE, Color.GREEN, Color.YELLOW) - - // ==================== 显示控制 ==================== - - private var lastDisplayTime = 0L - private var pendingDataCount = 0 - private var totalDataProduced = 0L - private var totalDataConsumed = 0L - - // ==================== 图表配置 ==================== - - private var chartTitle = "通道" - private var channelIndex = 0 - private var deviceType = "未知设备" - private var sampleRate = 250f - private var timeWindow = 4f - private var maxDataPoints = 1000 - - // ==================== 绘制相关 ==================== - - private val paint = Paint().apply { - isAntiAlias = true - strokeWidth = 2f - style = Paint.Style.STROKE - } - - private val textPaint = Paint().apply { - isAntiAlias = true - textSize = 32f - color = Color.WHITE - } - - private val backgroundPaint = Paint().apply { - color = Color.BLACK - style = Paint.Style.FILL - } - - private val gridPaint = Paint().apply { - color = Color.GRAY - strokeWidth = 1f - alpha = 100 - } - - // 数据范围 - private var minValue = -1000f - private var maxValue = 1000f - private var dataRange = maxValue - minValue - - // ==================== 交互控制 ==================== - - private var scaleFactor = 1.0f - private var translateX = 0f - private var translateY = 0f - private var viewportStart = 0f - private var viewportEnd = 1.0f - private var isDragging = false - private var lastTouchX = 0f - private var lastTouchY = 0f - - private val scaleGestureDetector = ScaleGestureDetector(context, ScaleListener()) - - // ==================== 初始化 ==================== - - init { - Log.d("ProducerConsumerChart", "初始化生产者-消费者图表视图") - startConsumer() - } - - // ==================== 生产者-消费者模式实现 ==================== - - /** - * 启动消费者线程(定时器) - */ - private fun startConsumer() { - if (isConsuming.get()) { - Log.w("ProducerConsumerChart", "消费者已在运行") - return - } - - isConsuming.set(true) - displayTask = displayExecutor.scheduleAtFixedRate({ - try { - consumeData() - } catch (e: Exception) { - Log.e("ProducerConsumerChart", "消费者异常: ${e.message}", e) - } - }, 0, displayIntervalMs, TimeUnit.MILLISECONDS) - - Log.d("ProducerConsumerChart", "消费者线程已启动,刷新间隔: ${displayIntervalMs}ms") - } - - /** - * 停止消费者线程 - */ - private fun stopConsumer() { - isConsuming.set(false) - displayTask?.cancel(false) - displayTask = null - Log.d("ProducerConsumerChart", "消费者线程已停止") - } - - /** - * 生产者:接收蓝牙数据 - */ - fun produceData(newData: List) { - if (newData.isEmpty()) return - - // 生产者:将数据放入队列 - val success = dataQueue.offer(newData) - if (success) { - totalDataProduced += newData.size - Log.d("ProducerConsumerChart", "生产者:数据已入队 ${newData.size}个点,队列大小: ${dataQueue.size}") - } else { - Log.w("ProducerConsumerChart", "生产者:队列已满,丢弃数据 ${newData.size}个点") - } - } - - /** - * 生产者:接收多通道数据 - */ - fun produceMultiChannelData(channelData: List>) { - if (channelData.isEmpty()) return - - // 生产者:将数据放入队列 - val success = multiChannelDataQueue.offer(channelData) - if (success) { - totalDataProduced += channelData.sumOf { it.size } - Log.d("ProducerConsumerChart", "生产者:多通道数据已入队 ${channelData.size}个通道,队列大小: ${multiChannelDataQueue.size}") - } else { - Log.w("ProducerConsumerChart", "生产者:多通道队列已满,丢弃数据") - } - } - - /** - * 消费者:定时消费数据并更新显示 - */ - private fun consumeData() { - val currentTime = System.currentTimeMillis() - var hasNewData = false - - // 批量消费单通道数据 - val singleChannelBatch = mutableListOf>() - dataQueue.drainTo(singleChannelBatch, 10) // 每次最多消费10个数据包 - - if (singleChannelBatch.isNotEmpty()) { - isMultiChannelMode = false - for (data in singleChannelBatch) { - dataBuffer.addAll(data) - totalDataConsumed += data.size - hasNewData = true - } - - // 控制缓冲区大小 - if (dataBuffer.size > maxBufferSize) { - val excess = dataBuffer.size - maxBufferSize - repeat(excess) { - if (dataBuffer.isNotEmpty()) { - dataBuffer.removeAt(0) - } - } - Log.d("ProducerConsumerChart", "消费者:清理了 $excess 个旧数据点") - } - } - - // 批量消费多通道数据 - val multiChannelBatch = mutableListOf>>() - multiChannelDataQueue.drainTo(multiChannelBatch, 5) // 每次最多消费5个多通道数据包 - - if (multiChannelBatch.isNotEmpty()) { - isMultiChannelMode = true - for (channelData in multiChannelBatch) { - // 确保多通道缓冲区有足够的通道 - while (multiChannelBuffer.size < channelData.size) { - multiChannelBuffer.add(mutableListOf()) - } - - // 添加数据到各通道 - channelData.forEachIndexed { index, data -> - if (index < multiChannelBuffer.size) { - multiChannelBuffer[index].addAll(data) - totalDataConsumed += data.size - hasNewData = true - } - } - } - - // 控制各通道缓冲区大小 - multiChannelBuffer.forEach { buffer -> - if (buffer.size > maxBufferSize) { - val excess = buffer.size - maxBufferSize - repeat(excess) { - if (buffer.isNotEmpty()) { - buffer.removeAt(0) - } - } - } - } - } - - // 如果有新数据,触发UI更新 - if (hasNewData) { - postInvalidate() // 在主线程更新UI - Log.d("ProducerConsumerChart", "消费者:批量处理完成,单通道队列: ${dataQueue.size}, 多通道队列: ${multiChannelDataQueue.size}") - } - - // 定期打印统计信息 - if (currentTime - lastDisplayTime > 5000) { - Log.d("ProducerConsumerChart", "统计 - 生产: $totalDataProduced, 消费: $totalDataConsumed, 队列: ${dataQueue.size + multiChannelDataQueue.size}") - lastDisplayTime = currentTime - } - } - - // ==================== 图表配置 ==================== - - fun setChartConfig( - title: String, - channelIdx: Int, - device: String, - maxPoints: Int, - sampleRateHz: Float, - timeWindowSec: Float - ) { - chartTitle = title - channelIndex = channelIdx - deviceType = device - maxDataPoints = maxPoints - sampleRate = sampleRateHz - timeWindow = timeWindowSec - - Log.d("ProducerConsumerChart", "图表配置: $title, 设备: $device, 采样率: ${sampleRateHz}Hz") - } - - // ==================== 绘制方法 ==================== - - override fun onDraw(canvas: Canvas) { - super.onDraw(canvas) - - val width = width.toFloat() - val height = height.toFloat() - - // 绘制背景 - canvas.drawRect(0f, 0f, width, height, backgroundPaint) - - // 绘制网格 - drawGrid(canvas, width, height) - - // 绘制数据 - if (isMultiChannelMode) { - drawMultiChannelData(canvas, width, height) - } else { - drawSingleChannelData(canvas, width, height) - } - - // 绘制标题和统计信息 - drawInfo(canvas, width, height) - } - - private fun drawGrid(canvas: Canvas, width: Float, height: Float) { - val gridSpacing = 50f - - // 垂直线 - var x = 0f - while (x <= width) { - canvas.drawLine(x, 0f, x, height, gridPaint) - x += gridSpacing - } - - // 水平线 - var y = 0f - while (y <= height) { - canvas.drawLine(0f, y, width, y, gridPaint) - y += gridSpacing - } - } - - private fun drawSingleChannelData(canvas: Canvas, width: Float, height: Float) { - if (dataBuffer.isEmpty()) return - - val path = Path() - val dataCount = dataBuffer.size - val stepX = width / maxOf(1, dataCount - 1) - - // 计算Y轴缩放 - val centerY = height / 2 - val scaleY = height / dataRange - - // 绘制数据线 - paint.color = Color.CYAN - paint.strokeWidth = 2f - - var isFirstPoint = true - dataBuffer.forEachIndexed { index, value -> - val x = index * stepX - val y = centerY - (value - (minValue + maxValue) / 2) * scaleY - - if (isFirstPoint) { - path.moveTo(x, y) - isFirstPoint = false - } else { - path.lineTo(x, y) - } - } - - canvas.drawPath(path, paint) - } - - private fun drawMultiChannelData(canvas: Canvas, width: Float, height: Float) { - if (multiChannelBuffer.isEmpty()) return - - val channelHeight = height / multiChannelBuffer.size - - multiChannelBuffer.forEachIndexed { channelIndex, channelData -> - if (channelData.isEmpty()) return@forEachIndexed - - val path = Path() - val dataCount = channelData.size - val stepX = width / maxOf(1, dataCount - 1) - - // 计算Y轴缩放 - val centerY = channelHeight * (channelIndex + 0.5f) - val scaleY = channelHeight / dataRange - - // 绘制数据线 - paint.color = channelColors[channelIndex % channelColors.size] - paint.strokeWidth = 2f - - var isFirstPoint = true - channelData.forEachIndexed { index, value -> - val x = index * stepX - val y = centerY - (value - (minValue + maxValue) / 2) * scaleY - - if (isFirstPoint) { - path.moveTo(x, y) - isFirstPoint = false - } else { - path.lineTo(x, y) - } - } - - canvas.drawPath(path, paint) - } - } - - private fun drawInfo(canvas: Canvas, width: Float, height: Float) { - val info = buildString { - appendLine("$chartTitle (通道$channelIndex)") - appendLine("设备: $deviceType") - appendLine("采样率: ${sampleRate}Hz") - appendLine("数据点: ${if (isMultiChannelMode) multiChannelBuffer.sumOf { it.size } else dataBuffer.size}") - appendLine("队列: ${dataQueue.size + multiChannelDataQueue.size}") - appendLine("生产: $totalDataProduced, 消费: $totalDataConsumed") - } - - val lines = info.trim().split("\n") - var y = 40f - lines.forEach { line -> - canvas.drawText(line, 20f, y, textPaint) - y += 35f - } - } - - // ==================== 交互处理 ==================== - - override fun onTouchEvent(event: MotionEvent): Boolean { - scaleGestureDetector.onTouchEvent(event) - - when (event.action) { - MotionEvent.ACTION_DOWN -> { - isDragging = true - lastTouchX = event.x - lastTouchY = event.y - } - MotionEvent.ACTION_MOVE -> { - if (isDragging) { - val deltaX = event.x - lastTouchX - val deltaY = event.y - lastTouchY - - translateX += deltaX - translateY += deltaY - - lastTouchX = event.x - lastTouchY = event.y - - invalidate() - } - } - MotionEvent.ACTION_UP -> { - isDragging = false - } - } - - return true - } - - private inner class ScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener() { - override fun onScale(detector: ScaleGestureDetector): Boolean { - scaleFactor *= detector.scaleFactor - scaleFactor = scaleFactor.coerceIn(0.1f, 10.0f) - invalidate() - return true - } - } - - // ==================== 生命周期管理 ==================== - - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - stopConsumer() - displayExecutor.shutdown() - Log.d("ProducerConsumerChart", "视图已销毁,消费者线程已停止") - } - - // ==================== 公共接口 ==================== - - fun setDisplayRefreshRate(frequencyHz: Int) { - val newInterval = 1000L / frequencyHz - if (newInterval != displayIntervalMs) { - stopConsumer() - displayIntervalMs = newInterval - startConsumer() - Log.d("ProducerConsumerChart", "显示刷新频率已调整为: ${frequencyHz}Hz (${displayIntervalMs}ms间隔)") - } - } - - fun getQueueStatus(): String { - return "单通道队列: ${dataQueue.size}, 多通道队列: ${multiChannelDataQueue.size}, 生产: $totalDataProduced, 消费: $totalDataConsumed" - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/SignalProcessingExample.kt b/app/src/main/java/com/example/cmake_project_test/SignalProcessingExample.kt deleted file mode 100644 index 7552ce5..0000000 --- a/app/src/main/java/com/example/cmake_project_test/SignalProcessingExample.kt +++ /dev/null @@ -1,206 +0,0 @@ -package com.example.cmake_project_test - -import android.util.Log -import type.SensorData - -/** - * 信号处理使用示例 - * 展示如何在现有流式数据读取代码结构中使用信号处理功能 - */ -class SignalProcessingExample(private val dataManager: DataManager) { - - companion object { - private const val TAG = "SignalProcessingExample" - } - - /** - * 示例1:实时信号质量监控 - * 在流式数据处理过程中实时监控信号质量 - */ - fun demonstrateRealTimeQualityMonitoring() { - Log.d(TAG, "=== 开始实时信号质量监控演示 ===") - - val packets = dataManager.getPacketBuffer() - if (packets.isEmpty()) { - Log.w(TAG, "没有数据包可供监控") - return - } - - // 监控前10个数据包的质量 - val packetsToMonitor = packets.take(10) - var totalQuality = 0.0f - var validPackets = 0 - - for ((index, packet) in packetsToMonitor.withIndex()) { - val quality = dataManager.calculateSignalQuality(packet) - if (quality > 0) { - totalQuality += quality - validPackets++ - Log.d(TAG, "数据包 $index (${packet.dataType}): 质量 = $quality") - } - } - - if (validPackets > 0) { - val averageQuality = totalQuality / validPackets - Log.d(TAG, "平均信号质量: $averageQuality") - - // 根据质量决定是否需要调整滤波器参数 - if (averageQuality < 0.5f) { - Log.w(TAG, "信号质量较低,建议检查传感器连接或调整滤波器参数") - } else if (averageQuality > 0.8f) { - Log.i(TAG, "信号质量良好") - } - } - } - - /** - * 示例2:按设备类型应用不同的信号处理策略 - */ - fun demonstrateDeviceSpecificProcessing() { - Log.d(TAG, "=== 开始设备特定信号处理演示 ===") - - val packets = dataManager.getPacketBuffer() - if (packets.isEmpty()) { - Log.w(TAG, "没有数据包可供处理") - return - } - - // 按设备类型分组 - val packetsByType = packets.groupBy { it.dataType } - - for ((dataType, typePackets) in packetsByType) { - Log.d(TAG, "处理 ${dataType.name} 类型数据,共 ${typePackets.size} 个数据包") - - when (dataType) { - SensorData.DataType.EEG -> { - Log.d(TAG, "应用EEG专用滤波器:带通滤波(1-40Hz) + 幅度归一化") - } - SensorData.DataType.ECG_2LEAD, SensorData.DataType.ECG_12LEAD -> { - Log.d(TAG, "应用ECG专用滤波器:高通(0.5Hz) + 低通(40Hz) + 陷波(50Hz)") - } - SensorData.DataType.PPG -> { - Log.d(TAG, "应用PPG专用滤波器:低通(8Hz) + 运动伪影去除") - } - else -> { - Log.d(TAG, "数据类型 ${dataType.name} 暂不支持专用处理") - } - } - } - } - - /** - * 示例3:批量信号处理 - * 对大量数据进行批量信号处理 - */ - fun demonstrateBatchProcessing() { - Log.d(TAG, "=== 开始批量信号处理演示 ===") - - val packets = dataManager.getPacketBuffer() - if (packets.isEmpty()) { - Log.w(TAG, "没有数据包可供批量处理") - return - } - - Log.d(TAG, "开始批量处理 ${packets.size} 个数据包...") - - // 记录处理开始时间 - val startTime = System.currentTimeMillis() - - // 应用信号处理 - val processedPackets = dataManager.applySignalProcessing(packets) - - // 记录处理结束时间 - val endTime = System.currentTimeMillis() - val processingTime = endTime - startTime - - Log.d(TAG, "批量处理完成!") - Log.d(TAG, "处理时间: ${processingTime}ms") - Log.d(TAG, "处理数据包: ${processedPackets.size} 个") - Log.d(TAG, "平均处理速度: ${packets.size * 1000.0 / processingTime} 包/秒") - - // 显示处理后的信号质量统计 - if (processedPackets.isNotEmpty()) { - val qualityScores = mutableListOf() - for (packet in processedPackets.take(20)) { // 只检查前20个包 - val quality = dataManager.calculateSignalQuality(packet) - if (quality > 0) { - qualityScores.add(quality) - } - } - - if (qualityScores.isNotEmpty()) { - val avgQuality = qualityScores.average() - val maxQuality = qualityScores.maxOrNull() ?: 0f - val minQuality = qualityScores.minOrNull() ?: 0f - - Log.d(TAG, "处理后信号质量统计:") - Log.d(TAG, " 平均质量: ${String.format("%.3f", avgQuality)}") - Log.d(TAG, " 最高质量: ${String.format("%.3f", maxQuality)}") - Log.d(TAG, " 最低质量: ${String.format("%.3f", minQuality)}") - } - } - } - - /** - * 示例4:自适应滤波器参数调整 - * 根据信号质量自动调整滤波器参数 - */ - fun demonstrateAdaptiveFilterAdjustment() { - Log.d(TAG, "=== 开始自适应滤波器参数调整演示 ===") - - val packets = dataManager.getPacketBuffer() - if (packets.isEmpty()) { - Log.w(TAG, "没有数据包可供自适应处理") - return - } - - // 获取第一个数据包进行质量评估 - val firstPacket = packets.first() - val initialQuality = dataManager.calculateSignalQuality(firstPacket) - - Log.d(TAG, "初始信号质量: $initialQuality") - - if (initialQuality < 0.3f) { - Log.w(TAG, "信号质量过低,建议检查硬件连接") - } else if (initialQuality < 0.6f) { - Log.i(TAG, "信号质量一般,可以尝试调整滤波器参数") - - // 这里可以添加自适应参数调整逻辑 - // 例如:根据噪声水平调整截止频率 - when (firstPacket.dataType) { - SensorData.DataType.EEG -> { - Log.d(TAG, "建议调整EEG滤波器:降低高通截止频率到0.5Hz,提高低通截止频率到50Hz") - } - SensorData.DataType.ECG_2LEAD, SensorData.DataType.ECG_12LEAD -> { - Log.d(TAG, "建议调整ECG滤波器:提高高通截止频率到1Hz,降低低通截止频率到30Hz") - } - SensorData.DataType.PPG -> { - Log.d(TAG, "建议调整PPG滤波器:降低低通截止频率到6Hz") - } - else -> { - Log.d(TAG, "该数据类型暂不支持自适应调整") - } - } - } else { - Log.i(TAG, "信号质量良好,当前滤波器参数合适") - } - } - - /** - * 运行所有演示 - */ - fun runAllDemonstrations() { - Log.d(TAG, "开始运行所有信号处理演示...") - - try { - demonstrateRealTimeQualityMonitoring() - demonstrateDeviceSpecificProcessing() - demonstrateBatchProcessing() - demonstrateAdaptiveFilterAdjustment() - - Log.d(TAG, "所有演示完成!") - } catch (e: Exception) { - Log.e(TAG, "演示过程中发生错误", e) - } - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/SignalProcessorExample.kt b/app/src/main/java/com/example/cmake_project_test/SignalProcessorExample.kt deleted file mode 100644 index bd13998..0000000 --- a/app/src/main/java/com/example/cmake_project_test/SignalProcessorExample.kt +++ /dev/null @@ -1,271 +0,0 @@ -package com.example.cmake_project_test - -import android.util.Log -import kotlin.math.PI -import kotlin.math.sin - -/** - * 信号处理使用示例类 - * 展示如何使用JNI信号处理功能 - */ -class SignalProcessorExample { - - private val signalProcessor = SignalProcessorJNI() - private val sampleRate = 1000.0 // 1kHz采样率 - - init { - // 初始化信号处理器 - if (!signalProcessor.createProcessor()) { - Log.e("SignalProcessorExample", "Failed to create signal processor") - } - } - - /** - * 生成测试信号:正弦波 + 噪声 - */ - fun generateTestSignal(frequency: Double, duration: Double, noiseLevel: Double = 0.1): FloatArray { - val numSamples = (sampleRate * duration).toInt() - val signal = FloatArray(numSamples) - - for (i in 0 until numSamples) { - val time = i / sampleRate - val sineWave = sin(2 * PI * frequency * time).toFloat() - val noise = (Math.random() * 2 - 1).toFloat() * noiseLevel - signal[i] = (sineWave + noise).toFloat() - } - - return signal - } - - /** - * 演示带通滤波 - */ - fun demonstrateBandpassFilter() { - Log.d("SignalProcessorExample", "=== 带通滤波演示 ===") - - // 生成包含多个频率的测试信号 - val signal = generateTestSignal(50.0, 1.0, 0.2) // 50Hz + 噪声 - - // 应用带通滤波 (40-60Hz) - val filteredSignal = signalProcessor.bandpassFilter(signal, sampleRate, 40.0, 60.0) - - if (filteredSignal != null) { - Log.d("SignalProcessorExample", "滤波成功!原始信号长度: ${signal.size}, 滤波后长度: ${filteredSignal.size}") - - // 计算信号质量 - val originalQuality = signalProcessor.calculateSignalQuality(signal) - val filteredQuality = signalProcessor.calculateSignalQuality(filteredSignal) - - Log.d("SignalProcessorExample", "原始信号质量: $originalQuality") - Log.d("SignalProcessorExample", "滤波后信号质量: $filteredQuality") - } else { - Log.e("SignalProcessorExample", "带通滤波失败") - } - } - - /** - * 演示低通滤波 - */ - fun demonstrateLowpassFilter() { - Log.d("SignalProcessorExample", "=== 低通滤波演示 ===") - - // 生成高频信号 - val signal = generateTestSignal(200.0, 1.0, 0.1) - - // 应用低通滤波 (100Hz截止) - val filteredSignal = signalProcessor.lowpassFilter(signal, sampleRate, 100.0) - - if (filteredSignal != null) { - Log.d("SignalProcessorExample", "低通滤波成功!") - - // 计算信号质量 - val originalQuality = signalProcessor.calculateSignalQuality(signal) - val filteredQuality = signalProcessor.calculateSignalQuality(filteredSignal) - - Log.d("SignalProcessorExample", "原始信号质量: $originalQuality") - Log.d("SignalProcessorExample", "滤波后信号质量: $filteredQuality") - } else { - Log.e("SignalProcessorExample", "低通滤波失败") - } - } - - /** - * 演示高通滤波 - */ - fun demonstrateHighpassFilter() { - Log.d("SignalProcessorExample", "=== 高通滤波演示 ===") - - // 生成包含低频和高频的信号 - val signal = generateTestSignal(10.0, 1.0, 0.1) // 10Hz低频信号 - - // 应用高通滤波 (50Hz截止) - val filteredSignal = signalProcessor.highpassFilter(signal, sampleRate, 50.0) - - if (filteredSignal != null) { - Log.d("SignalProcessorExample", "高通滤波成功!") - - // 计算信号质量 - val originalQuality = signalProcessor.calculateSignalQuality(signal) - val filteredQuality = signalProcessor.calculateSignalQuality(filteredSignal) - - Log.d("SignalProcessorExample", "原始信号质量: $originalQuality") - Log.d("SignalProcessorExample", "滤波后信号质量: $filteredQuality") - } else { - Log.e("SignalProcessorExample", "高通滤波失败") - } - } - - /** - * 演示陷波滤波(去除工频干扰) - */ - fun demonstrateNotchFilter() { - Log.d("SignalProcessorExample", "=== 陷波滤波演示 ===") - - // 生成包含工频干扰的信号 - val signal = generateTestSignal(50.0, 1.0, 0.3) // 50Hz工频 + 噪声 - - // 应用陷波滤波 (50Hz陷波) - val filteredSignal = signalProcessor.notchFilter(signal, sampleRate, 50.0, 30.0) - - if (filteredSignal != null) { - Log.d("SignalProcessorExample", "陷波滤波成功!") - - // 计算信号质量 - val originalQuality = signalProcessor.calculateSignalQuality(signal) - val filteredQuality = signalProcessor.calculateSignalQuality(filteredSignal) - - Log.d("SignalProcessorExample", "原始信号质量: $originalQuality") - Log.d("SignalProcessorExample", "滤波后信号质量: $filteredQuality") - } else { - Log.e("SignalProcessorExample", "陷波滤波失败") - } - } - - /** - * 演示ECG信号质量评估 - */ - fun demonstrateECGSQI() { - Log.d("SignalProcessorExample", "=== ECG信号质量评估演示 ===") - - // 生成模拟ECG信号 - val ecgSignal = generateTestSignal(1.0, 2.0, 0.05) // 1Hz心跳 + 低噪声 - - // 计算ECG信号质量指数 - val sqi = signalProcessor.calculateECGSQI(ecgSignal, sampleRate) - - Log.d("SignalProcessorExample", "ECG信号质量指数: $sqi") - - if (sqi > 0.7f) { - Log.d("SignalProcessorExample", "ECG信号质量良好") - } else if (sqi > 0.4f) { - Log.d("SignalProcessorExample", "ECG信号质量一般") - } else { - Log.d("SignalProcessorExample", "ECG信号质量较差") - } - } - - /** - * 演示信号特征提取 - */ - fun demonstrateFeatureExtraction() { - Log.d("SignalProcessorExample", "=== 信号特征提取演示 ===") - - // 生成测试信号 - val signal = generateTestSignal(100.0, 0.5, 0.15) - - // 提取特征 - val features = signalProcessor.extractFeatures(signal, sampleRate) - - if (features != null) { - Log.d("SignalProcessorExample", "特征提取成功!特征数量: ${features.size}") - - // 显示前几个特征值 - for (i in 0 until minOf(5, features.size)) { - Log.d("SignalProcessorExample", "特征 $i: ${features[i]}") - } - } else { - Log.e("SignalProcessorExample", "特征提取失败") - } - } - - /** - * 演示信号归一化 - */ - fun demonstrateNormalization() { - Log.d("SignalProcessorExample", "=== 信号归一化演示 ===") - - // 生成幅度较大的信号 - val signal = generateTestSignal(75.0, 0.5, 0.2) - - // 找到最大绝对值 - val maxAbs = signal.maxOfOrNull { kotlin.math.abs(it) } ?: 0f - Log.d("SignalProcessorExample", "归一化前最大绝对值: $maxAbs") - - // 归一化 - signalProcessor.normalizeAmplitude(signal) - - // 检查归一化结果 - val normalizedMaxAbs = signal.maxOfOrNull { kotlin.math.abs(it) } ?: 0f - Log.d("SignalProcessorExample", "归一化后最大绝对值: $normalizedMaxAbs") - - if (kotlin.math.abs(normalizedMaxAbs - 1.0f) < 0.01f) { - Log.d("SignalProcessorExample", "归一化成功!") - } else { - Log.e("SignalProcessorExample", "归一化失败") - } - } - - /** - * 演示相关性计算 - */ - fun demonstrateCorrelation() { - Log.d("SignalProcessorExample", "=== 相关性计算演示 ===") - - // 生成两个相关信号 - val signal1 = generateTestSignal(50.0, 1.0, 0.1) - val signal2 = generateTestSignal(50.0, 1.0, 0.1) // 相同频率 - - // 计算相关性 - val correlation = signalProcessor.calculateCorrelation(signal1, signal2) - - Log.d("SignalProcessorExample", "信号相关性: $correlation") - - if (correlation > 0.8f) { - Log.d("SignalProcessorExample", "信号高度相关") - } else if (correlation > 0.5f) { - Log.d("SignalProcessorExample", "信号中等相关") - } else { - Log.d("SignalProcessorExample", "信号相关性较低") - } - } - - /** - * 运行所有演示 - */ - fun runAllDemonstrations() { - Log.d("SignalProcessorExample", "开始运行所有信号处理演示...") - - try { - demonstrateBandpassFilter() - demonstrateLowpassFilter() - demonstrateHighpassFilter() - demonstrateNotchFilter() - demonstrateECGSQI() - demonstrateFeatureExtraction() - demonstrateNormalization() - demonstrateCorrelation() - - Log.d("SignalProcessorExample", "所有演示完成!") - } catch (e: Exception) { - Log.e("SignalProcessorExample", "演示过程中发生错误", e) - } - } - - /** - * 清理资源 - */ - fun cleanup() { - signalProcessor.destroyProcessor() - Log.d("SignalProcessorExample", "信号处理器已销毁") - } -} diff --git a/app/src/main/java/com/example/cmake_project_test/UiManager.kt b/app/src/main/java/com/example/cmake_project_test/UiManager.kt index 8baebd9..3f2667d 100644 --- a/app/src/main/java/com/example/cmake_project_test/UiManager.kt +++ b/app/src/main/java/com/example/cmake_project_test/UiManager.kt @@ -10,6 +10,77 @@ import java.util.concurrent.atomic.AtomicBoolean */ class UiManager { + companion object { + // UI更新相关 + const val UPDATE_INTERVAL = 200L // 优化:每200毫秒更新一次UI,减慢更新速度以便观察心电波形 + + // 显示限制相关 + const val MAX_DISPLAY_PACKETS = 5 // 最大显示数据包数量 + const val MAX_DETAIL_PACKETS = 3 // 最大详情数据包数量 + const val MAX_DISPLAY_CHANNELS = 4 // 最大显示通道数量 + const val MAX_12LEAD_CHANNELS = 6 // 12导联心电最大通道数量 + const val MAX_DISPLAY_SAMPLES = 750 // 最大显示采样点数量,调整为显示约3秒数据(基于250Hz采样率) + + // 设备类型名称映射 + fun getDeviceName(dataType: SensorData.DataType): String { + return when (dataType) { + SensorData.DataType.EEG -> "脑电设备" + SensorData.DataType.ECG_2LEAD -> "胸腹设备" + SensorData.DataType.PPG -> "血氧设备" + SensorData.DataType.ECG_12LEAD -> "12导联心电" + SensorData.DataType.STETHOSCOPE -> "数字听诊" + SensorData.DataType.SNORE -> "鼾声设备" + SensorData.DataType.RESPIRATION -> "呼吸/姿态" + SensorData.DataType.MIT_BIH -> "MIT-BIH" + else -> "未知设备" + } + } + + // 构建通道数据详情 + fun buildChannelDetails( + data: List, + maxPackets: Int = MAX_DETAIL_PACKETS, + maxChannels: Int = MAX_DISPLAY_CHANNELS, + maxSamples: Int = MAX_DISPLAY_SAMPLES + ): String { + if (data.isEmpty()) { + return "无通道数据" + } + + val details = mutableListOf() + + data.take(maxPackets).forEachIndexed { packetIndex, sensorData -> + if (sensorData.channelData.isNullOrEmpty()) { + details.add("数据包 ${packetIndex + 1}: 无通道数据") + return@forEachIndexed + } + + details.add("数据包 ${packetIndex + 1} (${getDeviceName(sensorData.dataType ?: SensorData.DataType.EEG)}):") + + sensorData.channelData.take(maxChannels).forEachIndexed { channelIndex, channel -> + if (channel.isNullOrEmpty()) { + details.add(" 通道 ${channelIndex + 1}: 空数据") + return@forEachIndexed + } + val sampleCount = minOf(maxSamples, channel.size) + val channelDataStr = channel.take(sampleCount).joinToString(", ") { "%.1f".format(it) } + details.add(" 通道 ${channelIndex + 1}: ${sampleCount}/${channel.size} 采样点") + details.add(" 示例: $channelDataStr${if (channel.size > sampleCount) "..." else ""}") + } + + if (sensorData.channelData.size > maxChannels) { + details.add(" ... 还有 ${sensorData.channelData.size - maxChannels} 个通道") + } + details.add("") + } + + if (data.size > maxPackets) { + details.add("... 还有 ${data.size - maxPackets} 个数据包") + } + return details.joinToString("\n") + } + } + private val uiUpdatePending = AtomicBoolean(false) private var lastUpdateTime = 0L @@ -21,7 +92,7 @@ class UiManager { updateCallback: () -> Unit ) { val currentTime = System.currentTimeMillis() - if (currentTime - lastUpdateTime >= Constants.UPDATE_INTERVAL && + if (currentTime - lastUpdateTime >= UPDATE_INTERVAL && uiUpdatePending.compareAndSet(false, true)) { lastUpdateTime = currentTime updateCallback() @@ -45,7 +116,7 @@ class UiManager { if (packetBuffer.isNotEmpty()) { // 获取设备类型信息 val deviceTypes = packetBuffer.mapNotNull { it.dataType }.distinct() - val deviceInfo = deviceTypes.joinToString(", ") { DeviceTypeHelper.getDeviceName(it) } + val deviceInfo = deviceTypes.joinToString(", ") { getDeviceName(it) } append("设备类型: $deviceInfo\n") } else { append("设备类型: 无\n") @@ -82,22 +153,22 @@ class UiManager { val metricsInfo = buildMetricsInfo(calculatedMetrics) // 只显示最新的一些数据包详情 - val recentPackets = packetBuffer.takeLast(Constants.MAX_DISPLAY_PACKETS) + val recentPackets = packetBuffer.takeLast(MAX_DISPLAY_PACKETS) val has12Lead = recentPackets.any { it.dataType == SensorData.DataType.ECG_12LEAD } val channelDetails = if (has12Lead) { - DeviceTypeHelper.buildChannelDetails( + buildChannelDetails( recentPackets, - maxPackets = Constants.MAX_DETAIL_PACKETS, - maxChannels = Constants.MAX_12LEAD_CHANNELS, - maxSamples = Constants.MAX_DISPLAY_SAMPLES + maxPackets = MAX_DETAIL_PACKETS, + maxChannels = MAX_12LEAD_CHANNELS, + maxSamples = MAX_DISPLAY_SAMPLES ) } else { - DeviceTypeHelper.buildChannelDetails( + buildChannelDetails( recentPackets, - maxPackets = Constants.MAX_DETAIL_PACKETS, - maxChannels = Constants.MAX_DISPLAY_CHANNELS, - maxSamples = Constants.MAX_DISPLAY_SAMPLES + maxPackets = MAX_DETAIL_PACKETS, + maxChannels = MAX_DISPLAY_CHANNELS, + maxSamples = MAX_DISPLAY_SAMPLES ) } @@ -133,7 +204,7 @@ class UiManager { val latestPacket = processedPackets.lastOrNull() if (latestPacket != null) { append("\n最新处理数据包:\n") - append("- 数据类型: ${DeviceTypeHelper.getDeviceName(latestPacket.getDataType())}\n") + append("- 数据类型: ${getDeviceName(latestPacket.getDataType())}\n") append("- 时间戳: ${latestPacket.getTimestamp()}\n") append("- 包序号: ${latestPacket.getPacketSn()}\n") diff --git a/app/轻迅蓝牙通信协议V1.0.1_ql.pdf b/app/轻迅蓝牙通信协议V1.0.1_ql.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ee967f1a07a9fd914a4373400f5ea35f093a6aaf GIT binary patch literal 394571 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%0AT!0IBBH{EsvbXk; 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

k)UR&xo-aRvKYFf`MpHMPMPZ|^rE1t0PzG) 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�mXh16Zo>6IwtCdtVFXa%K=6I4g{3pcvffr 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 i3J&B?7(e