X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/a553f2674865fa544d04ca7b8194e30c008644ae..db09cb3adbe715b058a64357184e4963a8b6d78e:/client/data.c diff --git a/client/data.c b/client/data.c index 80374c60..eeae8cc5 100644 --- a/client/data.c +++ b/client/data.c @@ -17,19 +17,20 @@ uint8_t sample_buf[SAMPLE_BUFFER_SIZE]; -void GetFromBigBuf(uint8_t *dest, int bytes) +void GetFromBigBuf(uint8_t *dest, int bytes, int start_index) { - int n = bytes/4; - - if (n % 48 != 0) { - PrintAndLog("bad len in GetFromBigBuf"); - return; - } - - for (int i = 0; i < n; i += 12) { - UsbCommand c = {CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K, {i, 0, 0}}; - SendCommand(&c); - WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K); - memcpy(dest+(i*4), sample_buf, 48); - } + start_index = ((start_index/12)*12); + int n = (((bytes/4)/48)*48) + start_index; + /* + if (n % 48 != 0) { + PrintAndLog("bad len in GetFromBigBuf"); + return; + } + */ + for (int i = start_index; i < n; i += 12) { + UsbCommand c = {CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K, {i, 0, 0}}; + SendCommand(&c); + WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K); + memcpy(dest+(i*4), sample_buf, 48); + } }