FluxDC/components/FluxProtocol/FluxProtocol.h

98 lines
1.7 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @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 <stdint.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#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