From 1f82d4a12a2aca4025a2697efd652ba66634c1b6 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 5 Feb 2024 21:05:43 +0100 Subject: [PATCH] only download by available image --- src/kds_s2000w_handler.c | 39 ++++++++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 6496ab5..1e2d528 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -124,7 +124,7 @@ metadata kds_s2000w_handler_get_parameters(int image_number) int channels = 1; if (!current_scan_status.complete_scanned - && current_scan_status.available_images == current_scan_status.downloaded_images) { + && current_scan_status.downloaded_images == current_scan_status.available_images) { resp = kds_s2000w_client_response_init(); kds_s2000w_client_status_session(state->sessionid, resp); printf("response: %s\n", resp->data); @@ -142,22 +142,31 @@ metadata kds_s2000w_handler_get_parameters(int image_number) metadataResp = NULL; kds_s2000w_client_response_free(resp); resp = NULL; + sleep(1); } - if (image.size > 0) { - free(image.data); - image.data = NULL; - image.size = 0; + if (current_scan_status.downloaded_images < current_scan_status.available_images) { + if (image.size > 0) { + free(image.data); + image.data = NULL; + image.size = 0; + } + resp = kds_s2000w_client_response_init(); + kds_s2000w_client_get_image(state->sessionid, current_scan_status.current_image_number, resp); + image.size = resp->size; + image.data = malloc(sizeof(char) * resp->size); + memcpy(image.data, resp->data, resp->size); + kds_s2000w_client_response_free(resp); + resp = NULL; + current_scan_status.downloaded_images++; + sleep(1); + + resp = kds_s2000w_client_response_init(); + kds_s2000w_client_delete_image(state->sessionid, current_scan_status.current_image_number, resp); + kds_s2000w_client_response_free(resp); + resp = NULL; + sleep(1); } - resp = kds_s2000w_client_response_init(); - kds_s2000w_client_get_image(state->sessionid, current_scan_status.current_image_number, resp); - image.size = resp->size; - image.data = malloc(sizeof(char) * resp->size); - memcpy(image.data, resp->data, resp->size); - kds_s2000w_client_response_free(resp); - resp = NULL; - current_scan_status.downloaded_images++; - // TODO delete image printf("current available images: %i\n", current_scan_status.available_images); printf("current downloaded images: %i\n", current_scan_status.downloaded_images); @@ -171,7 +180,6 @@ metadata kds_s2000w_handler_get_parameters(int image_number) return mdata; } - sleep(1); resp = kds_s2000w_client_response_init(); kds_s2000w_client_get_metadata(state->sessionid, image_number, resp); if (resp->code != 200) { @@ -226,6 +234,7 @@ metadata kds_s2000w_handler_get_parameters(int image_number) metadata = NULL; kds_s2000w_client_response_free(resp); resp = NULL; + sleep(1); return mdata; } \ No newline at end of file -- 2.39.5