From b69f9421fc35af50aa53e1b6b2ca5d5b46ebbcdb Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Tue, 6 Feb 2024 16:23:26 +0100 Subject: [PATCH] fix read image --- src/kds_s2000w_handler.c | 21 ++++++--------------- src/kds_s2000w_net.c | 6 +++--- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index 2390b91..92920c0 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -168,24 +168,9 @@ metadata kds_s2000w_handler_get_parameters(int image_number) 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); - - printf("current available images: %i\n", current_scan_status.available_images); printf("current downloaded images: %i\n", current_scan_status.downloaded_images); printf("complete_scanned: %i\n", current_scan_status.complete_scanned); - if (current_scan_status.available_images < image_number) { - mdata_value = NULL; - metadata = NULL; - json_object_put(metadataResp); - metadataResp = NULL; - mdata.valid = 0; - return mdata; - } resp = kds_s2000w_client_response_init(); kds_s2000w_client_get_metadata(state->sessionid, image_number, resp); @@ -243,5 +228,11 @@ metadata kds_s2000w_handler_get_parameters(int image_number) resp = NULL; 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); + return mdata; } \ No newline at end of file diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index fc9386a..fa31f8c 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -216,15 +216,15 @@ void _sane_kds_s2000w_net_cancel(SANE_Handle handle) SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, SANE_Int max_length, SANE_Int* length) { - printf("current size: %i\n", current_metadata.size); - if (read_size >= current_metadata.size) { + printf("is last: %i\n", current_metadata.is_last); + if (read_size >= current_metadata.is_last) { read_size = 0; return SANE_STATUS_EOF; _sane_kds_s2000w_net_cancel(NULL); } int length_count = 0; - while(length_count < max_length && read_size < current_metadata.size) { + while(length_count < max_length) { if (cancel) { *length = 0; kds_s2000w_handler_stop_scan(); -- 2.39.5