R1UWaterRS485/app/UWater_TemperatureCalculate...

74 lines
2.2 KiB
C
Raw 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.

#ifndef UWater_TEMPERATURE_CALCULATE_APP_H
#define UWater_TEMPERATURE_CALCULATE_APP_H
#include "UWater_gp22_app.h"
/************************************************宏定义相关**********************************/
#define START_CALIBREATE 0//开启校准单程时间
#define STOP_CALIBREATE 1//停止校准单程时间
#define NOT_ALLOW_CALIBREATE 2//空管下不允许校准单程时间
#define TOF_UP 0//up单程时间角标
#define TOF_DOWN 1//down单程时间角标
#define UP_AM_AVERAGE 2//up振幅均值角标
#define DOWN_AM_AVERAGE 3//down振幅均值角标
#define RTCC_TOF_CALIBERATE_TIME_OUT 180// 3分钟超时防护超时防护时间(活塞台子冲水+流量稳定)
#define TOF_COMPENSATION_COEFFICIENT (float)4 //单程时间差值补偿系数
/************************************************规约消息管理相关**********************************/
typedef struct
{
u8 tof_caliberate_msg; //单程时间补偿数据存储标志
} STRUCT_TEMP_INVERSE_MSG;
typedef enum
{
TofCaliberateMsg = 0, //单程时间补偿数据存储标志
/*对外消息总个数*/
Msg_TotalCount=1
} TempInverse_MsgTypeDef;
#define TEMP_INVERSE_MSG_TYPE_CNT Msg_TotalCount
typedef union
{
STRUCT_TEMP_INVERSE_MSG MsgStruct;
u8 MsgBuf[TEMP_INVERSE_MSG_TYPE_CNT];
} TEMP_IVVERSE_UNION_MSG;
#define TemperatureCalculateParameterTotal 4 //温度反算参数
typedef union
{
struct
{
u32 gp30_tof_up_filter_value_test;//检定数据
u32 gp30_tof_down_filter_value_test;//检定数据
u32 up_am_average;//up振幅均值角标
u32 down_am_average;//down振幅均值角标
}Temp_Inverse_Data;
u32 Temp_Inverse[TemperatureCalculateParameterTotal];
}Temp_Inverse_Data1;
//对外接口函数
void Tof_And_AM_Data_Collect(u8 i,u32 s_g_tof_am_pointer);//单程时间与振幅原始数据采集
void Gp30_Tof_Collect_and_Deal(void);//单程时间采集与处理
void Water_Meter_Temp_calculate(u32 time_dof_temp_float);//单程时间校准与温度计算
u8 TempInverseCheckMsgApp(TempInverse_MsgTypeDef msgType);//查询反算标志
u8 TempInverseClearMsgApp(TempInverse_MsgTypeDef msgType);//清零反算标志
u32 GetTemperatureCalculateParameter(u8 flag);//单程时间获取
void GP30_tof_buchang_filter(u8 flag);//获取单程时间校准命令
void FanSuan_Caliberate_Timeout(void);//反算校准超时查询和处理函数
extern const float sound_speed_in_water[101];
#endif