98 lines
1.7 KiB
C
98 lines
1.7 KiB
C
/**
|
||
* @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
|
||
|
||
|
||
|