X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/e585a58ed1ec3ed10b264e736e5e20eb7285a668..905c55de2bbe642412b47ed4e92344096c817fac:/client/cmdlffdx.c?ds=inline diff --git a/client/cmdlffdx.c b/client/cmdlffdx.c index 6c0f0751..da22a833 100644 --- a/client/cmdlffdx.c +++ b/client/cmdlffdx.c @@ -72,12 +72,6 @@ static void verify_values(uint32_t countryid, uint64_t animalid){ } } -static uint16_t getFDXchksum (uint64_t raw){ - uint8_t arr[8]; - num_to_bytes(raw, 64, arr); - return crc16_ccitt_kermit(arr, 8); -} - int getFDXBits(uint64_t national_id, uint16_t country, uint8_t isanimal, uint8_t isextended, uint32_t extended, uint8_t *bits) { // add preamble ten 0x00 and one 0x01 @@ -117,7 +111,7 @@ int getFDXBits(uint64_t national_id, uint16_t country, uint8_t isanimal, uint8_t for (uint8_t i=0; i<8; ++i) raw[i] = bytebits_to_byte(bits + 11 + i * 9, 8); - crc = crc16_ccitt_kermit(raw, 8); + uint16_t crc = crc16_ccitt_kermit(raw, 8); num_to_bytebitsLSBF(crc >> 0, 8, bits+83); num_to_bytebitsLSBF(crc >> 8, 8, bits+92); @@ -155,6 +149,7 @@ int CmdFdxDemod(const char *Cmd) { } setDemodBuf(DemodBuffer, 128, ans); + setGrid_Clock(32); // remove marker bits (1's every 9th digit after preamble) (pType = 2) size = removeParity(DemodBuffer, 11, 9, 2, 117); if ( size != 104 ) { @@ -181,8 +176,8 @@ int CmdFdxDemod(const char *Cmd) { uint16_t calcCrc = crc16_ccitt_kermit(raw, 8); PrintAndLog("\nFDX-B / ISO 11784/5 Animal Tag ID Found: Raw : %s", sprint_hex(raw, 8)); - PrintAndLog("Animal ID %04u-%012llu", countryCode, NationalCode); - PrintAndLog("National Code %012llu (0x%llX)", NationalCode, NationalCode); + PrintAndLog("Animal ID %04u-%012" PRIu64, countryCode, NationalCode); + PrintAndLog("National Code %012" PRIu64 " (0x%" PRIx64 ")", NationalCode, NationalCode); PrintAndLog("Country Code %04u", countryCode); PrintAndLog("Reserved/RFU %u (0x04%X)", reservedCode, reservedCode); PrintAndLog(""); @@ -208,7 +203,7 @@ int CmdFdxClone(const char *Cmd) { uint32_t countryid = 0; uint64_t animalid = 0; - uint32_t blocks[5] = {T55x7_MODULATION_DIPHASE | T55x7_BITRATE_RF_32 | 4<>1) << T5555_BITRATE_SHIFT | 4 << T5555_MAXBLOCK_SHIFT; } verify_values(countryid, animalid); @@ -256,7 +251,7 @@ int CmdFdxClone(const char *Cmd) { c.arg[1] = i; clearCommandBuffer(); SendCommand(&c); - if (!WaitForResponseTimeout(CMD_ACK, &resp, 1000)){ + if (!WaitForResponseTimeout(CMD_ACK, &resp, T55XX_WRITE_TIMEOUT)){ PrintAndLog("Error occurred, device did not respond during write operation."); return -1; }