From 5e869ae9654beb7dc413d8b869759a9b9d625fcb Mon Sep 17 00:00:00 2001 From: tianjialong Date: Sat, 4 Mar 2023 17:38:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=BB=E5=8A=A8=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5udp=5Fclient=5Factive=5Fresponse=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- usersrc/udpclient.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/usersrc/udpclient.c b/usersrc/udpclient.c index 264753e..07856d1 100644 --- a/usersrc/udpclient.c +++ b/usersrc/udpclient.c @@ -50,6 +50,7 @@ active_report_data_t active_report_data_structer; static int active_report_cycle; static void active_report_data_structer_init(void) { + /* index在每次上报一次主动上报数据后+1,时间戳在获取ESync命令时更新,编码器数值在 active_report_data_structer_update中更新,校验和在上传数据前(udp_client_active_response)进行更新*/ active_report_data_structer.index = 0; /* */ active_report_data_structer.cmd_id = ACTIVE_ID; /* 指令id */ active_report_data_structer.time_stamp_s = 0; /* 时间戳 */ @@ -90,6 +91,15 @@ static void udp_client_create_get_encoder_response(get_encoder_report_t *get_enc } } +static void udp_client_active_response(void) +{ + active_report_data_structer.checksum = computesum8((char *)&active_report_data_structer, sizeof(active_report_data_t) - 1); + if (sendto(sock_Client, &active_report_data_structer, sizeof(active_report_data_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使用 */ @@ -257,7 +267,8 @@ void udp_cllient_active(void) { lastprocess = HAL_GetTick(); active_report_data_structer_update(); - printf("encoder1:%d,encoder2:%d\r\n", active_report_data_structer.encoder_1_count, active_report_data_structer.encoder_2_count); + udp_client_active_response(); + active_report_data_structer.index += 1; } } } @@ -267,8 +278,9 @@ void udp_cllient_genlock_and_esync_active(void) if (genlock_and_esync_active_flag) { active_report_data_structer_update(); - printf("encoder1:%d,encoder2:%d\r\n", active_report_data_structer.encoder_1_count, active_report_data_structer.encoder_2_count); - + udp_client_active_response(); + + active_report_data_structer.index += 1; active_report_data_structer.time_stamp_s = 0; genlock_and_esync_active_flag = false; }