]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - winsrc/command.cpp
added eh_frame needed for gcc 4.4.1 or higher
[proxmark3-svn] / winsrc / command.cpp
index 929cff070c32359caf28b3b82937736a01f13a5f..f03bada4c00d7a57cd3716729f6215a9e68a1542 100644 (file)
@@ -1808,6 +1808,40 @@ static void CmdNorm(char *str)
        RepaintGraphWindow();\r
 }\r
 \r
+static void CmdAmp(char *str)\r
+{\r
+       int i, rising, falling;\r
+       int max = INT_MIN, min = INT_MAX;\r
+       for(i = 10; i < GraphTraceLen; i++) {\r
+               if(GraphBuffer[i] > max) {\r
+                       max = GraphBuffer[i];\r
+               }\r
+               if(GraphBuffer[i] < min) {\r
+                       min = GraphBuffer[i];\r
+               }\r
+       }\r
+       if(max != min) {\r
+               rising= falling= 0;\r
+               for(i = 0; i < GraphTraceLen; i++) {\r
+                       if(GraphBuffer[i+1] < GraphBuffer[i]) {\r
+                               if(rising) {\r
+                                       GraphBuffer[i]= max;\r
+                                       rising= 0;\r
+                                       }\r
+                               falling= 1;\r
+                               }\r
+                       if(GraphBuffer[i+1] > GraphBuffer[i]) {\r
+                               if(falling) {\r
+                                       GraphBuffer[i]= min;\r
+                                       falling= 0;\r
+                                       }\r
+                               rising= 1;\r
+                               }\r
+               }\r
+       }\r
+       RepaintGraphWindow();\r
+}\r
+\r
 static void CmdDec(char *str)\r
 {\r
        int i;\r
@@ -2238,9 +2272,11 @@ static void Cmdaskdemod(char *str) {
        int c, high = 0, low = 0;\r
 \r
        // TODO: complain if we do not give 2 arguments here !\r
+       // (AL - this doesn't make sense! we're only using one argument!!!)\r
        sscanf(str, "%i", &c);\r
 \r
        /* Detect high and lows and clock */\r
+       // (AL - clock???)\r
        for (i = 0; i < GraphTraceLen; i++)\r
        {\r
                if (GraphBuffer[i] > high)\r
@@ -2248,6 +2284,10 @@ static void Cmdaskdemod(char *str) {
                else if (GraphBuffer[i] < low)\r
                        low = GraphBuffer[i];\r
        }\r
+       if(c != 0 && c != 1) {\r
+               PrintToScrollback("Invalid argument: %s",str);\r
+               return;\r
+               }\r
 \r
        if (GraphBuffer[0] > 0) {\r
                GraphBuffer[0] = 1-c;\r
@@ -2794,7 +2834,8 @@ static struct {
        int             offline;  // 1 if the command can be used when in offline mode\r
        char            *docString;\r
 } CommandTable[] = {\r
-       {"askdemod",                    Cmdaskdemod,                            1, "<samples per bit> <0|1> -- Attempt to demodulate simple ASK tags"},\r
+       {"amp",                                 CmdAmp,                                         1, "Amplify peaks"},\r
+       {"askdemod",                    Cmdaskdemod,                            1, "<0|1> -- Attempt to demodulate simple ASK tags"},\r
        {"autocorr",                    CmdAutoCorr,                            1, "<window length> -- Autocorrelation over window"},\r
        {"bitsamples",          CmdBitsamples,                  0, "Get raw samples as bitstring"},\r
        {"bitstream",                   Cmdbitstream,                           1, "[clock rate] -- Convert waveform into a bitstream"},\r
Impressum, Datenschutz