Browse Source

使用宏定义二次封装checksum

external_Interrupt
tianjialong 2 years ago
parent
commit
794188ef3e
  1. 4
      MDK-ARM/LWIP.uvguix.29643
  2. 15
      usersrc/udpclient.c

4
MDK-ARM/LWIP.uvguix.29643

@ -3742,8 +3742,8 @@
<Doc> <Doc>
<Name>..\usersrc\udpclient.c</Name> <Name>..\usersrc\udpclient.c</Name>
<ColumnNumber>0</ColumnNumber> <ColumnNumber>0</ColumnNumber>
<TopLine>168</TopLine>
<CurrentLine>201</CurrentLine>
<TopLine>164</TopLine>
<CurrentLine>171</CurrentLine>
<Folding>1</Folding> <Folding>1</Folding>
<ContractedFolders></ContractedFolders> <ContractedFolders></ContractedFolders>
<PaneID>0</PaneID> <PaneID>0</PaneID>

15
usersrc/udpclient.c

@ -10,6 +10,13 @@
#include "encoder.h" #include "encoder.h"
#include "zport.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; 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) else if (recv_datalen <= basic_report_data_size)
{ {
basic_report_data_t *rxcmd = (basic_report_data_t *)s_receBuf; 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) switch (rxcmd->cmd_id)
{ {
case CMD_SET_AUTOMATIC_REPORTING_FREQUENCY: /* 设置自动上报频率 */ case CMD_SET_AUTOMATIC_REPORTING_FREQUENCY: /* 设置自动上报频率 */
cmd_checksum(rxcmd);
if (rxcmd->data >= 10) if (rxcmd->data >= 10)
{ {
active_report_cycle = rxcmd->data; active_report_cycle = rxcmd->data;
@ -180,6 +182,7 @@ void udp_client_parse(int recv_datalen)
/* code */ /* code */
break; break;
case CMD_SET_ACTIVE: /* 设置主动上报 */ case CMD_SET_ACTIVE: /* 设置主动上报 */
cmd_checksum(rxcmd);
if ((rxcmd->data == 0) || (rxcmd->data == 1)) if ((rxcmd->data == 0) || (rxcmd->data == 1))
{ {
udp_client_active_flag = rxcmd->data; udp_client_active_flag = rxcmd->data;

Loading…
Cancel
Save