medical_SDK/include/types.h

49 lines
1.5 KiB
C++

#ifndef _TYPES_h_
#define _TYPES_h_
#include "headfile.h"
#pragma once
// 设备类型枚举
enum class DataType {
EEG, // 脑电
ECG_2LEAD, // 胸腹心电/肌电
ECG_12LEAD, // 12导联心电
PPG, // 血氧
RESPIRATION, // 呼吸/姿态
SNORE, // 鼾声
STETHOSCOPE, // 数字听诊
MIT_BIH // 添加MIT-BIH心律失常数据集类型
};
// 导联脱落状态
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