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>
<Name>..\usersrc\udpclient.c</Name>
<ColumnNumber>0</ColumnNumber>
<TopLine>168</TopLine>
<CurrentLine>201</CurrentLine>
<TopLine>164</TopLine>
<CurrentLine>171</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>

15
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;

Loading…
Cancel
Save