#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