diff --git a/client/cmdlfawid.c b/client/cmdlfawid.c index 946656276..c2d4bc63b 100644 --- a/client/cmdlfawid.c +++ b/client/cmdlfawid.c @@ -383,7 +383,13 @@ static int CmdAWIDClone(const char *Cmd) { PacketResponseNG resp; + // fast push mode + conn.block_after_ACK = true; for (uint8_t i = 0; i < 4; i++) { + if (i == 3) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) { diff --git a/client/cmdlffdx.c b/client/cmdlffdx.c index d652673e8..49d91344b 100644 --- a/client/cmdlffdx.c +++ b/client/cmdlffdx.c @@ -283,7 +283,13 @@ static int CmdFdxClone(const char *Cmd) { PacketResponseNG resp; + // fast push mode + conn.block_after_ACK = true; for (int i = 4; i >= 0; --i) { + if (i == 0) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) { diff --git a/client/cmdlfguard.c b/client/cmdlfguard.c index a01b6dbaa..2476711ef 100644 --- a/client/cmdlfguard.c +++ b/client/cmdlfguard.c @@ -142,7 +142,6 @@ static int CmdGuardClone(const char *Cmd) { if (strlen(Cmd) == 0 || cmdp == 'h' || cmdp == 'H') return usage_lf_guard_clone(); uint32_t facilitycode = 0, cardnumber = 0, fc = 0, cn = 0, fmtlen = 0; - uint8_t i; uint8_t bs[96]; memset(bs, 0x00, sizeof(bs)); @@ -173,7 +172,13 @@ static int CmdGuardClone(const char *Cmd) { PacketResponseNG resp; - for (i = 0; i < 4; ++i) { + // fast push mode + conn.block_after_ACK = true; + for (uint8_t i = 0; i < 4; i++) { + if (i == 3) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) { diff --git a/client/cmdlfjablotron.c b/client/cmdlfjablotron.c index 4fea2b1b9..c2d4b6a78 100644 --- a/client/cmdlfjablotron.c +++ b/client/cmdlfjablotron.c @@ -157,7 +157,13 @@ static int CmdJablotronClone(const char *Cmd) { PacketResponseNG resp; + // fast push mode + conn.block_after_ACK = true; for (uint8_t i = 0; i < 3; i++) { + if (i == 2) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) { diff --git a/client/cmdlfkeri.c b/client/cmdlfkeri.c index f722837ba..b99560567 100644 --- a/client/cmdlfkeri.c +++ b/client/cmdlfkeri.c @@ -148,7 +148,13 @@ static int CmdKeriClone(const char *Cmd) { PacketResponseNG resp; + // fast push mode + conn.block_after_ACK = true; for (uint8_t i = 0; i < 3; i++) { + if (i == 2) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) { diff --git a/client/cmdlfnedap.c b/client/cmdlfnedap.c index ff5800322..417d4f6cf 100644 --- a/client/cmdlfnedap.c +++ b/client/cmdlfnedap.c @@ -204,7 +204,13 @@ static int CmdLFNedapClone(const char *Cmd) { PacketResponseNG resp; - for (uint8_t i = 0; i<5; ++i ) { + // fast push mode + conn.block_after_ACK = true; + for (uint8_t i = 0; i < 5; i++) { + if (i == 4) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){ diff --git a/client/cmdlfnoralsy.c b/client/cmdlfnoralsy.c index 9455ce916..667a80d16 100644 --- a/client/cmdlfnoralsy.c +++ b/client/cmdlfnoralsy.c @@ -156,7 +156,13 @@ static int CmdNoralsyClone(const char *Cmd) { PacketResponseNG resp; + // fast push mode + conn.block_after_ACK = true; for (uint8_t i = 0; i < 4; i++) { + if (i == 3) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) { diff --git a/client/cmdlfpresco.c b/client/cmdlfpresco.c index 8222bb0be..b710fd112 100644 --- a/client/cmdlfpresco.c +++ b/client/cmdlfpresco.c @@ -122,7 +122,13 @@ static int CmdPrescoClone(const char *Cmd) { PacketResponseNG resp; + // fast push mode + conn.block_after_ACK = true; for (uint8_t i = 0; i < 5; i++) { + if (i == 4) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) { diff --git a/client/cmdlfpyramid.c b/client/cmdlfpyramid.c index 0823abb77..f5d848672 100644 --- a/client/cmdlfpyramid.c +++ b/client/cmdlfpyramid.c @@ -234,7 +234,13 @@ static int CmdPyramidClone(const char *Cmd) { PacketResponseNG resp; - for (uint8_t i = 0; i < 5; ++i) { + // fast push mode + conn.block_after_ACK = true; + for (uint8_t i = 0; i < 5; i++) { + if (i == 4) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) { diff --git a/client/cmdlfvisa2000.c b/client/cmdlfvisa2000.c index 2980b0a5c..2d5808f29 100644 --- a/client/cmdlfvisa2000.c +++ b/client/cmdlfvisa2000.c @@ -168,7 +168,13 @@ static int CmdVisa2kClone(const char *Cmd) { PacketResponseNG resp; + // fast push mode + conn.block_after_ACK = true; for (uint8_t i = 0; i < 4; i++) { + if (i == 3) { + // Disable fast mode on last packet + conn.block_after_ACK = false; + } clearCommandBuffer(); SendCommandMIX(CMD_T55XX_WRITE_BLOCK, blocks[i], i, 0, NULL, 0); if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)) {