diff --git a/MDK-ARM/LWIP.uvguix.29643 b/MDK-ARM/LWIP.uvguix.29643 index ffcb337..f852e3a 100644 --- a/MDK-ARM/LWIP.uvguix.29643 +++ b/MDK-ARM/LWIP.uvguix.29643 @@ -93,8 +93,8 @@ 0 1 - -1 - -1 + -32000 + -32000 -1 @@ -110,8 +110,8 @@ 0 - 750 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000040000000100000056433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C757365726D61696E2E63000000000A757365726D61696E2E6300000000C5D4F200FFFFFFFF61433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C4D444B2D41524D5C737461727475705F73746D33326634303778782E730000000015737461727475705F73746D33326634303778782E7300000000FFDC7800FFFFFFFF4E433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C5372635C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF55433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C656E636F6465722E630000000009656E636F6465722E6300000000F0A0A100FFFFFFFF56433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C70726F746F636F6C2E68000000000A70726F746F636F6C2E6800000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000EB080000C5000000EE0D000090020000 + 866 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000006000000040000000100000056433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C757365726D61696E2E63000000000A757365726D61696E2E6300000000C5D4F200FFFFFFFF61433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C4D444B2D41524D5C737461727475705F73746D33326634303778782E730000000015737461727475705F73746D33326634303778782E7300000000FFDC7800FFFFFFFF4E433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C5372635C6D61696E2E6300000000066D61696E2E6300000000BECEA100FFFFFFFF55433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C656E636F6465722E630000000009656E636F6465722E6300000000F0A0A100FFFFFFFF56433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C70726F746F636F6C2E68000000000A70726F746F636F6C2E6800000000BCA8E100FFFFFFFF57433A5C55736572735C32393634335C4465736B746F705C705F6C7573746572696E635F63616D6572615F666F63616C6C656E6774685F656E636F6465725F72657365745C757365727372635C756470636C69656E742E63000000000B756470636C69656E742E63000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000EB080000C5000000EE0D000090020000 @@ -1806,7 +1806,7 @@ File 2537 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3642,9 +3642,18 @@ ..\usersrc\protocol.h - 27 - 2 - 16 + 0 + 8 + 31 + 1 + + 0 + + + ..\usersrc\udpclient.c + 0 + 273 + 296 1 0 diff --git a/usersrc/protocol.h b/usersrc/protocol.h index 3371ce7..15dccd3 100644 --- a/usersrc/protocol.h +++ b/usersrc/protocol.h @@ -6,7 +6,8 @@ #define adwin_config_protocol_size sizeof(adwin_config_protocol_t) #define active_report_data_size sizeof(active_report_data_t) -#define basic_report_data_size sizeof(basic_report_data_t) + +#define protocol_basic_size sizeof(protocol_basic_t) typedef enum { @@ -21,10 +22,17 @@ typedef enum PROTOCOL_CMD_CLEAR_ENCODER = 0X01, PROTOCOL_CMD_READ_ENCODER = 0X02, PROTOCOL_CMD_ACTIVE = 0X03, - PROTOCOL_CMD_TRIGGER_REPORT = 0X04, + PROTOCOL_CMD_TRIGGER = 0X04, PROTOCOL_CMD_MODIFY_NETWORK_CONFIGURATIONS = 0X05, } protocol_pc_and_control_cmd_id_type; +typedef enum +{ + PROTOCOL_STATUS_SUCCESS = 0X00, + PROTOCOL_STATUS_PARAMETER_ERROR = 0X01, + PROTOCOL_STATUS_HARDWARE_ERROR = 0X02, +} protocol_status_code_type; + #pragma pack(push, 1) typedef struct @@ -80,6 +88,17 @@ typedef struct } get_encoder_respont_t; /*********************************************************************************************************************** + * *******************************************************basic******************************************************* * + ***********************************************************************************************************************/ +/* 为了拿指令id而出来的指令格式 */ +typedef struct +{ + uint16_t index; /* */ + uint16_t cmd_id; /* 指令id */ + uint8_t checksum; /* 校验和 */ +} protocol_basic_t; + +/*********************************************************************************************************************** * ************************************************清除编码器数据指令************************************************* * ***********************************************************************************************************************/ typedef struct @@ -168,7 +187,7 @@ typedef struct uint8_t configuration_option; /* 配置选项 */ uint32_t data; /* 数据 */ uint8_t checksum; /* 校验和 */ -} protocol_network_config_order_t; +} protocol_modify_network_configurations_order_t; typedef struct { @@ -176,7 +195,7 @@ typedef struct uint16_t cmd_id; /* 指令id */ uint16_t status_code; /* 状态码 */ uint8_t checksum; /* 校验和 */ -} protocol_network_config_receipt_t; +} protocol_modify_network_configurations_receipt_t; /*********************************************************************************************************************** * **********************************************主动上报指令的协议格式*********************************************** * diff --git a/usersrc/udpclient.c b/usersrc/udpclient.c index f6886b2..2ba450d 100644 --- a/usersrc/udpclient.c +++ b/usersrc/udpclient.c @@ -13,7 +13,7 @@ if (computesum8((char *)data, recv_datalen - 1) != data->checksum) \ { \ printf("checksum error\r\n"); \ - return; \ + checksum_flag = false; \ } static bool udp_client_active_flag; @@ -36,6 +36,8 @@ static bool genlock_and_esync_active_flag; #define CLEAR_ENCODER_1 1 #define CLEAR_ENCODER_2 2 +#define ORDER_RECEIPT_INTERCONVERSION 0X8000 + static char s_sendBuf[BUFFER_SIZE]; // 发送数据的缓冲区 static char s_receBuf[BUFFER_SIZE]; // 接收数据的缓冲区 @@ -121,6 +123,23 @@ static void udp_client_all_encoder_light_set(encoder_light_state_t state) } } +/* ===================================================================== */ + +static void udp_client_clear_encoder_cmd_receipt(protocol_clear_encoder_order_t *order, protocol_status_code_type state_code) +{ + protocol_clear_encoder_receipt_t receipt; + receipt.index = order->index; + receipt.cmd_id = order->cmd_id + ORDER_RECEIPT_INTERCONVERSION; + receipt.status_code = state_code; + receipt.checksum = computesum8((char *)&receipt, sizeof(protocol_clear_encoder_receipt_t) - 1); + if (sendto(sock_Client, &receipt, sizeof(protocol_clear_encoder_receipt_t), 0, (struct sockaddr *)&addr_server, sizeof(struct sockaddr_in)) == SOCKET_ERROR) + { + printf("send basic_response error\r\n"); + } +} + +/* ===================================================================== */ + void udp_client_recv_data_dump(int recv_datalen) { /* debug使用 */ @@ -216,73 +235,113 @@ void udp_client_recv(void) void udp_client_parse(int recv_datalen) { + bool checksum_flag = true; if (recv_datalen >= adwin_config_protocol_size) { adwin_config_protocol_t *rxcmd = (adwin_config_protocol_t *)s_receBuf; active_report_data_structer.time_stamp_s = rxcmd->time_stamp_s; genlock_and_esync_active_flag = true; } - else if (recv_datalen <= basic_report_data_size) + else if (recv_datalen >= protocol_basic_size) { - basic_report_data_t *rxcmd = (basic_report_data_t *)s_receBuf; - get_encoder_report_t *get_encoder_cmd = (get_encoder_report_t *)s_receBuf; - switch (rxcmd->cmd_id) + // basic_report_data_t *rxcmd = (basic_report_data_t *)s_receBuf; + // get_encoder_report_t *get_encoder_cmd = (get_encoder_report_t *)s_receBuf; + // switch (rxcmd->cmd_id) + // { + // case CMD_SET_AUTOMATIC_REPORTING_FREQUENCY: /* 设置自动上报频率 */ + // cmd_checksum(rxcmd); + // if (rxcmd->data >= 10) + // { + // active_report_cycle = rxcmd->data; + // } + // udp_client_create_basic_response(rxcmd, recv_datalen); + // break; + // case CMD_GET_ENCODER_DATA: /* 获取编码器数据 */ + // cmd_checksum(get_encoder_cmd); + // udp_client_create_get_encoder_response(get_encoder_cmd, recv_datalen); + + // if (!udp_client_active_flag) + // { + // udp_client_all_encoder_light_set(STANDBY); + // } + + // break; + // case CMD_SET_ACTIVE: /* 设置主动上报 */ + // cmd_checksum(rxcmd); + // if ((rxcmd->data == AVTIVE_DISABLE) || (rxcmd->data == ACTIVE_ENABLE)) + // { + // udp_client_active_flag = rxcmd->data; + // if (udp_client_active_flag) + // { + // udp_client_all_encoder_light_set(WORKING); + // } + // else + // { + // udp_client_all_encoder_light_set(STANDBY); + // } + // } + // udp_client_create_basic_response(rxcmd, recv_datalen); + // break; + // case CMD_CLEAR_ENCODER: /* 清除编码器数据 */ + // cmd_checksum(rxcmd); + + // switch (rxcmd->data) + // { + // case CLEAR_ENCODER_ALL: + // encoder_all_encoder_clear_counter_and_structer_count(); + // break; + // case CLEAR_ENCODER_1: + // encoder_switch_encoder_clear_count_and_structer_count(CAMERA_ENCODER); + // break; + // case CLEAR_ENCODER_2: + // encoder_switch_encoder_clear_count_and_structer_count(DRIVEN_ENCODER_GEAR); + // break; + + // default: + // printf("not find clear encoder cmd\r\n"); + // break; + // } + + // udp_client_create_basic_response(rxcmd, recv_datalen); + + // break; + + // default: + // break; + // } + protocol_basic_t *protocol_basic_cmd = (protocol_basic_t *)s_receBuf; + protocol_clear_encoder_order_t *protocol_clear_encoder_cmd = (protocol_clear_encoder_order_t *)s_receBuf; + // protocol_read_encoder_order_t *protocol_read_encoder_cmd = (protocol_read_encoder_order_t *)s_receBuf; + // protocol_active_order_t *protocol_active_cmd = (protocol_active_order_t *)s_receBuf; + // protocol_trigger_order_t *protocol_trigger_cmd = (protocol_trigger_order_t *)s_receBuf; + // protocol_modify_network_configurations_order_t *protocol_modify_network_configurations_cmd = (protocol_modify_network_configurations_order_t *)s_receBuf; + switch (protocol_basic_cmd->cmd_id) { - case CMD_SET_AUTOMATIC_REPORTING_FREQUENCY: /* 设置自动上报频率 */ - cmd_checksum(rxcmd); - if (rxcmd->data >= 10) + case PROTOCOL_CMD_CLEAR_ENCODER: /* 清除编码器数据指令 */ + cmd_checksum(protocol_clear_encoder_cmd); + if (checksum_flag) { - active_report_cycle = rxcmd->data; + /* 校验通过 */ + encoder_all_encoder_clear_counter_and_structer_count(); + udp_client_clear_encoder_cmd_receipt(protocol_clear_encoder_cmd, PROTOCOL_STATUS_SUCCESS); } - udp_client_create_basic_response(rxcmd, recv_datalen); - break; - case CMD_GET_ENCODER_DATA: /* 获取编码器数据 */ - cmd_checksum(get_encoder_cmd); - udp_client_create_get_encoder_response(get_encoder_cmd, recv_datalen); - - if (!udp_client_active_flag) + else { - udp_client_all_encoder_light_set(STANDBY); + /* 校验未通过 */ + udp_client_clear_encoder_cmd_receipt(protocol_clear_encoder_cmd, PROTOCOL_STATUS_PARAMETER_ERROR); } break; - case CMD_SET_ACTIVE: /* 设置主动上报 */ - cmd_checksum(rxcmd); - if ((rxcmd->data == AVTIVE_DISABLE) || (rxcmd->data == ACTIVE_ENABLE)) - { - udp_client_active_flag = rxcmd->data; - if (udp_client_active_flag) - { - udp_client_all_encoder_light_set(WORKING); - } - else - { - udp_client_all_encoder_light_set(STANDBY); - } - } - udp_client_create_basic_response(rxcmd, recv_datalen); + case PROTOCOL_CMD_READ_ENCODER: /* 读取编码器数据指令 */ + break; - case CMD_CLEAR_ENCODER: /* 清除编码器数据 */ - cmd_checksum(rxcmd); + case PROTOCOL_CMD_ACTIVE: /* 配置主动上报指令 */ - switch (rxcmd->data) - { - case CLEAR_ENCODER_ALL: - encoder_all_encoder_clear_counter_and_structer_count(); - break; - case CLEAR_ENCODER_1: - encoder_switch_encoder_clear_count_and_structer_count(CAMERA_ENCODER); - break; - case CLEAR_ENCODER_2: - encoder_switch_encoder_clear_count_and_structer_count(DRIVEN_ENCODER_GEAR); - break; - - default: - printf("not find clear encoder cmd\r\n"); - break; - } + break; + case PROTOCOL_CMD_TRIGGER: /* 配置触发上报指令 */ - udp_client_create_basic_response(rxcmd, recv_datalen); + break; + case PROTOCOL_CMD_MODIFY_NETWORK_CONFIGURATIONS: /* 配置网络相关指令 */ break; @@ -290,6 +349,10 @@ void udp_client_parse(int recv_datalen) break; } } + else + { + /* error */ + } } void udp_client_active(void)