X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/7bd30f12ac6def96c82df20ed7d927160db289af..72e930ef3206224ae0ff0696a8a146a0b26268f7:/client/ui.c diff --git a/client/ui.c b/client/ui.c index 1d85cc05..59ca72dc 100644 --- a/client/ui.c +++ b/client/ui.c @@ -116,17 +116,14 @@ int manchester_decode( int * data, const size_t len, uint8_t * dataout){ clock = GetT55x7Clock( data, len, high ); startindex = DetectFirstTransition(data, len, high); - //PrintAndLog(" Clock : %d", clock); - //PrintAndLog(" startindex : %d", startindex); + PrintAndLog(" Clock : %d", clock); + PrintAndLog(" startindex : %d", startindex); if (high != 1) bitlength = ManchesterConvertFrom255(data, len, bitStream, high, low, clock, startindex); else bitlength= ManchesterConvertFrom1(data, len, bitStream, clock, startindex); - //if ( bitlength > 0 ) - // PrintPaddedManchester(bitStream, bitlength, clock); - memcpy(dataout, bitStream, bitlength); return bitlength; } @@ -558,8 +555,14 @@ void iceFsk3(int * data, const size_t len){ int stopOne = j-1; int fieldlen = stopOne-startOne; - printf("FIELD Length: %d \n", fieldlen); + fieldlen = (fieldlen == 39 || fieldlen == 41)? 40 : fieldlen; + fieldlen = (fieldlen == 59 || fieldlen == 51)? 50 : fieldlen; + if ( fieldlen != 40 && fieldlen != 50){ + printf("Detected field Length: %d \n", fieldlen); + printf("Can only handle len 40 or 50. Aborting..."); + return; + } // FSK sequence start == 000111 int startPos = 0; @@ -576,25 +579,21 @@ void iceFsk3(int * data, const size_t len){ printf("000111 position: %d \n", startPos); - startPos += 6*fieldlen+1; + startPos += 6*fieldlen+5; + int bit =0; printf("BINARY\n"); printf("R/40 : "); for (i =startPos ; i < len; i += 40){ - if ( data[i] > 0 ) - printf("1"); - else - printf("0"); + bit = data[i]>0 ? 1:0; + printf("%d", bit ); } printf("\n"); printf("R/50 : "); for (i =startPos ; i < len; i += 50){ - if ( data[i] > 0 ) - printf("1"); - else - printf("0"); - } + bit = data[i]>0 ? 1:0; + printf("%d", bit ); } printf("\n"); }