/** * @file FluxProtocol.h * @brief 流量计通讯协议部分 * * 用于声明流量计参数计便携制氧机参数 * * @author wang xiang en * @date 2025-04-18 * @version 版本号 * @copyright 版权声明((C)2025, YUWELL MEDTECH Co.ltd) */ #ifndef _FLUX_PROTOCOL_H #define _FLUX_PROTOCOL_H #ifdef __cplusplus extern "C" { #endif #include #include #include #include #include #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/queue.h" #include "freertos/semphr.h" #include "freertos/event_groups.h" #include "ui.h" #include "FluxUart.h" /* 导出三种流量计体积数据 */ extern float Spirit3_Volume[4]; extern float Spirit6_Volume[6]; extern float YULite8_Volume[6]; /* 声明设备类型 */ typedef enum DeviceType{ Spirit3, Spirit6, YU_Lite8, }; /* 工作模式声明 */ typedef enum OperationMode { Normal,//正常模式,收到开始命令后开始进行累积计算,停止指令收到后停止积分 Timer,//计时模式,计算在设定时间内的累积值 Volume,//体积模式,体积到达后停止累积 }; /* 地址0x0001处的启停指令 */ typedef enum MeasureCommand { StartMeasure=1, StopMeasure=2, }; /** * @brief 声明流量数据结构体 * */ typedef struct FluxProtocol { float testVolume; uint16_t currentStage; uint16_t currentBPM; float nominalVolumeStage; float nominalVolumeBPM; float nominalVolumeMax; float nominalVolumeMin; enum DeviceType currentDevice; }; extern struct FluxProtocol fluxProtocol; /** * @brief 地址数据 Not Used * */ typedef struct FluxCommand { uint16_t addr; uint32_t PLC_ADDR; }; #ifdef __cplusplus } /*extern "C"*/ #endif #endif