Flash添加换能器匹配层延时

This commit is contained in:
95384 2025-03-11 18:17:06 +08:00
parent 3d1d04b809
commit 0aa2ed31e4
5 changed files with 69 additions and 34 deletions

View File

@ -58,32 +58,33 @@ typedef enum
FRT_REGISTER_COEFFICIENT = 34, /* 粘度修正系数 */
FRT_REGISTER_DISTANCE_NS = 35, /* 南北换能器表面距离 */
FRT_REGISTER_DISTANCE_WE = 36, /* 东西换能器表面距离 */
FRT_REGISTER_ERROR_LOG = 37, /* 错误日志 */
FRT_REGISTER_WIND_C_NS = 38, /* 计算得到的南北风速 */
FRT_REGISTER_WIND_C_WE = 39, /* 计算得到的东西风速 */
FRT_REGISTER_LINEAR_POINT_X_1 = 40, /* 线性插值原始点1 */
FRT_REGISTER_LINEAR_POINT_X_2 = 41, /* 线性插值原始点2 */
FRT_REGISTER_LINEAR_POINT_X_3 = 42, /* 线性插值原始点3 */
FRT_REGISTER_LINEAR_POINT_X_4 = 43, /* 线性插值原始点4 */
FRT_REGISTER_LINEAR_POINT_X_5 = 44, /* 线性插值原始点5 */
FRT_REGISTER_LINEAR_POINT_Y_1 = 45, /* 线性插值校准点1 */
FRT_REGISTER_LINEAR_POINT_Y_2 = 46, /* 线性插值校准点2 */
FRT_REGISTER_LINEAR_POINT_Y_3 = 47, /* 线性插值校准点3 */
FRT_REGISTER_LINEAR_POINT_Y_4 = 48, /* 线性插值校准点4 */
FRT_REGISTER_LINEAR_POINT_Y_5 = 49, /* 线性插值校准点5 */
FRT_REGISTER_LINEAR_ENABLE = 50, /* 线性插值使能 */
FRT_REGISTER_MAX_WAVE_1 = 51, /* 换能器最大波形 */
FRT_REGISTER_MAX_WAVE_2 = 52, /* 换能器最大波形 */
FRT_REGISTER_MAX_WAVE_3 = 53, /* 换能器最大波形 */
FRT_REGISTER_MAX_WAVE_4 = 54, /* 换能器最大波形 */
FRT_REGISTER_ID_1 = 55, /* ID16 */
FRT_REGISTER_ID_2 = 56, /* ID32 */
FRT_REGISTER_ID_3 = 57, /* ID48 */
FRT_REGISTER_ID_4 = 58, /* ID64 */
FRT_REGISTER_ENCRYPT_1 = 59, /* 密文16 */
FRT_REGISTER_ENCRYPT_2 = 60, /* 密文32 */
FRT_REGISTER_ENCRYPT_3 = 61, /* 密文48 */
FRT_REGISTER_ENCRYPT_4 = 62, /* 密文64 */
FRT_REGISTER_ANEMOMETER_DELAY = 37, /* 换能器匹配层延时 */
FRT_REGISTER_ERROR_LOG = 38, /* 错误日志 */
FRT_REGISTER_WIND_C_NS = 39, /* 计算得到的南北风速 */
FRT_REGISTER_WIND_C_WE = 40, /* 计算得到的东西风速 */
FRT_REGISTER_LINEAR_POINT_X_1 = 41, /* 线性插值原始点1 */
FRT_REGISTER_LINEAR_POINT_X_2 = 42, /* 线性插值原始点2 */
FRT_REGISTER_LINEAR_POINT_X_3 = 43, /* 线性插值原始点3 */
FRT_REGISTER_LINEAR_POINT_X_4 = 44, /* 线性插值原始点4 */
FRT_REGISTER_LINEAR_POINT_X_5 = 45, /* 线性插值原始点5 */
FRT_REGISTER_LINEAR_POINT_Y_1 = 46, /* 线性插值校准点1 */
FRT_REGISTER_LINEAR_POINT_Y_2 = 47, /* 线性插值校准点2 */
FRT_REGISTER_LINEAR_POINT_Y_3 = 48, /* 线性插值校准点3 */
FRT_REGISTER_LINEAR_POINT_Y_4 = 49, /* 线性插值校准点4 */
FRT_REGISTER_LINEAR_POINT_Y_5 = 50, /* 线性插值校准点5 */
FRT_REGISTER_LINEAR_ENABLE = 51, /* 线性插值使能 */
FRT_REGISTER_MAX_WAVE_1 = 52, /* 换能器最大波形 */
FRT_REGISTER_MAX_WAVE_2 = 53, /* 换能器最大波形 */
FRT_REGISTER_MAX_WAVE_3 = 54, /* 换能器最大波形 */
FRT_REGISTER_MAX_WAVE_4 = 55, /* 换能器最大波形 */
FRT_REGISTER_ID_1 = 56, /* ID16 */
FRT_REGISTER_ID_2 = 57, /* ID32 */
FRT_REGISTER_ID_3 = 58, /* ID48 */
FRT_REGISTER_ID_4 = 59, /* ID64 */
FRT_REGISTER_ENCRYPT_1 = 60, /* 密文16 */
FRT_REGISTER_ENCRYPT_2 = 61, /* 密文32 */
FRT_REGISTER_ENCRYPT_3 = 62, /* 密文48 */
FRT_REGISTER_ENCRYPT_4 = 63, /* 密文64 */
}FRT_MsgRegister;
#pragma pack(push,1)

View File

@ -67,6 +67,7 @@ typedef struct _factory_config_info{
u_int16_t linear_point_5_y; /* 线性插值点5Y */
u_int16_t linear_enable; /* 线性插值使能 */
u_int32_t encrypt_1; /* 后32位密文 */
u_int16_t anemometerDelayTime; /* 换能器匹配层延时us */
u_int16_t temp0; /* 占位留待升级 */
u_int16_t temp1; /* 占位留待升级 */
u_int16_t temp2; /* 占位留待升级 */

View File

@ -554,8 +554,8 @@ void wind_task(void const * argument)
tof_error_log_NS = 0;
g_error_log.tof_error_NS = 0;
// 计算成us
tofx = ((tofx-FIR_PHASE_DELAY)/ADC_SAMP_RATE_MHz)+REV_MUTE_DELAY_US-1.0f/DRIVE_FREQ_MHz+0.0001f - 2.0f;
tofy = ((tofy-FIR_PHASE_DELAY)/ADC_SAMP_RATE_MHz)+REV_MUTE_DELAY_US-1.0f/DRIVE_FREQ_MHz+0.0001f - 2.0f;
tofx = ((tofx-FIR_PHASE_DELAY)/ADC_SAMP_RATE_MHz)+REV_MUTE_DELAY_US-1.0f/DRIVE_FREQ_MHz+0.0001f - g_stConfigInfo.anemometerDelayTime*1.0f;
tofy = ((tofy-FIR_PHASE_DELAY)/ADC_SAMP_RATE_MHz)+REV_MUTE_DELAY_US-1.0f/DRIVE_FREQ_MHz+0.0001f - g_stConfigInfo.anemometerDelayTime*1.0f;
// 通过各通道渡越时间求时间差
dtof = tofx-tofy;
@ -623,8 +623,8 @@ void wind_task(void const * argument)
tof_error_log_WE = 0;
g_error_log.tof_error_WE = 0;
// 计算成us
tofx = ((tofx-FIR_PHASE_DELAY)/ADC_SAMP_RATE_MHz)+REV_MUTE_DELAY_US-1.0f/DRIVE_FREQ_MHz+0.000001f - 2.0f;
tofy = ((tofy-FIR_PHASE_DELAY)/ADC_SAMP_RATE_MHz)+REV_MUTE_DELAY_US-1.0f/DRIVE_FREQ_MHz+0.000001f - 2.0f;
tofx = ((tofx-FIR_PHASE_DELAY)/ADC_SAMP_RATE_MHz)+REV_MUTE_DELAY_US-1.0f/DRIVE_FREQ_MHz+0.000001f - g_stConfigInfo.anemometerDelayTime*1.0f;
tofy = ((tofy-FIR_PHASE_DELAY)/ADC_SAMP_RATE_MHz)+REV_MUTE_DELAY_US-1.0f/DRIVE_FREQ_MHz+0.000001f - g_stConfigInfo.anemometerDelayTime*1.0f;
// 通过各通道渡越时间求时间差
dtof = tofx-tofy;

View File

@ -54,6 +54,7 @@ static u_int16_t FRT_ReadRegRSSIRange(void *pMsg);
static u_int16_t FRT_ReadRegCoefficient(void *pMsg);
static u_int16_t FRT_ReadRegDISTANCE_NS(void *pMsg);
static u_int16_t FRT_ReadRegDISTANCE_WE(void *pMsg);
static u_int16_t FRT_ReadRegANEMOMETER_Delay(void *pMsg);
static u_int16_t FRT_ReadRegErrorData(void *pMsg);
static u_int16_t FRT_ReadRegWindC_NS(void *pMsg);
static u_int16_t FRT_ReadRegWindC_WE(void *pMsg);
@ -85,6 +86,7 @@ static u_int16_t FRT_WriteRegRSSIRange(void *pMsg);
static u_int16_t FRT_WriteRegCoefficient(void *pMsg);
static u_int16_t FRT_WriteRegDISTANCE_NS(void *pMsg);
static u_int16_t FRT_WriteRegDISTANCE_WE(void *pMsg);
static u_int16_t FRT_WriteRegANEMOMETER_Delay(void *pMsg);
static u_int16_t FRT_WriteRegPoint_1Y(void *pMsg);
static u_int16_t FRT_WriteRegPoint_2Y(void *pMsg);
static u_int16_t FRT_WriteRegPoint_3Y(void *pMsg);
@ -141,6 +143,7 @@ FRT_RegProcTable_s g_RegTbl[] =
{ FRT_REGISTER_COEFFICIENT, FRT_ReadRegCoefficient }, /* 读粘度修正系数 */
{ FRT_REGISTER_DISTANCE_NS, FRT_ReadRegDISTANCE_NS }, /* 读南北探头表面有效距离 */
{ FRT_REGISTER_DISTANCE_WE, FRT_ReadRegDISTANCE_WE }, /* 读东西探头表面有效距离 */
{ FRT_REGISTER_ANEMOMETER_DELAY, FRT_ReadRegANEMOMETER_Delay }, /* 读换能器匹配层延时 */
{ FRT_REGISTER_ERROR_LOG, FRT_ReadRegErrorData }, /* 读错误日志 */
{ FRT_REGISTER_WIND_C_NS, FRT_ReadRegWindC_NS }, /* 读计算得到的南北风速 */
{ FRT_REGISTER_WIND_C_WE, FRT_ReadRegWindC_WE }, /* 读计算得到的东西风速 */
@ -181,6 +184,7 @@ FRT_RegProcTable_s g_Write_RegTbl[] =
{ FRT_REGISTER_COEFFICIENT, FRT_WriteRegCoefficient }, /* 写粘度修正系数 */
{ FRT_REGISTER_DISTANCE_NS, FRT_WriteRegDISTANCE_NS }, /* 写南北探头表面有效距离 */
{ FRT_REGISTER_DISTANCE_WE, FRT_WriteRegDISTANCE_WE }, /* 写东西探头表面有效距离 */
{ FRT_REGISTER_ANEMOMETER_DELAY, FRT_WriteRegANEMOMETER_Delay }, /* 写换能器匹配层延时 */
{ FRT_REGISTER_LINEAR_POINT_Y_1, FRT_WriteRegPoint_1Y }, /* 线性插值校准点1 */
{ FRT_REGISTER_LINEAR_POINT_Y_2, FRT_WriteRegPoint_2Y }, /* 线性插值校准点2 */
{ FRT_REGISTER_LINEAR_POINT_Y_3, FRT_WriteRegPoint_3Y }, /* 线性插值校准点3 */
@ -691,6 +695,18 @@ static u_int16_t FRT_ReadRegDISTANCE_WE(void *pMsg)
return FRT_swap_endian_16(value);
}
/**
* @brief
* @param
* @retval
*/
static u_int16_t FRT_ReadRegANEMOMETER_Delay(void *pMsg)
{
read_config_info();
u_int16_t value=g_stConfigInfo.anemometerDelayTime;
return FRT_swap_endian_16(value);
}
/**
* @brief
* @param
@ -1053,6 +1069,22 @@ static u_int16_t FRT_WriteRegDISTANCE_WE(void *pMsg)
return 0;
}
/**
* @brief
* @param
* @retval
*/
static u_int16_t FRT_WriteRegANEMOMETER_Delay(void *pMsg)
{
uint16_t *pMsgAddr = (uint16_t *)pMsg;
uint16_t data = *pMsgAddr;
g_stConfigInfo.anemometerDelayTime = data;
save_factory_config_info(g_stConfigInfo);
return 0;
}
/**
* @brief 线1
* @param
@ -1379,8 +1411,8 @@ void FRT_MsgProc_WriteRegister(device_handle device, void *pMsg)
// 校验
if (start_reg_addr < FRT_REGISTER_DEVICE_ADDR ||\
(start_reg_addr > FRT_REGISTER_REST_DEFAULT_SETTING && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
(start_reg_addr > FRT_REGISTER_DISTANCE_WE && start_reg_addr < FRT_REGISTER_LINEAR_POINT_Y_1) ||\
(start_reg_addr > FRT_REGISTER_LINEAR_POINT_Y_5) && (start_reg_addr < FRT_REGISTER_ENCRYPT_1) ||\
(start_reg_addr > FRT_REGISTER_ANEMOMETER_DELAY && start_reg_addr < FRT_REGISTER_LINEAR_POINT_Y_1) ||\
(start_reg_addr > FRT_REGISTER_LINEAR_ENABLE) && (start_reg_addr < FRT_REGISTER_ENCRYPT_1) ||\
(start_reg_addr > FRT_REGISTER_ENCRYPT_4)
)
{
@ -1390,8 +1422,8 @@ void FRT_MsgProc_WriteRegister(device_handle device, void *pMsg)
if (reg_num < 0x01 ||\
((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR) ||\
(((reg_num + start_reg_addr -1) > FRT_REGISTER_REST_DEFAULT_SETTING) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
(((reg_num + start_reg_addr -1) > FRT_REGISTER_DISTANCE_WE) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_LINEAR_POINT_Y_1)) ||\
(((reg_num + start_reg_addr -1) > FRT_REGISTER_LINEAR_POINT_Y_5) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_ENCRYPT_1)) ||\
(((reg_num + start_reg_addr -1) > FRT_REGISTER_ANEMOMETER_DELAY) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_LINEAR_POINT_Y_1)) ||\
(((reg_num + start_reg_addr -1) > FRT_REGISTER_LINEAR_ENABLE) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_ENCRYPT_1)) ||\
((reg_num + start_reg_addr -1) > FRT_REGISTER_ENCRYPT_4)
)
{

View File

@ -43,6 +43,7 @@ factory_config_info g_stConfigInfo={
.linear_enable = 0, /* 线性插值使能 */
.encrypt_0 = 0, /* 密文 */
.encrypt_1 = 0, /* 密文 */
.anemometerDelayTime = 2, /* 换能器匹配层延时us *//*大宇3无锡电声2*/
.flag_end = FLAG_SAVE_INFLASH_END,
};