]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlf.c
Merge pull request #235 from marshmellow42/lfdemod_refactors
[proxmark3-svn] / client / cmdlf.c
index 2e786943e6db6e474cdc263d38ab56032567fafe..f34637db837379a234cac31c0578b9563adafcfc 100644 (file)
@@ -34,6 +34,7 @@
 #include "cmdlfpyramid.h"// for pyramid menu
 #include "cmdlfviking.h" // for viking menu
 #include "cmdlfcotag.h"  // for COTAG menu
+#include "cmdlfvisa2000.h"  // for VISA2000 menu
 
 bool g_lf_threshold_set = false;
 static int CmdHelp(const char *Cmd);
@@ -63,7 +64,7 @@ int CmdLFCommandRead(const char *Cmd)
 {
        static char dummy[3] = {0x20,0x00,0x00};
        UsbCommand c = {CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K};
-       bool errors = FALSE;
+       bool errors = false;
        //uint8_t divisor = 95; //125khz
        uint8_t cmdp = 0;
        while(param_getchar(Cmd, cmdp) != 0x00)
@@ -484,7 +485,7 @@ int CmdLFSetConfig(const char *Cmd)
        uint8_t bps = 0; // Bits per sample
        uint8_t decimation = 0; //How many to keep
        bool averaging = 1; // Defaults to true
-       bool errors = FALSE;
+       bool errors = false;
        int trigger_threshold =-1;//Means no change
        uint8_t unsigned_trigg = 0;
 
@@ -700,7 +701,7 @@ int CmdLFfskSim(const char *Cmd)
        // otherwise will need FChigh, FClow, Clock, and bitstream
        uint8_t fcHigh=0, fcLow=0, clk=0;
        uint8_t invert=0;
-       bool errors = FALSE;
+       bool errors = false;
        char hexData[32] = {0x00}; // store entered hex data
        uint8_t data[255] = {0x00}; 
        int dataLen = 0;
@@ -734,24 +735,24 @@ int CmdLFfskSim(const char *Cmd)
                case 'd':
                        dataLen = param_getstr(Cmd, cmdp+1, hexData);
                        if (dataLen==0) {
-                               errors=TRUE
+                               errors=true
                        } else {
                                dataLen = hextobinarray((char *)data, hexData);
                        }   
-                       if (dataLen==0) errors=TRUE
+                       if (dataLen==0) errors=true
                        if (errors) PrintAndLog ("Error getting hex data");
                        cmdp+=2;
                        break;
                default:
                        PrintAndLog("Unknown parameter '%c'", param_getchar(Cmd, cmdp));
-                       errors = TRUE;
+                       errors = true;
                        break;
                }
                if(errors) break;
        }
        if(cmdp == 0 && DemodBufferLen == 0)
        {
-               errors = TRUE;// No args
+               errors = true;// No args
        }
 
        //Validations
@@ -802,7 +803,7 @@ int CmdLFaskSim(const char *Cmd)
        // needs clock, invert, manchester/raw as m or r, separator as s, and bitstream
        uint8_t encoding = 1, separator = 0;
        uint8_t clk=0, invert=0;
-       bool errors = FALSE;
+       bool errors = false;
        char hexData[32] = {0x00}; 
        uint8_t data[255]= {0x00}; // store entered hex data
        int dataLen = 0;
@@ -840,24 +841,24 @@ int CmdLFaskSim(const char *Cmd)
                case 'd':
                        dataLen = param_getstr(Cmd, cmdp+1, hexData);
                        if (dataLen==0) {
-                               errors=TRUE
+                               errors=true
                        } else {
                                dataLen = hextobinarray((char *)data, hexData);
                        }
-                       if (dataLen==0) errors=TRUE
+                       if (dataLen==0) errors=true
                        if (errors) PrintAndLog ("Error getting hex data, datalen: %d",dataLen);
                                cmdp+=2;
                        break;
                default:
                        PrintAndLog("Unknown parameter '%c'", param_getchar(Cmd, cmdp));
-                       errors = TRUE;
+                       errors = true;
                        break;
                }
                if(errors) break;
        }
        if(cmdp == 0 && DemodBufferLen == 0)
        {
-               errors = TRUE;// No args
+               errors = true;// No args
        }
 
        //Validations
@@ -896,7 +897,7 @@ int CmdLFpskSim(const char *Cmd)
        //will need carrier, Clock, and bitstream
        uint8_t carrier=0, clk=0;
        uint8_t invert=0;
-       bool errors = FALSE;
+       bool errors = false;
        char hexData[32] = {0x00}; // store entered hex data
        uint8_t data[255] = {0x00}; 
        int dataLen = 0;
@@ -935,24 +936,24 @@ int CmdLFpskSim(const char *Cmd)
                case 'd':
                        dataLen = param_getstr(Cmd, cmdp+1, hexData);
                        if (dataLen==0) {
-                               errors=TRUE
+                               errors=true
                        } else {
                                dataLen = hextobinarray((char *)data, hexData);
                        }    
-                       if (dataLen==0) errors=TRUE
+                       if (dataLen==0) errors=true
                        if (errors) PrintAndLog ("Error getting hex data");
                        cmdp+=2;
                        break;
                default:
                        PrintAndLog("Unknown parameter '%c'", param_getchar(Cmd, cmdp));
-                       errors = TRUE;
+                       errors = true;
                        break;
                }
                if (errors) break;
        }
        if (cmdp == 0 && DemodBufferLen == 0)
        {
-               errors = TRUE;// No args
+               errors = true;// No args
        }
 
        //Validations
@@ -962,9 +963,9 @@ int CmdLFpskSim(const char *Cmd)
        }
        if (dataLen == 0){ //using DemodBuffer
                PrintAndLog("Getting Clocks");
-               if (clk==0) clk = GetPskClock("", FALSE, FALSE);
+               if (clk==0) clk = GetPskClock("", false, false);
                PrintAndLog("clk: %d",clk);
-               if (!carrier) carrier = GetPskCarrier("", FALSE, FALSE); 
+               if (!carrier) carrier = GetPskCarrier("", false, false); 
                PrintAndLog("carrier: %d", carrier);
        } else {
                setDemodBuf(data, dataLen, 0);
@@ -1195,6 +1196,12 @@ int CmdLFfind(const char *Cmd)
                return CheckChipType(cmdp);
        }
 
+       ans=CmdVisa2kDemod("");
+       if (ans>0) {
+               PrintAndLog("\nValid Visa2000 ID Found!");
+               return CheckChipType(cmdp);             
+       }
+       
        ans=CmdG_Prox_II_Demod("");
        if (ans>0) {
                PrintAndLog("\nValid G Prox II ID Found!");
@@ -1236,18 +1243,18 @@ int CmdLFfind(const char *Cmd)
                ans=CheckChipType(cmdp);
                //test unknown tag formats (raw mode)0
                PrintAndLog("\nChecking for Unknown tags:\n");
-               ans=AutoCorrelate(4000, FALSE, FALSE);
+               ans=AutoCorrelate(4000, false, false);
                if (ans > 0) PrintAndLog("Possible Auto Correlation of %d repeating samples",ans);
-               ans=GetFskClock("",FALSE,FALSE); 
+               ans=GetFskClock("",false,false); 
                if (ans != 0){ //fsk
-                       ans=FSKrawDemod("",TRUE);
+                       ans=FSKrawDemod("",true);
                        if (ans>0) {
                                PrintAndLog("\nUnknown FSK Modulated Tag Found!");
                                return 1;
                        }
                }
-               bool st = TRUE;
-               ans=ASKDemod_ext("0 0 0",TRUE,FALSE,1,&st);
+               bool st = true;
+               ans=ASKDemod_ext("0 0 0",true,false,1,&st);
                if (ans>0) {
                        PrintAndLog("\nUnknown ASK Modulated and Manchester encoded Tag Found!");
                        PrintAndLog("\nif it does not look right it could instead be ASK/Biphase - try 'data rawdemod ab'");
@@ -1274,12 +1281,13 @@ static command_t CommandTable[] =
        {"hid",         CmdLFHID,           1, "{ HID RFIDs...     }"},
        {"hitag",       CmdLFHitag,         1, "{ Hitag tags and transponders... }"},
        {"io",          CmdLFIO,            1, "{ ioProx tags...   }"},
-       {"presco",      CmdLFPresco,        1, "{ Presco RFIDs... }"},
+       {"presco",      CmdLFPresco,        1, "{ Presco RFIDs...  }"},
        {"pcf7931",     CmdLFPCF7931,       1, "{ PCF7931 RFIDs... }"},
        {"pyramid",     CmdLFPyramid,       1, "{ Farpointe/Pyramid RFIDs... }"},
        {"t55xx",       CmdLFT55XX,         1, "{ T55xx RFIDs...   }"},
        {"ti",          CmdLFTI,            1, "{ TI RFIDs...      }"},
        {"viking",      CmdLFViking,        1, "{ Viking tags...   }"},
+       {"visa2000",    CmdLFVisa2k,        1, "{ Visa2000 RFIDs...}"},
        {"cmdread",     CmdLFCommandRead,   0, "<d period> <z period> <o period> <c command> ['H'] -- Modulate LF reader field to send command before read (all periods in microseconds) (option 'H' for 134)"},
        {"config",      CmdLFSetConfig,     0, "Set config for LF sampling, bit/sample, decimation, frequency"},
        {"flexdemod",   CmdFlexdemod,       1, "Demodulate samples for FlexPass"},
Impressum, Datenschutz