X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/7ac59a82ab5d244407254febf5dc9b7be892d2ad..c0a2ae50daa4857cbcfc4e702105d6bd5ce04883:/client/cmdlfvisa2000.c?ds=sidebyside diff --git a/client/cmdlfvisa2000.c b/client/cmdlfvisa2000.c index 292fa1a3..562b9bcd 100644 --- a/client/cmdlfvisa2000.c +++ b/client/cmdlfvisa2000.c @@ -4,8 +4,9 @@ // at your option, any later version. See the LICENSE.txt file for the text of // the license. //----------------------------------------------------------------------------- -// Low frequency visa 200 tag commands +// Low frequency visa 2000 tag commands // by iceman +// ASK/Manchester, RF/64, STT, 96 bits (complete) //----------------------------------------------------------------------------- #include "cmdlfvisa2000.h" @@ -83,12 +84,12 @@ static uint8_t visa_parity( uint32_t id) { /** * * 56495332 00096ebd 00000077 —> tag id 618173 -* aaaaaaaa iiiiiiii -----..c +* aaaaaaaa iiiiiiii -----ppc * * a = fixed value ascii 'VIS2' * i = card id +* p = even parity bit for each nibble in card id. * c = checksum (xor of card id) -* . = unknown * **/ //see ASKDemod for what args are accepted @@ -118,7 +119,7 @@ int CmdVisa2kDemod(const char *Cmd) { return 0; } setDemodBuf(DemodBuffer, 96, ans); - //setGrid_Clock(64); + setClockGrid(g_DemodClock, g_DemodStartIdx + (ans*g_DemodClock)); //got a good demod uint32_t raw1 = bytebits_to_byte(DemodBuffer, 32); @@ -146,9 +147,8 @@ int CmdVisa2kDemod(const char *Cmd) { } int CmdVisa2kRead(const char *Cmd) { - CmdLFRead("s"); //64*96*2=12288 samples just in case we just missed the first preamble we can still catch 2 of them - getSamples("12500",true); + lf_read(true, 12500); return CmdVisa2kDemod(Cmd); }