Merge branch 'master' into hitag

* master:
  Fix delay in acquisition and DoAcquisition_config usage. Fixes #524
  chg: 'data samples' - colors
  only set new timeout if its faster :)
This commit is contained in:
Philippe Teuwen 2020-01-15 16:28:27 +01:00
commit cfc76098c5
4 changed files with 12 additions and 9 deletions

View file

@ -2550,7 +2550,7 @@ void Cotag(uint32_t arg0) {
doCotagAcquisitionManchester(); doCotagAcquisitionManchester();
break; break;
case 2: case 2:
DoAcquisition_config(true, true); DoAcquisition_config(false, 0);
break; break;
} }

View file

@ -114,13 +114,15 @@ void initSampleBuffer(uint32_t *sample_size) {
data.buffer = BigBuf_get_addr(); data.buffer = BigBuf_get_addr();
memset(data.buffer, 0, *sample_size); // We can't erase the buffer now, it would drastically delay the acquisition
// memset(data.buffer, 0, *sample_size);
} else { } else {
*sample_size = MIN(*sample_size, BigBuf_max_traceLen()); *sample_size = MIN(*sample_size, BigBuf_max_traceLen());
data.buffer = BigBuf_malloc(*sample_size); data.buffer = BigBuf_malloc(*sample_size);
memset(data.buffer, 0, *sample_size); // We can't erase the buffer now, it would drastically delay the acquisition
// memset(data.buffer, 0, *sample_size);
} }
// //

View file

@ -194,7 +194,8 @@ int mifare_classic_authex(struct Crypto1State *pcs, uint32_t uid, uint8_t blockN
uint32_t save_timeout = iso14a_get_timeout(); uint32_t save_timeout = iso14a_get_timeout();
// set timeout for authentication response // set timeout for authentication response
iso14a_set_timeout(106); if (save_timeout > 106)
iso14a_set_timeout(106);
// Receive 4 byte tag answer // Receive 4 byte tag answer
len = ReaderReceive(receivedAnswer, receivedAnswerPar); len = ReaderReceive(receivedAnswer, receivedAnswerPar);

View file

@ -1599,7 +1599,7 @@ int getSamples(uint32_t n, bool verbose) {
if (n == 0 || n > sizeof(got)) if (n == 0 || n > sizeof(got))
n = sizeof(got); n = sizeof(got);
if (verbose) PrintAndLogEx(NORMAL, "Reading %d bytes from device memory\n", n); if (verbose) PrintAndLogEx(INFO, "Reading " _YELLOW_("%u") "bytes from device memory", n);
PacketResponseNG response; PacketResponseNG response;
if (!GetFromDevice(BIG_BUF, got, n, 0, NULL, 0, &response, 10000, true)) { if (!GetFromDevice(BIG_BUF, got, n, 0, NULL, 0, &response, 10000, true)) {
@ -1607,20 +1607,20 @@ int getSamples(uint32_t n, bool verbose) {
return PM3_ETIMEOUT; return PM3_ETIMEOUT;
} }
if (verbose) PrintAndLogEx(NORMAL, "Data fetched"); if (verbose) PrintAndLogEx(SUCCESS, "Data fetched");
uint8_t bits_per_sample = 8; uint8_t bits_per_sample = 8;
//Old devices without this feature would send 0 at arg[0] //Old devices without this feature would send 0 at arg[0]
if (response.oldarg[0] > 0) { if (response.oldarg[0] > 0) {
sample_config *sc = (sample_config *) response.data.asBytes; sample_config *sc = (sample_config *) response.data.asBytes;
if (verbose) PrintAndLogEx(NORMAL, "Samples @ %d bits/smpl, decimation 1:%d ", sc->bits_per_sample, sc->decimation); if (verbose) PrintAndLogEx(INFO, "Samples @ " _YELLOW_("%d") "bits/smpl, decimation 1:%d ", sc->bits_per_sample, sc->decimation);
bits_per_sample = sc->bits_per_sample; bits_per_sample = sc->bits_per_sample;
} }
if (bits_per_sample < 8) { if (bits_per_sample < 8) {
if (verbose) PrintAndLogEx(NORMAL, "Unpacking..."); if (verbose) PrintAndLogEx(INFO, "Unpacking...");
BitstreamOut bout = { got, bits_per_sample * n, 0}; BitstreamOut bout = { got, bits_per_sample * n, 0};
int j = 0; int j = 0;
@ -1630,7 +1630,7 @@ int getSamples(uint32_t n, bool verbose) {
} }
GraphTraceLen = j; GraphTraceLen = j;
if (verbose) PrintAndLogEx(NORMAL, "Unpacked %d samples", j); if (verbose) PrintAndLogEx(INFO, "Unpacked %d samples", j);
} else { } else {
for (int j = 0; j < n; j++) { for (int j = 0; j < n; j++) {