]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmddata.c
add: missing two hard_nested files..
[proxmark3-svn] / client / cmddata.c
index aaff0302f901e964017904749f81d85627dd6f26..3898f28d76fa4381c607d6a316401e0ea1848a5a 100644 (file)
@@ -934,15 +934,15 @@ char *GetFSKType(uint8_t fchigh, uint8_t fclow, uint8_t invert)
 int FSKrawDemod(const char *Cmd, bool verbose)
 {
        //raw fsk demod  no manchester decoding no start bit finding just get binary from wave
-       //set defaults
-       int rfLen = 0;
-       int invert = 0;
-       int fchigh = 0;
-       int fclow = 0;
+       uint8_t rfLen, invert, fchigh, fclow;
 
+       //set defaults
        //set options from parameters entered with the command
-       sscanf(Cmd, "%i %i %i %i", &rfLen, &invert, &fchigh, &fclow);
-
+       rfLen = param_get8ex(Cmd, 0, 0, 10);
+       invert = param_get8ex(Cmd, 1, 0, 10);
+       fchigh = param_get8ex(Cmd, 2, 0, 10);
+       fclow = param_get8ex(Cmd, 3, 0, 10);
+       
        if (strlen(Cmd)>0 && strlen(Cmd)<=2) {
                 if (rfLen==1){
                        invert = 1;   //if invert option only is used
@@ -958,31 +958,31 @@ int FSKrawDemod(const char *Cmd, bool verbose)
        if (fchigh==0 || fclow == 0){
                fcs = countFC(BitStream, BitLen, 1);
                if (fcs==0){
-                       fchigh=10;
-                       fclow=8;
-               }else{
+                       fchigh = 10;
+                       fclow = 8;
+               } else {
                        fchigh = (fcs >> 8) & 0xFF;
                        fclow = fcs & 0xFF;
                }
        }
+
        //get bit clock length
-       if (rfLen==0){
+       if (rfLen == 0){
                rfLen = detectFSKClk(BitStream, BitLen, fchigh, fclow);
                if (rfLen == 0) rfLen = 50;
        }
-       int size = fskdemod(BitStream,BitLen,(uint8_t)rfLen,(uint8_t)invert,(uint8_t)fchigh,(uint8_t)fclow);
-       if (size>0){
-               setDemodBuf(BitStream,size,0);
+       int size = fskdemod(BitStream, BitLen, rfLen, invert, fchigh, fclow);
+       if (size > 0){
+               setDemodBuf(BitStream, size, 0);
 
                // Now output the bitstream to the scrollback by line of 16 bits
                if (verbose || g_debugMode) {
-                       PrintAndLog("\nUsing Clock:%d, invert:%d, fchigh:%d, fclow:%d", rfLen, invert, fchigh, fclow);
-                       PrintAndLog("%s decoded bitstream:",GetFSKType(fchigh,fclow,invert));
+                       PrintAndLog("\nUsing Clock:%d, invert:%d, fchigh:%d, fclow:%u", rfLen, invert, fchigh, fclow);
+                       PrintAndLog("%s decoded bitstream:", GetFSKType(fchigh, fclow, invert));
                        printDemodBuff();
                }
-
                return 1;
-       } else{
+       } else {
                if (g_debugMode) PrintAndLog("no FSK data found");
        }
        return 0;
@@ -1987,7 +1987,11 @@ int getSamples(const char *Cmd, bool silent)
        GetFromBigBuf(got,n,0);
        PrintAndLog("Data fetched");
        UsbCommand response;
-       WaitForResponse(CMD_ACK, &response);
+       if ( !WaitForResponseTimeout(CMD_ACK, &response, 10000) ) {
+        PrintAndLog("timeout while waiting for reply.");
+               return 1;
+    }
+       
        uint8_t bits_per_sample = 8;
 
        //Old devices without this feature would send 0 at arg[0]
@@ -2030,9 +2034,9 @@ int CmdTuneSamples(const char *Cmd)
        int timeout = 0;
        printf("\nMeasuring antenna characteristics, please wait...");
 
-       UsbCommand c = {CMD_MEASURE_ANTENNA_TUNING};
+       UsbCommand c = {CMD_MEASURE_ANTENNA_TUNING, {0,0,0}};
+       clearCommandBuffer();
        SendCommand(&c);
-
        UsbCommand resp;
        while(!WaitForResponseTimeout(CMD_MEASURED_ANTENNA_TUNING,&resp,1000)) {
                timeout++;
@@ -2080,7 +2084,6 @@ int CmdTuneSamples(const char *Cmd)
                ShowGraphWindow();
                RepaintGraphWindow();
        }
-
        return 0;
 }
 
@@ -2096,7 +2099,7 @@ int CmdLoad(const char *Cmd)
        
        FILE *f = fopen(filename, "r");
        if (!f) {
-                PrintAndLog("couldn't open '%s'", filename);
+               PrintAndLog("couldn't open '%s'", filename);
                return 0;
        }
 
@@ -2115,11 +2118,13 @@ int CmdLoad(const char *Cmd)
 int CmdLtrim(const char *Cmd)
 {
        int ds = atoi(Cmd);
-       if (GraphTraceLen<=0) return 0;
+
+       if (GraphTraceLen <= 0) return 0;
+
        for (int i = ds; i < GraphTraceLen; ++i)
                GraphBuffer[i-ds] = GraphBuffer[i];
-       GraphTraceLen -= ds;
 
+       GraphTraceLen -= ds;
        RepaintGraphWindow();
        return 0;
 }
@@ -2128,9 +2133,7 @@ int CmdLtrim(const char *Cmd)
 int CmdRtrim(const char *Cmd)
 {
        int ds = atoi(Cmd);
-
        GraphTraceLen = ds;
-
        RepaintGraphWindow();
        return 0;
 }
Impressum, Datenschutz