R1UWaterRS485/app/UWater_TemperatureCalculate...

74 lines
2.2 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
#ifndef UWater_TEMPERATURE_CALCULATE_APP_H
#define UWater_TEMPERATURE_CALCULATE_APP_H
#include "UWater_gp22_app.h"
/************************************************<2A><EFBFBD><EAB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**********************************/
#define START_CALIBREATE 0//<2F><><EFBFBD><EFBFBD>У׼<D0A3><D7BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define STOP_CALIBREATE 1//ֹͣУ׼<D0A3><D7BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define NOT_ALLOW_CALIBREATE 2//<2F>չ<EFBFBD><D5B9>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>У׼<D0A3><D7BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
#define TOF_UP 0//up<75><70><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>DZ<EFBFBD>
#define TOF_DOWN 1//down<77><6E><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>DZ<EFBFBD>
#define UP_AM_AVERAGE 2//up<75><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>DZ<EFBFBD>
#define DOWN_AM_AVERAGE 3//down<77><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>DZ<EFBFBD>
#define RTCC_TOF_CALIBERATE_TIME_OUT 180// 3<><33><EFBFBD>ӳ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬(<28><><EFBFBD><EFBFBD>̨<EFBFBD>ӳ<EFBFBD>ˮ+<2B><><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>)
#define TOF_COMPENSATION_COEFFICIENT (float)4 //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
/************************************************<2A><>Լ<EFBFBD><D4BC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**********************************/
typedef struct
{
u8 tof_caliberate_msg; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2B9><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>־
} STRUCT_TEMP_INVERSE_MSG;
typedef enum
{
TofCaliberateMsg = 0, //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B2B9><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2>־
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>*/
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 //<2F>¶ȷ<C2B6><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef union
{
struct
{
u32 gp30_tof_up_filter_value_test;//<2F><EFBFBD><ECB6A8><EFBFBD><EFBFBD>
u32 gp30_tof_down_filter_value_test;//<2F><EFBFBD><ECB6A8><EFBFBD><EFBFBD>
u32 up_am_average;//up<75><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>DZ<EFBFBD>
u32 down_am_average;//down<77><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>DZ<EFBFBD>
}Temp_Inverse_Data;
u32 Temp_Inverse[TemperatureCalculateParameterTotal];
}Temp_Inverse_Data1;
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿں<D3BF><DABA><EFBFBD>
void Tof_And_AM_Data_Collect(u8 i,u32 s_g_tof_am_pointer);//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC><EFBFBD>ݲɼ<DDB2>
void Gp30_Tof_Collect_and_Deal(void);//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EBB4A6>
void Water_Meter_Temp_calculate(u32 time_dof_temp_float);//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>У׼<D0A3><D7BC><EFBFBD>¶ȼ<C2B6><C8BC><EFBFBD>
u8 TempInverseCheckMsgApp(TempInverse_MsgTypeDef msgType);//<2F><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
u8 TempInverseClearMsgApp(TempInverse_MsgTypeDef msgType);//<2F><><EFBFBD><EFBFBD><E3B7B4><EFBFBD><EFBFBD>־
u32 GetTemperatureCalculateParameter(u8 flag);//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ȡ
void GP30_tof_buchang_filter(u8 flag);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>У׼<D0A3><D7BC><EFBFBD><EFBFBD>
void FanSuan_Caliberate_Timeout(void);//<2F><><EFBFBD><EFBFBD>У׼<D0A3><D7BC>ʱ<EFBFBD><CAB1>ѯ<EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
extern const float sound_speed_in_water[101];
#endif