}
for (int i = 0; i < 10; i++) {
+ sleep(1);
current_metadata = kds_s2000w_handler_get_parameters(1);
printf("valid %i\n", current_metadata.valid);
if (current_metadata.valid)
break;
-
- sleep(1);
}
if (!current_metadata.valid)
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) {
read_size = 0;
return SANE_STATUS_EOF;
}
int length_count = 0;
- while(length_count < max_length) {
+ while(length_count < max_length && read_size < current_metadata.size) {
if (cancel) {
*length = 0;
kds_s2000w_handler_stop_scan();
+ sleep(1);
kds_s2000w_handler_close();
+ sleep(1);
kds_s2000w_handler_open();
return SANE_STATUS_CANCELLED;
}
data[length_count] = 0;
length_count++;
+ read_size++;
}
-
*length = length_count;
- read_size += length_count;
- sleep(1);
+ printf("length: %i\n", *length);
+ printf("read size: %i\n", read_size);
+
return SANE_STATUS_GOOD;
}