diff --git a/hgdriver/hgdev/hg_scanner_239.cpp b/hgdriver/hgdev/hg_scanner_239.cpp index 3928b1a..d311b05 100644 --- a/hgdriver/hgdev/hg_scanner_239.cpp +++ b/hgdriver/hgdev/hg_scanner_239.cpp @@ -1696,7 +1696,25 @@ int hg_scanner_239::get_device_log(string &logpath) return ret; str.resize(buffersize); - ret = io_->read_bulk(&str[0],&buffersize); + int block = buffersize, + total = buffersize, + index = 0; + + while (total > 0) + { + block = 512 * 1024; + if (total< block) + { + block = total; + } + ret = io_->read_bulk(&str[index], &block); + if (ret != SCANNER_ERR_OK) + return ret; + + index += block; + total -= block; + } + if (ret != SCANNER_ERR_OK) return ret;