V0.005.0
This commit is contained in:
@@ -10,7 +10,9 @@
|
||||
#include "proto_print.h"
|
||||
#include "proto_modbus_lib.h"
|
||||
|
||||
#define PROTO_LEAKAGE_READ_DATA_NUM (14) /*<2A><>ȡһ<C8A1><D2BB><EFBFBD>豸<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
#define PROTO_LEAKAGE_2CH_READ_DATA_NUM (8)
|
||||
#define PROTO_LEAKAGE_4CH_READ_DATA_NUM (14)
|
||||
#define PROTO_LEAKAGE_READ_DATA_NUM (PROTO_LEAKAGE_2CH_READ_DATA_NUM) /*<2A><>ȡһ<C8A1><D2BB><EFBFBD>豸<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
#define PROTO_LEAKAGE_GET_CURR_DATA_START_ADDR (0x0000)
|
||||
|
||||
static void proto_leakage_init(proto_leakage_t *p_leakage);
|
||||
@@ -107,7 +109,7 @@ static void proto_leakage_switch(proto_leakage_t *p_leakage)
|
||||
static void proto_leakage_tx_curr_data_get(proto_leakage_t *p_leakage)
|
||||
{
|
||||
u16 addr = PROTO_LEAKAGE_GET_CURR_DATA_START_ADDR;
|
||||
u8 len = 14;
|
||||
u8 len = PROTO_LEAKAGE_READ_DATA_NUM;
|
||||
u8 id = p_leakage->sensor[p_leakage->sensor_index].comm.id;
|
||||
modbus_lib_data_read(id,addr,len,p_leakage->uart_send);
|
||||
}
|
||||
@@ -128,10 +130,6 @@ static void proto_leakage_tx_task(proto_leakage_t *p_leakage)
|
||||
if((++p_sensor->comm.tx_time_out_count) > 10)/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ10<31><30> ͨѶ<CDA8><D1B6>ʱ*/
|
||||
{
|
||||
p_sensor->comm.sensor_state_code |= (PROTO_LEAKAGE_STATE_CODE_TIME_OUT);
|
||||
|
||||
|
||||
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
//memset(&gas_data[p_sensor->sensor_index],0,sizeof(gas_data_t));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,9 +152,10 @@ static void proto_leakage_tx_task(proto_leakage_t *p_leakage)
|
||||
/*ͨѶ<CDA8><D1B6>ʱ*/
|
||||
if(p_sensor->comm.sensor_state_code & (PROTO_LEAKAGE_STATE_CODE_TIME_OUT))
|
||||
{
|
||||
for(i=0;i<APP_LEAKAGE_SUB_DEVICE_CH_NUM;i++)
|
||||
for(i=0;i<APP_LEAKAGE_SUB_DEVICE_CH_NUM;i++) /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
{
|
||||
leakage.sub_device_data[p_sensor->comm.leakage_data_index].ch_data[i].state |= APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
|
||||
leakage.sub_device_data[p_sensor->comm.leakage_data_index].ch_data[i].state = APP_LEAKAGE_SUB_DEVICE_STATE_TIME_OUT;
|
||||
leakage.sub_device_data[p_sensor->comm.leakage_data_index].ch_data[i].distance = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -186,8 +185,8 @@ static void proto_leakage_rx_task(u8 *p_data,u16 len,void *other_data)
|
||||
u8 modbus_id,cmd;
|
||||
u16 check_crc16,modbus_crc16;
|
||||
u16 *p_u16_temp;
|
||||
u16 i,ch;
|
||||
u8 *p_rx_valid,temp_value;
|
||||
u16 i,ch,temp_value;
|
||||
u8 *p_rx_valid;
|
||||
|
||||
proto_sensor_class_t *p_sensor;
|
||||
proto_leakage_t *p_leakage = NULL;
|
||||
@@ -251,20 +250,36 @@ static void proto_leakage_rx_task(u8 *p_data,u16 len,void *other_data)
|
||||
{
|
||||
/*<2A><><EFBFBD>㵱ǰ<E3B5B1>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>*/
|
||||
u8 sensor_index = p_sensor->comm.leakage_data_index;
|
||||
// u16 ch_addr_offset[4] = {0,4,8,11}; /*©Һ<C2A9><D2BA><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַƫ<D6B7><C6AB>*/
|
||||
u8 sub_device_ch;
|
||||
u16 ch_addr_offset[4] = {0,8,16,22}; /*©Һ<C2A9><D2BA><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ַƫ<D6B7><C6AB>*/
|
||||
u16 temp;
|
||||
|
||||
|
||||
|
||||
/*<2A><>©Һ<C2A9><D2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ͨ<EFBFBD><CDA8>*/
|
||||
if(PROTO_LEAKAGE_4CH_READ_DATA_NUM == PROTO_LEAKAGE_READ_DATA_NUM)
|
||||
{
|
||||
sub_device_ch = APP_LEAKAGE_SUB_DEVICE_CH_NUM;
|
||||
}
|
||||
else if(PROTO_LEAKAGE_2CH_READ_DATA_NUM == PROTO_LEAKAGE_READ_DATA_NUM)
|
||||
{
|
||||
sub_device_ch = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_device_ch = APP_LEAKAGE_SUB_DEVICE_CH_NUM;
|
||||
}
|
||||
|
||||
|
||||
if(sensor_index >= APP_LEAKAGE_SUB_DEVICE_NUM)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
/*ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
||||
for(ch = 0;ch < APP_LEAKAGE_SUB_DEVICE_CH_NUM;ch++)
|
||||
for(ch = 0;ch < sub_device_ch;ch++)
|
||||
{
|
||||
leakage.sub_device_data[sensor_index].ch_data[ch].state = 0;
|
||||
leakage.sub_device_data[sensor_index].ch_data[ch].state = 0;
|
||||
leakage.sub_device_data[sensor_index].ch_data[ch].state = 0;
|
||||
leakage.sub_device_data[sensor_index].ch_data[ch].distance = 0;
|
||||
}
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0x0003*/
|
||||
@@ -276,26 +291,27 @@ static void proto_leakage_rx_task(u8 *p_data,u16 len,void *other_data)
|
||||
leakage.sub_device_data[sensor_index].test_mode = temp_value & 0xFF;
|
||||
|
||||
/*©Һ<C2A9><D2BA><EFBFBD><EFBFBD>*/
|
||||
for(i=0;i<4;i++)
|
||||
for(i=0;i<sub_device_ch;i++)
|
||||
{
|
||||
ch = i;
|
||||
temp = ch_addr_offset[i];
|
||||
/*©Һ*/
|
||||
temp_value = (p_rx_valid[temp + 0] << 8) | p_rx_valid[temp + 1];
|
||||
if(temp_value == 1)
|
||||
{
|
||||
leakage.sub_device_data[sensor_index].ch_data[ch].state |=
|
||||
APP_LEAKAGE_SUB_DEVICE_STATE_LEAKAGE;
|
||||
}
|
||||
|
||||
/*<2A>ϴ<EFBFBD>*/
|
||||
temp_value = (p_rx_valid[temp + 2] << 8) | p_rx_valid[temp + 3];
|
||||
if(temp_value == 1)
|
||||
{
|
||||
leakage.sub_device_data[sensor_index].ch_data[ch].state |=
|
||||
APP_LEAKAGE_SUB_DEVICE_STATE_OPEN;
|
||||
}
|
||||
|
||||
/*©Һ<C2A9><D2BA><EFBFBD><EFBFBD>*/
|
||||
temp_value = (p_rx_valid[temp + 4] << 8) | p_rx_valid[temp + 5];
|
||||
leakage.sub_device_data[sensor_index].ch_data[ch].distance = temp_value *0.01;
|
||||
leakage.sub_device_data[sensor_index].ch_data[ch].distance = temp_value;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user