|
|
@ -10,6 +10,13 @@ |
|
|
|
#include "encoder.h" |
|
|
|
#include "zport.h" |
|
|
|
|
|
|
|
#define cmd_checksum(data) \ |
|
|
|
if (computesum8((char *)data, recv_datalen - 1) != data->checksum) \ |
|
|
|
{ \ |
|
|
|
printf("checksum error\r\n"); \ |
|
|
|
return; \ |
|
|
|
} |
|
|
|
|
|
|
|
static bool udp_client_active_flag; |
|
|
|
|
|
|
|
/* 定义端口号 */ |
|
|
@ -161,15 +168,10 @@ void udp_client_parse(int recv_datalen) |
|
|
|
else if (recv_datalen <= basic_report_data_size) |
|
|
|
{ |
|
|
|
basic_report_data_t *rxcmd = (basic_report_data_t *)s_receBuf; |
|
|
|
if (computesum8((char *)rxcmd, recv_datalen - 1) != rxcmd->checksum) |
|
|
|
{ |
|
|
|
/* 校验失败 */ |
|
|
|
printf("checksum error\r\n"); |
|
|
|
return; |
|
|
|
} |
|
|
|
switch (rxcmd->cmd_id) |
|
|
|
{ |
|
|
|
case CMD_SET_AUTOMATIC_REPORTING_FREQUENCY: /* 设置自动上报频率 */ |
|
|
|
cmd_checksum(rxcmd); |
|
|
|
if (rxcmd->data >= 10) |
|
|
|
{ |
|
|
|
active_report_cycle = rxcmd->data; |
|
|
@ -180,6 +182,7 @@ void udp_client_parse(int recv_datalen) |
|
|
|
/* code */ |
|
|
|
break; |
|
|
|
case CMD_SET_ACTIVE: /* 设置主动上报 */ |
|
|
|
cmd_checksum(rxcmd); |
|
|
|
if ((rxcmd->data == 0) || (rxcmd->data == 1)) |
|
|
|
{ |
|
|
|
udp_client_active_flag = rxcmd->data; |
|
|
|