适配威海精讯畅通光照传感器

This commit is contained in:
95384 2025-02-27 14:49:36 +08:00
parent d49c313dab
commit 1fbf61f7d4
5 changed files with 10 additions and 10 deletions

View File

@ -32,8 +32,8 @@ typedef enum
FRT_REGISTER_HUMIDITY = 7, /* 大气湿度 */ FRT_REGISTER_HUMIDITY = 7, /* 大气湿度 */
FRT_REGISTER_PRESSURE = 8, /* 大气压 */ FRT_REGISTER_PRESSURE = 8, /* 大气压 */
FRT_REGISTER_RAIN = 9, /* 雨量 */ FRT_REGISTER_RAIN = 9, /* 雨量 */
FRT_REGISTER_PRECIPITATION_INTENSITY = 10, /* ×Ü·øÉä */ FRT_REGISTER_LIGHT_INTENSITY_HIGH = 10, /* 光照强度高位 */
FRT_REGISTER_UV_INTENSITY = 11, /* ×ÏÍâÇ¿¶È */ FRT_REGISTER_LIGHT_INTENSITY_LOW = 11, /* 光照强度低位 */
FRT_REGISTER_THROUGH_WIND_DIRECTION = 12, /* 极小风向 */ FRT_REGISTER_THROUGH_WIND_DIRECTION = 12, /* 极小风向 */
FRT_REGISTER_INSTANTANEOUS_WIND_DIRECTION = 13, /* 瞬时风向 */ FRT_REGISTER_INSTANTANEOUS_WIND_DIRECTION = 13, /* 瞬时风向 */
FRT_REGISTER_PEAK_WIND_DIRECTION = 14, /* 极大风向 */ FRT_REGISTER_PEAK_WIND_DIRECTION = 14, /* 极大风向 */

View File

@ -10,6 +10,7 @@
#include "FIR.h" #include "FIR.h"
#include "LowPassFilter.h" #include "LowPassFilter.h"
#include "encrypt.h" #include "encrypt.h"
#include "rain.h"
#define AVE_TIME 600 //滑动平均时间最大600 #define AVE_TIME 600 //滑动平均时间最大600
#define COVER_TINE 10 //探头遮挡后导致的接收次数过小的报错临界次数 #define COVER_TINE 10 //探头遮挡后导致的接收次数过小的报错临界次数
@ -1142,6 +1143,7 @@ void tem_hum_update_task(void const * argument)
{ {
osDelay(1000); osDelay(1000);
if(!tem_hun_check_flag)continue; if(!tem_hun_check_flag)continue;
getLightRainData();//雨量光照
time_s_temp_humi ++; time_s_temp_humi ++;
// 温湿度大气压更新 // 温湿度大气压更新
if (time_s_temp_humi >= g_usrConfigInfo.temp_hum_update_time) if (time_s_temp_humi >= g_usrConfigInfo.temp_hum_update_time)

View File

@ -1357,7 +1357,6 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg)
u_int16_t reg_num= (data[4] << 8)| data[5]; u_int16_t reg_num= (data[4] << 8)| data[5];
if ( \ if ( \
start_reg_addr < 0x00 ||\ start_reg_addr < 0x00 ||\
/* (start_reg_addr > FRT_REGISTER_PRESSURE && start_reg_addr < FRT_REGISTER_THROUGH_WIND_DIRECTION) ||\ */
(start_reg_addr > FRT_REGISTER_PEAK_WIND_SPEED && start_reg_addr < FRT_REGISTER_DEVICE_ADDR) ||\ (start_reg_addr > FRT_REGISTER_PEAK_WIND_SPEED && 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_TEMPHUM_UPDATE_TIME && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
start_reg_addr > FRT_REGISTER_ID_4 \ start_reg_addr > FRT_REGISTER_ID_4 \
@ -1370,7 +1369,6 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg)
if ( \ if ( \
reg_num < 0x01 ||\ reg_num < 0x01 ||\
/* (((reg_num + start_reg_addr - 1) > FRT_REGISTER_PRESSURE) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_THROUGH_WIND_DIRECTION)) ||\ */
(((reg_num + start_reg_addr - 1) > FRT_REGISTER_PEAK_WIND_SPEED) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR)) ||\ (((reg_num + start_reg_addr - 1) > FRT_REGISTER_PEAK_WIND_SPEED) && ((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_TEMPHUM_UPDATE_TIME) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
((reg_num + start_reg_addr -1) > FRT_REGISTER_ID_4) \ ((reg_num + start_reg_addr -1) > FRT_REGISTER_ID_4) \

View File

@ -54,7 +54,7 @@ uart_device_info uart_devices[]={
[3] = { [3] = {
.init = 0, .init = 0,
.uart_index = RAIN_RS485_UART_INDEX, .uart_index = RAIN_RS485_UART_INDEX,
.uart_baudrate = 4800, .uart_baudrate = 9600,
}, },
}; };

View File

@ -19,28 +19,28 @@ void rainLightPowerOff(void)
//获取雨量指令,返回的雨量是十倍,两个字节 //获取雨量指令,返回的雨量是十倍,两个字节
void getRainData(void) void getRainData(void)
{ {
uint8_t getRainDataCmd[] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x84, 0x0A}; uint8_t getRainDataCmd[] = {0x01, 0x03, 0x00, 0x03, 0x00, 0x01, 0x74, 0x0A};
uart_dev_write(g_rain_uart_handle, getRainDataCmd, sizeof(getRainDataCmd)); uart_dev_write(g_rain_uart_handle, getRainDataCmd, sizeof(getRainDataCmd));
} }
//清空雨量指令 //清空雨量指令
void clearRainData(void) void clearRainData(void)
{ {
uint8_t getRainDataCmd[] = {0x01, 0x06, 0x00, 0x00, 0x00, 0x5A, 0x09, 0xF1}; uint8_t getRainDataCmd[] = {0x01, 0x06, 0x01, 0x05, 0x00, 0x00, 0x98, 0x37};
uart_dev_write(g_rain_uart_handle, getRainDataCmd, sizeof(getRainDataCmd)); uart_dev_write(g_rain_uart_handle, getRainDataCmd, sizeof(getRainDataCmd));
} }
//获取光照指令,返回一倍光照,四个字节 //获取光照指令,返回一倍光照,四个字节
void getLightData(void) void getLightData(void)
{ {
uint8_t getRainDataCmd[] = {0x01, 0x03, 0x00, 0x02, 0x00, 0x02, 0x65, 0xCB}; uint8_t getRainDataCmd[] = {0x01, 0x03, 0x00, 0x05, 0x00, 0x02, 0xD4, 0x0A};
uart_dev_write(g_rain_uart_handle, getRainDataCmd, sizeof(getRainDataCmd)); uart_dev_write(g_rain_uart_handle, getRainDataCmd, sizeof(getRainDataCmd));
} }
//同时获取光照雨量指令,返回一倍光照,四个字节;十倍雨量两个字节 //同时获取光照雨量指令,返回一倍光照,四个字节;十倍雨量两个字节
void getLightRainData(void) void getLightRainData(void)
{ {
uint8_t getRainDataCmd[] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x04, 0x44, 0x09}; uint8_t getRainDataCmd[] = {0x01, 0x03, 0x00, 0x03, 0x00, 0x04, 0xB4, 0x09};
uart_dev_write(g_rain_uart_handle, getRainDataCmd, sizeof(getRainDataCmd)); uart_dev_write(g_rain_uart_handle, getRainDataCmd, sizeof(getRainDataCmd));
} }
@ -219,7 +219,7 @@ static void rainMsgHandler(device_handle device, u_int8_t *pMsg, u_int32_t MsgLe
break; break;
//数据光照雨量 //数据光照雨量
case 13: case 13:
msgData[0] = pMsg[7];//¹âÕÕ msgData[0] = pMsg[7];
msgData[1] = pMsg[8]; msgData[1] = pMsg[8];
msgData[2] = pMsg[9]; msgData[2] = pMsg[9];
msgData[3] = pMsg[10]; msgData[3] = pMsg[10];