#include "headfile.h" // 辅助函数:打印多通道数据 void print_multi_channel(const std::vector>& channels) { for (size_t ch = 0; ch < channels.size(); ++ch) { std::cout << " Channel " << ch << ": "; for (size_t i = 0; i < channels[ch].size(); ++i) { std::cout << std::fixed << std::setprecision(2) << channels[ch][i] << " "; } std::cout << std::endl; } } // 辅助函数:打印通道数据 void print_channel_data(const std::variant, std::vector>>& channel_data) { if (std::holds_alternative>(channel_data)) { const auto& single_channel = std::get>(channel_data); } else if (std::holds_alternative>>(channel_data)) { const auto& multi_channel = std::get>>(channel_data); print_multi_channel(multi_channel); } } void test_try() { try { // 1. 读取原始二进制文件 std::vector file_content = FileManager::readBinaryFile("C:/Users/29096/Documents/WeChat Files/wxid_sh93l5lycr8b22/FileStorage/File/2025-07/ecg_data_raw.dat"); Mapper mapper; // 2. 解析设备数据包 - 需要实现此函数 std::vector all_data = parse_device_data(file_content); save_to_csv(all_data, "channel_data_transered_.csv"); // 3. 创建信号处理器实例 /* SignalProcessor processor; // 4. 遍历所有数据包 for (auto& data : all_data) { // 打印原始数据信息 // print_parsed_result(data); // 需要实现此函数 std::cout << "Before mapping (ECG-12):" << std::endl; std::cout << "Packet SN: " << data.packet_sn << ", Data Type: " << static_cast(data.data_type) << std::endl;*/ // print_channel_data(data.channel_data); /* SensorData mapped_ecg_12lead = mapper.DataMapper(data); SensorData processed_ecg_12_lead = processor.preprocess_signals(mapped_ecg_12lead); std::cout << "After mapping (ECG-12):" << std::endl; std::cout << "Packet SN: " << mapped_ecg_12lead.packet_sn << ", Data Type: " << static_cast(mapped_ecg_12lead.data_type) << std::endl; print_channel_data(mapped_ecg_12lead.channel_data); std::cout << "After processed (ECG-12):" << std::endl; std::cout << "Packet SN: " << mapped_ecg_12lead.packet_sn << ", Data Type: " << static_cast(mapped_ecg_12lead.data_type) << std::endl; print_channel_data(processed_ecg_12_lead.channel_data); }*/ }catch (const std::exception& e) { std::cerr << "解析错误: " << e.what() << std::endl; std::cout << "Press Enter to exit..." << std::endl; std::cin.get(); return ; } std::cout << "Press Enter to exit..." << std::endl; std::cin.get(); } int main() { SetConsoleOutputCP(CP_UTF8); test_try(); return 0; }