From f393ba47dab42dfad50032602e79ec3d3b47948d Mon Sep 17 00:00:00 2001 From: 95384 <664090429@qq.com> Date: Sat, 23 Nov 2024 18:00:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E6=B7=BB=E5=8A=A0=E6=8E=A2?= =?UTF-8?q?=E5=A4=B4=E8=B7=9D=E7=A6=BB=E4=B8=8E=E5=A3=B0=E9=80=9F=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B8=A6=E9=80=9A=E6=BB=A4=E6=B3=A2=E5=99=A8?= =?UTF-8?q?BUFF=E9=95=BF=E5=BA=A6=E4=B8=BAADC=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/Inc/anemometer_dev.h | 3 +- App/Inc/frt_protocol.h | 25 ++++----- App/Inc/inflash.h | 39 +++++++------- App/Src/anemometer_dev.c | 12 ++--- App/Src/frt_protocol.c | 114 +++++++++++++++++++++++++++------------ App/Src/inflash.c | 1 + 6 files changed, 121 insertions(+), 73 deletions(-) diff --git a/App/Inc/anemometer_dev.h b/App/Inc/anemometer_dev.h index 83e66d2..f726582 100644 --- a/App/Inc/anemometer_dev.h +++ b/App/Inc/anemometer_dev.h @@ -39,11 +39,12 @@ #define DRIVE_NUM 2 +///已将DISTANCE写入配置文件,在结构体g_stConfigInfo.transducer_distace中 // 传播距离 风速计算公式中的L参数 //探头表面距离115.12mm(57.56mm*2),换能器探头到探头表面距离暂定2mm(1mm*2) //#define DISTANCE ((float32_t)115120.0 + (float32_t)2000.0) //探头表面距离115.12mm(57.56mm*2),换能器内部2mm速度2000,时间算2us减在tof上 -#define DISTANCE ((float32_t)115120.0) +//#define DISTANCE ((float32_t)115120.0) // 传播距离 风速计算公式中的L参数 //#define DISTANCE ((float32_t)120000.0) // 富奥通结构 L = 118946 diff --git a/App/Inc/frt_protocol.h b/App/Inc/frt_protocol.h index 87b2e65..a639737 100644 --- a/App/Inc/frt_protocol.h +++ b/App/Inc/frt_protocol.h @@ -48,19 +48,20 @@ typedef enum FRT_REGISTER_TRANSDUCER_CFG_4R5 = 31, /* */ FRT_REGISTER_TRANSDUCER_CFG_8R0 = 32, /* */ FRT_REGISTER_RSSI_RANGE = 33, /* RSSIЧΧ */ - FRT_REGISTER_WAVE_DATA = 34, /* */ + FRT_REGISTER_DISTANCE = 34, /* */ FRT_REGISTER_ERROR_LOG = 35, /* ־ */ - FRT_REGISTER_LINEAR_POINT_X_1 = 36, /* Բֵԭʼ1 */ - FRT_REGISTER_LINEAR_POINT_X_2 = 37, /* Բֵԭʼ2 */ - FRT_REGISTER_LINEAR_POINT_X_3 = 38, /* Բֵԭʼ3 */ - FRT_REGISTER_LINEAR_POINT_X_4 = 39, /* Բֵԭʼ4 */ - FRT_REGISTER_LINEAR_POINT_X_5 = 40, /* Բֵԭʼ5 */ - FRT_REGISTER_LINEAR_POINT_Y_1 = 41, /* ԲֵУ׼1 */ - FRT_REGISTER_LINEAR_POINT_Y_2 = 42, /* ԲֵУ׼2 */ - FRT_REGISTER_LINEAR_POINT_Y_3 = 43, /* ԲֵУ׼3 */ - FRT_REGISTER_LINEAR_POINT_Y_4 = 44, /* ԲֵУ׼4 */ - FRT_REGISTER_LINEAR_POINT_Y_5 = 45, /* ԲֵУ׼5 */ - FRT_REGISTER_LINEAR_ENABLE = 46, /* Բֵʹ */ + FRT_REGISTER_WIND_C = 36, /* õķ */ + FRT_REGISTER_LINEAR_POINT_X_1 = 37, /* Բֵԭʼ1 */ + FRT_REGISTER_LINEAR_POINT_X_2 = 38, /* Բֵԭʼ2 */ + FRT_REGISTER_LINEAR_POINT_X_3 = 39, /* Բֵԭʼ3 */ + FRT_REGISTER_LINEAR_POINT_X_4 = 40, /* Բֵԭʼ4 */ + FRT_REGISTER_LINEAR_POINT_X_5 = 41, /* Բֵԭʼ5 */ + FRT_REGISTER_LINEAR_POINT_Y_1 = 42, /* ԲֵУ׼1 */ + FRT_REGISTER_LINEAR_POINT_Y_2 = 43, /* ԲֵУ׼2 */ + FRT_REGISTER_LINEAR_POINT_Y_3 = 44, /* ԲֵУ׼3 */ + FRT_REGISTER_LINEAR_POINT_Y_4 = 45, /* ԲֵУ׼4 */ + FRT_REGISTER_LINEAR_POINT_Y_5 = 46, /* ԲֵУ׼5 */ + FRT_REGISTER_LINEAR_ENABLE = 47, /* Բֵʹ */ }FRT_MsgRegister; #pragma pack(push,1) diff --git a/App/Inc/inflash.h b/App/Inc/inflash.h index d374096..6e3e8a7 100644 --- a/App/Inc/inflash.h +++ b/App/Inc/inflash.h @@ -19,25 +19,26 @@ typedef enum{ #pragma pack(push,1) typedef struct _config_info{ u_int8_t flag_head; - u_int8_t addr; /* 设备地址 */ - u_int16_t uart_baud; /* 串口波特率 */ - u_int16_t speed_average_time; /* 风速平均时间 */ - u_int16_t temp_hum_update_time; /* 温湿度平均时间 */ - u_int16_t transducer_cfg_1R5; /* 换能器参数 */ - u_int16_t transducer_cfg_4R5; /* 换能器参数 */ - u_int16_t transducer_cfg_8R0; /* 换能器参数 */ - u_int16_t RSSI_range; /* RSSI有效范围 */ - u_int16_t linear_point_1_x; /* 线性插值点1X */ - u_int16_t linear_point_1_y; /* 线性插值点1Y */ - u_int16_t linear_point_2_x; /* 线性插值点2X */ - u_int16_t linear_point_2_y; /* 线性插值点2Y */ - u_int16_t linear_point_3_x; /* 线性插值点3X */ - u_int16_t linear_point_3_y; /* 线性插值点3Y */ - u_int16_t linear_point_4_x; /* 线性插值点4X */ - u_int16_t linear_point_4_y; /* 线性插值点4Y */ - u_int16_t linear_point_5_x; /* 线性插值点5X */ - u_int16_t linear_point_5_y; /* 线性插值点5Y */ - u_int16_t linear_enable; /* 线性插值使能 */ + u_int8_t addr; /* 设备地址 */ + u_int16_t uart_baud; /* 串口波特率 */ + u_int16_t speed_average_time; /* 风速平均时间 */ + u_int16_t temp_hum_update_time; /* 温湿度平均时间 */ + u_int16_t transducer_cfg_1R5; /* 换能器参数 */ + u_int16_t transducer_cfg_4R5; /* 换能器参数 */ + u_int16_t transducer_cfg_8R0; /* 换能器参数 */ + u_int16_t RSSI_range; /* RSSI有效范围 */ + u_int16_t transducer_distace; /* 换能器表面距离 */ + u_int16_t linear_point_1_x; /* 线性插值点1X */ + u_int16_t linear_point_1_y; /* 线性插值点1Y */ + u_int16_t linear_point_2_x; /* 线性插值点2X */ + u_int16_t linear_point_2_y; /* 线性插值点2Y */ + u_int16_t linear_point_3_x; /* 线性插值点3X */ + u_int16_t linear_point_3_y; /* 线性插值点3Y */ + u_int16_t linear_point_4_x; /* 线性插值点4X */ + u_int16_t linear_point_4_y; /* 线性插值点4Y */ + u_int16_t linear_point_5_x; /* 线性插值点5X */ + u_int16_t linear_point_5_y; /* 线性插值点5Y */ + u_int16_t linear_enable; /* 线性插值使能 */ u_int8_t flag_end; }config_info; #pragma pack(pop) diff --git a/App/Src/anemometer_dev.c b/App/Src/anemometer_dev.c index cb236f4..6a49a37 100644 --- a/App/Src/anemometer_dev.c +++ b/App/Src/anemometer_dev.c @@ -98,8 +98,8 @@ float32_t find_maxValPosition_by_sinInterpolation(float32_t a,float32_t b,float3 float32_t RSSI; /*****************滤波器BUFF**********/ -float32_t buf[1024]; -float32_t buf2[1024]; +float32_t buf[ADC_VAL_LEN]; +float32_t buf2[ADC_VAL_LEN]; /*****************滤波器BUFF**********/ float32_t cal_tof(q15_t* x,uint32_t len) { @@ -439,10 +439,10 @@ void wind_task(void const * argument) // 通过各通道渡越时间求时间差 dtof = tofx-tofy; - weather_info.wind_c = DISTANCE/2.0f*(1.0f/tofx+1.0f/tofy); + weather_info.wind_c = (g_stConfigInfo.transducer_distace * 2.0f)/2.0f*(1.0f/tofx+1.0f/tofy); // weather_info.wind_velocity_x = 0-DISTANCE*dtof/1.41422f/tofx/tofx; // 修正公式 - weather_info.wind_velocity_x = 0-DISTANCE*dtof/1.41422f/tofx/tofy; + weather_info.wind_velocity_x = 0-(g_stConfigInfo.transducer_distace * 2.0f)*dtof/1.41422f/tofx/tofy; } // 通道3 通道4 测试东西风速 @@ -499,10 +499,10 @@ void wind_task(void const * argument) // 通过各通道渡越时间求时间差 dtof = tofx-tofy; - weather_info.wind_c = DISTANCE/2.0f*(1.0f/tofx+1.0f/tofy); + weather_info.wind_c = (g_stConfigInfo.transducer_distace * 2.0f)/2.0f*(1.0f/tofx+1.0f/tofy); // weather_info.wind_velocity_y = DISTANCE*dtof/1.41422f/tofx/tofx; // 修正公式 - weather_info.wind_velocity_y = DISTANCE*dtof/1.41422f/tofx/tofy; + weather_info.wind_velocity_y = (g_stConfigInfo.transducer_distace * 2.0f)*dtof/1.41422f/tofx/tofy; } weather_info.wind_velocity = sqrtf(weather_info.wind_velocity_x*weather_info.wind_velocity_x + weather_info.wind_velocity_y*weather_info.wind_velocity_y); diff --git a/App/Src/frt_protocol.c b/App/Src/frt_protocol.c index c3634e7..94a41d9 100644 --- a/App/Src/frt_protocol.c +++ b/App/Src/frt_protocol.c @@ -44,8 +44,9 @@ static u_int16_t FRT_ReadRegTransducerCFG1R5(void *pMsg); static u_int16_t FRT_ReadRegTransducerCFG4R5(void *pMsg); static u_int16_t FRT_ReadRegTransducerCFG8R0(void *pMsg); static u_int16_t FRT_ReadRegRSSIRange(void *pMsg); -static u_int16_t FRT_ReadRegWaveData(void *pMsg); +static u_int16_t FRT_ReadRegDISTANCE(void *pMsg); static u_int16_t FRT_ReadRegErrorData(void *pMsg); +static u_int16_t FRT_ReadRegWindC(void *pMsg); static u_int16_t FRT_ReadRegPoint_1X(void *pMsg); static u_int16_t FRT_ReadRegPoint_2X(void *pMsg); static u_int16_t FRT_ReadRegPoint_3X(void *pMsg); @@ -62,6 +63,7 @@ static u_int16_t FRT_WriteRegTransducerCFG1R5(void *pMsg); static u_int16_t FRT_WriteRegTransducerCFG4R5(void *pMsg); static u_int16_t FRT_WriteRegTransducerCFG8R0(void *pMsg); static u_int16_t FRT_WriteRegRSSIRange(void *pMsg); +static u_int16_t FRT_WriteRegDISTANCE(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); @@ -101,7 +103,9 @@ FRT_RegProcTable_s g_RegTbl[] = { FRT_REGISTER_TRANSDUCER_CFG_4R5, FRT_ReadRegTransducerCFG4R5 }, /* 读换能器参数寄存器值4R5 */ { FRT_REGISTER_TRANSDUCER_CFG_8R0, FRT_ReadRegTransducerCFG8R0 }, /* 读换能器参数寄存器值8R0 */ { FRT_REGISTER_RSSI_RANGE, FRT_ReadRegRSSIRange }, /* 读RSSI有效范围 */ + { FRT_REGISTER_DISTANCE, FRT_ReadRegDISTANCE }, /* 读探头表面有效距离 */ { FRT_REGISTER_ERROR_LOG, FRT_ReadRegErrorData }, /* 读错误日志 */ + { FRT_REGISTER_WIND_C, FRT_ReadRegWindC }, /* 读计算得到的风速 */ { FRT_REGISTER_LINEAR_POINT_X_1, FRT_ReadRegPoint_1X }, /* 线性插值原始点1 */ { FRT_REGISTER_LINEAR_POINT_X_2, FRT_ReadRegPoint_2X }, /* 线性插值原始点2 */ { FRT_REGISTER_LINEAR_POINT_X_3, FRT_ReadRegPoint_3X }, /* 线性插值原始点3 */ @@ -118,22 +122,23 @@ FRT_RegProcTable_s g_RegTbl[] = /* 写寄存器处理表 */ FRT_RegProcTable_s g_Write_RegTbl[] = { - { FRT_REGISTER_DEVICE_ADDR, FRT_WriteRegDeviceAddr }, /* 写设备地址 */ - { FRT_REGISTER_COMMU_BAUDRATE, FRT_WriteRegCommuBaudRate }, /* 写波特率 */ - { FRT_REGISTER_SPEED_AVERAGE_TIME, FRT_WriteRegSpeedAverageTime }, /* 写风速平均时间 */ - { FRT_REGISTER_TEMPHUM_UPDATE_TIME, FRT_WriteRegTempHumUpdateTime }, /* 写温湿度更新时间 */ - { FRT_REGISTER_SOFT_REST, FRT_WriteRegSoftReset }, /* 软件复位 */ - { FRT_REGISTER_REST_DEFAULT_SETTING, FRT_WriteRegResetDefault }, /* 恢复出厂设置 */ - { FRT_REGISTER_TRANSDUCER_CFG_1R5, FRT_WriteRegTransducerCFG1R5 }, /* 写换能器参数寄存器值1R5 */ - { FRT_REGISTER_TRANSDUCER_CFG_4R5, FRT_WriteRegTransducerCFG4R5 }, /* 写换能器参数寄存器值4R5 */ - { FRT_REGISTER_TRANSDUCER_CFG_8R0, FRT_WriteRegTransducerCFG8R0 }, /* 写换能器参数寄存器值8R0 */ - { FRT_REGISTER_RSSI_RANGE, FRT_WriteRegRSSIRange }, /* 写RSSI有效范围 */ + { FRT_REGISTER_DEVICE_ADDR, FRT_WriteRegDeviceAddr }, /* 写设备地址 */ + { FRT_REGISTER_COMMU_BAUDRATE, FRT_WriteRegCommuBaudRate }, /* 写波特率 */ + { FRT_REGISTER_SPEED_AVERAGE_TIME, FRT_WriteRegSpeedAverageTime }, /* 写风速平均时间 */ + { FRT_REGISTER_TEMPHUM_UPDATE_TIME, FRT_WriteRegTempHumUpdateTime }, /* 写温湿度更新时间 */ + { FRT_REGISTER_SOFT_REST, FRT_WriteRegSoftReset }, /* 软件复位 */ + { FRT_REGISTER_REST_DEFAULT_SETTING, FRT_WriteRegResetDefault }, /* 恢复出厂设置 */ + { FRT_REGISTER_TRANSDUCER_CFG_1R5, FRT_WriteRegTransducerCFG1R5 }, /* 写换能器参数寄存器值1R5 */ + { FRT_REGISTER_TRANSDUCER_CFG_4R5, FRT_WriteRegTransducerCFG4R5 }, /* 写换能器参数寄存器值4R5 */ + { FRT_REGISTER_TRANSDUCER_CFG_8R0, FRT_WriteRegTransducerCFG8R0 }, /* 写换能器参数寄存器值8R0 */ + { FRT_REGISTER_RSSI_RANGE, FRT_WriteRegRSSIRange }, /* 写RSSI有效范围 */ + { FRT_REGISTER_DISTANCE, FRT_WriteRegDISTANCE }, /* 写探头表面有效距离 */ { 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 */ - { FRT_REGISTER_LINEAR_POINT_Y_4, FRT_WriteRegPoint_4Y }, /* 线性插值校准点4 */ - { FRT_REGISTER_LINEAR_POINT_Y_5, FRT_WriteRegPoint_5Y }, /* 线性插值校准点5 */ - { FRT_REGISTER_LINEAR_ENABLE, FRT_WriteRegLinearEnable }, /* 线性插值使能 */ + { FRT_REGISTER_LINEAR_POINT_Y_2, FRT_WriteRegPoint_2Y }, /* 线性插值校准点2 */ + { FRT_REGISTER_LINEAR_POINT_Y_3, FRT_WriteRegPoint_3Y }, /* 线性插值校准点3 */ + { FRT_REGISTER_LINEAR_POINT_Y_4, FRT_WriteRegPoint_4Y }, /* 线性插值校准点4 */ + { FRT_REGISTER_LINEAR_POINT_Y_5, FRT_WriteRegPoint_5Y }, /* 线性插值校准点5 */ + { FRT_REGISTER_LINEAR_ENABLE, FRT_WriteRegLinearEnable }, /* 线性插值使能 */ }; /** @@ -503,6 +508,18 @@ static u_int16_t FRT_ReadRegRSSIRange(void *pMsg) return FRT_swap_endian_16(value); } +/** + * @brief 读换能器探头距离 + * @param + * @retval + */ +static u_int16_t FRT_ReadRegDISTANCE(void *pMsg) +{ + read_config_info(); + u_int16_t value=g_stConfigInfo.transducer_distace; + return FRT_swap_endian_16(value); +} + /** * @brief 读错误日志 * @param @@ -514,6 +531,17 @@ static u_int16_t FRT_ReadRegErrorData(void *pMsg) return FRT_swap_endian_16(value); } +/** + * @brief 读当前声速 + * @param + * @retval + */ +static u_int16_t FRT_ReadRegWindC(void *pMsg) +{ + u_int16_t value=weather_info.wind_c = 0; + return FRT_swap_endian_16(value); +} + /** * @brief 读线性插值原始点1 * @param @@ -699,6 +727,22 @@ static u_int16_t FRT_WriteRegRSSIRange(void *pMsg) return 0; } +/** + * @brief 写换能器探头距离 + * @param + * @retval + */ +static u_int16_t FRT_WriteRegDISTANCE(void *pMsg) +{ + uint16_t *pMsgAddr = (uint16_t *)pMsg; + uint16_t data = *pMsgAddr; + + g_stConfigInfo.transducer_distace = data; + save_config_info(g_stConfigInfo); + + return 0; +} + /** * @brief 写线性插值矫正点1 * @param @@ -892,11 +936,11 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg) uint8_t *data = (uint8_t *)pMsg; u_int16_t start_reg_addr = (data[2] << 8)| data[3]; u_int16_t reg_num= (data[4] << 8)| data[5]; - if ( \ - start_reg_addr < 0x00 ||\ - (start_reg_addr > 0x08 && start_reg_addr < 0x14) ||\ - (start_reg_addr > 0x17 && start_reg_addr < 0x1E) ||\ - start_reg_addr > 0x2E \ + if ( \ + start_reg_addr < 0x00 ||\ + (start_reg_addr > FRT_REGISTER_PRESSURE && start_reg_addr < FRT_REGISTER_DEVICE_ADDR) ||\ + (start_reg_addr > FRT_REGISTER_TEMPHUM_UPDATE_TIME && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\ + start_reg_addr > FRT_REGISTER_LINEAR_ENABLE \ ) { @@ -904,11 +948,11 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg) return; } - if ( \ - reg_num < 0x01 ||\ - (((reg_num + start_reg_addr - 1) > 0x08) && ((reg_num + start_reg_addr - 1) < 0x14)) ||\ - (((reg_num + start_reg_addr -1) > 0x17) && ((reg_num + start_reg_addr -1) < 0x1E)) ||\ - ((reg_num + start_reg_addr -1) > 0x2E) \ + if ( \ + reg_num < 0x01 ||\ + (((reg_num + start_reg_addr - 1) > FRT_REGISTER_PRESSURE) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR)) ||\ + (((reg_num + start_reg_addr -1) > FRT_REGISTER_TEMPHUM_UPDATE_TIME) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\ + ((reg_num + start_reg_addr -1) > FRT_REGISTER_LINEAR_ENABLE) \ ) { @@ -957,20 +1001,20 @@ void FRT_MsgProc_WriteRegister(device_handle device, void *pMsg) unsigned short return_crc_value; // 校验 - if (start_reg_addr < 0x14 ||\ - (start_reg_addr > 0x1C && start_reg_addr < 0x1E)||\ - (start_reg_addr > 0x21 && start_reg_addr < 0x29)||\ - (start_reg_addr > 0x2E) + 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 && start_reg_addr < FRT_REGISTER_LINEAR_POINT_Y_1) ||\ + (start_reg_addr > FRT_REGISTER_LINEAR_ENABLE) \ ) { term_printf("start_reg_addr error:%d", start_reg_addr); return; } - if (reg_num < 0x01 ||\ - ((reg_num + start_reg_addr - 1) < 0x14) ||\ - (((reg_num + start_reg_addr -1) > 0x1C) && ((reg_num + start_reg_addr -1) < 0x1E)) ||\ - (((reg_num + start_reg_addr -1) > 0x21) && ((reg_num + start_reg_addr -1) < 0x29)) ||\ - ((reg_num + start_reg_addr -1) > 0x2E) + 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) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_LINEAR_POINT_Y_1)) ||\ + ((reg_num + start_reg_addr -1) > FRT_REGISTER_LINEAR_ENABLE) \ ) { term_printf("reg_num error:%d", reg_num); diff --git a/App/Src/inflash.c b/App/Src/inflash.c index a2c6f51..6ae3e30 100644 --- a/App/Src/inflash.c +++ b/App/Src/inflash.c @@ -25,6 +25,7 @@ config_info g_stConfigInfo={ .transducer_cfg_4R5 = 35, /* */ .transducer_cfg_8R0 = 65, /* */ .RSSI_range = 20, /* RSSI0.2Ч */ + .transducer_distace = 57560, /* ̽ͷ */ .linear_point_1_x = 0, /* Բֵ1 */ .linear_point_1_y = 0, /* Բֵ1 */