2025-07-28 11:56:50 +08:00
|
|
|
#ifndef _TYPES_h_
|
|
|
|
|
#define _TYPES_h_
|
|
|
|
|
|
|
|
|
|
#include "headfile.h"
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
// 设备类型枚举
|
|
|
|
|
enum class DataType {
|
|
|
|
|
EEG, // 脑电
|
|
|
|
|
ECG_2LEAD, // 胸腹心电/肌电
|
|
|
|
|
ECG_12LEAD, // 12导联心电
|
|
|
|
|
PPG, // 血氧
|
|
|
|
|
RESPIRATION, // 呼吸/姿态
|
|
|
|
|
SNORE, // 鼾声
|
2025-08-14 11:16:24 +08:00
|
|
|
STETHOSCOPE, // 数字听诊
|
|
|
|
|
MIT_BIH // 添加MIT-BIH心律失常数据集类型
|
2025-07-28 11:56:50 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 导联脱落状态
|
|
|
|
|
struct LeadOffStatus {
|
|
|
|
|
uint8_t status[2]; // 导联状态字节
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 统一传感器数据结构
|
|
|
|
|
struct SensorData {
|
|
|
|
|
DataType data_type;
|
|
|
|
|
uint16_t packet_sn; // 数据包序列号
|
|
|
|
|
LeadOffStatus lead_status; // 导联状态
|
|
|
|
|
int64_t timestamp; // 系统时间戳(微秒)
|
|
|
|
|
float sqi; //信号质量
|
|
|
|
|
|
|
|
|
|
// 通道数据
|
|
|
|
|
std::variant<
|
|
|
|
|
std::vector<float>, // 单通道数据
|
|
|
|
|
std::vector<std::vector<float>> // 多通道数据
|
|
|
|
|
> channel_data;
|
|
|
|
|
std::vector<uint8_t> raw_data; // 原始二进制数据
|
|
|
|
|
// 附加数据
|
|
|
|
|
struct {
|
|
|
|
|
uint16_t movement; // 运动强度 (呼吸设备)
|
|
|
|
|
uint8_t posture; // 姿态 (呼吸设备)
|
|
|
|
|
uint8_t ambient_light; // 环境光 (呼吸设备)
|
|
|
|
|
uint8_t hr; // 心率 (血氧)
|
|
|
|
|
uint8_t spo2; // 血氧饱和度 (血氧)
|
|
|
|
|
float temperature; // 温度 (修正为浮点类型)
|
|
|
|
|
uint8_t gpio_state; // GPIO状态 (12导联心电)
|
|
|
|
|
} additional;
|
|
|
|
|
};
|
|
|
|
|
#endif
|