]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/ui.c
FIXED: lf t55xx fsk now demods but only to binary.
[proxmark3-svn] / client / ui.c
index 1d85cc05f0eaa5e2ac1d6a1c392862baa15c79be..59ca72dcdc5496b497b2afb4a9a946a1f1c3a2aa 100644 (file)
@@ -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");   
        
 }
Impressum, Datenschutz