diff --git a/MDK-ARM/LWIP.uvguix.29643 b/MDK-ARM/LWIP.uvguix.29643 index dc45ae0..e1bbde2 100644 --- a/MDK-ARM/LWIP.uvguix.29643 +++ b/MDK-ARM/LWIP.uvguix.29643 @@ -3742,8 +3742,8 @@ ..\usersrc\udpclient.c 0 - 168 - 201 + 164 + 171 1 0 diff --git a/usersrc/udpclient.c b/usersrc/udpclient.c index c2da189..0171f50 100644 --- a/usersrc/udpclient.c +++ b/usersrc/udpclient.c @@ -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;