From 22dad655e6df38ff9adcd08d5d55e7346c6f0c6e Mon Sep 17 00:00:00 2001 From: tianjialong Date: Fri, 17 Mar 2023 14:03:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=BB=E5=8F=96=E7=BC=96=E7=A0=81=E5=99=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8C=87=E4=BB=A4=E5=AE=8C=E6=88=90=E5=B9=B6?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- usersrc/udpclient.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/usersrc/udpclient.c b/usersrc/udpclient.c index 2ba450d..91e70a8 100644 --- a/usersrc/udpclient.c +++ b/usersrc/udpclient.c @@ -138,6 +138,21 @@ static void udp_client_clear_encoder_cmd_receipt(protocol_clear_encoder_order_t } } +static void udp_client_read_encoder_cmd_receipt(protocol_read_encoder_order_t *order) +{ + protocol_read_encoder_receipt_t receipt; + receipt.index = order->index; + receipt.cmd_id = order->cmd_id + ORDER_RECEIPT_INTERCONVERSION; + active_report_data_structer_update(); + receipt.encoder1 = active_report_data_structer.encoder_1_count; + receipt.encoder2 = active_report_data_structer.encoder_2_count; + receipt.checksum = computesum8((char *)&receipt, sizeof(protocol_read_encoder_receipt_t) - 1); + if (sendto(sock_Client, &receipt, sizeof(protocol_read_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) @@ -311,7 +326,7 @@ void udp_client_parse(int recv_datalen) // } 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_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; @@ -333,7 +348,16 @@ void udp_client_parse(int recv_datalen) break; case PROTOCOL_CMD_READ_ENCODER: /* 读取编码器数据指令 */ - + cmd_checksum(protocol_read_encoder_cmd); + if (checksum_flag) + { + /* 校验通过 */ + udp_client_read_encoder_cmd_receipt(protocol_read_encoder_cmd); + } + else + { + /* 校验未通过 */ + } break; case PROTOCOL_CMD_ACTIVE: /* 配置主动上报指令 */