From 794188ef3e0b593ae6277d69681a3e7e1b21fd3c Mon Sep 17 00:00:00 2001 From: tianjialong Date: Sat, 4 Mar 2023 15:07:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=AE=8F=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E5=B0=81=E8=A3=85checksum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MDK-ARM/LWIP.uvguix.29643 | 4 ++-- usersrc/udpclient.c | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) 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;