mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2024-09-20 23:36:31 +08:00
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:
commit
cfc76098c5
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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++) {
|
||||||
|
|
Loading…
Reference in a new issue