]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
lf cleaning++
authormarshmellow42 <marshmellowrf@gmail.com>
Tue, 7 Apr 2015 04:53:06 +0000 (00:53 -0400)
committermarshmellow42 <marshmellowrf@gmail.com>
Tue, 7 Apr 2015 04:53:06 +0000 (00:53 -0400)
data askedgedetect - removed unneeded code
lf em em4x50read bug fix / error checking
graph-save/restore auto repaint after restore.

client/cmddata.c
client/cmdlfem4x.c
client/graph.c

index 18b59f21bde0c836384c26f34ae7288d75259732..d838abd12d812b166688a04eed04eabed762602c 100644 (file)
@@ -850,23 +850,14 @@ int CmdAskEdgeDetect(const char *Cmd)
        int thresLen = 25;
        sscanf(Cmd, "%i", &thresLen); 
        int shift = 127;
-       int shiftedVal=0;
+
        for(int i = 1; i<GraphTraceLen; i++){
                if (GraphBuffer[i]-GraphBuffer[i-1]>=thresLen) //large jump up
-                       shift=127;
+                       GraphBuffer[i-1] = 127;
                else if(GraphBuffer[i]-GraphBuffer[i-1]<=-1*thresLen) //large jump down
-                       shift=-127;
-
-               shiftedVal=GraphBuffer[i]+shift;
-
-               if (shiftedVal>127) 
-                       shiftedVal=127;
-               else if (shiftedVal<-127) 
-                       shiftedVal=-127;
-               GraphBuffer[i-1] = shiftedVal;
+                       GraphBuffer[i-1] = -127;
        }
        RepaintGraphWindow();
-       //CmdNorm("");
        return 0;
 }
 
@@ -2171,7 +2162,7 @@ int CmdZerocrossings(const char *Cmd)
 static command_t CommandTable[] =
 {
        {"help",            CmdHelp,            1, "This help"},
-       {"askedgedetect",   CmdAskEdgeDetect,   1, "[threshold] Adjust Graph for manual ask demod using length of sample differences to detect the edge of a wave (default = 25)"},
+       {"askedgedetect",   CmdAskEdgeDetect,   1, "[threshold] Adjust Graph for manual ask demod using the length of sample differences to detect the edge of a wave (use 20-45, def:25)"},
        {"askem410xdemod",  CmdAskEM410xDemod,  1, "[clock] [invert<0|1>] [maxErr] -- Demodulate an EM410x tag from GraphBuffer (args optional)"},
        {"askgproxiidemod", CmdG_Prox_II_Demod, 1, "Demodulate a G Prox II tag from GraphBuffer"},
        {"autocorr",        CmdAutoCorr,        1, "[window length] [g] -- Autocorrelation over window - g to save back to GraphBuffer (overwrite)"},
index e45c788aad82a3ba5e64821bc0cb738ab7391c45..909045d34364d9bc1b35ee15af9d4e039414dba1 100644 (file)
@@ -323,6 +323,7 @@ int EM4x50Read(const char *Cmd, bool verbose)
        uint32_t Code[6];
        char tmp[6];
        char tmp2[20];
+       int phaseoff;
        high = low = 0;
        memset(tmpbuff, 0, MAX_GRAPH_TRACE_LEN / 64);
 
@@ -396,9 +397,11 @@ int EM4x50Read(const char *Cmd, bool verbose)
        startblock = i + 4;
 
        // skip over the remainder of LW
-       skip += tmpbuff[i+1] + tmpbuff[i+2] + clk + clk/8;
-       int phaseoff = tmpbuff[i+3]-clk;
-
+       skip += tmpbuff[i+1] + tmpbuff[i+2] + clk;
+       if (tmpbuff[i+3]>clk) 
+               phaseoff = tmpbuff[i+3]-clk;
+       else
+               phaseoff = 0;
        // now do it again to find the end
        end = skip;
        for (i += 3; i < j - 4 ; ++i) {
@@ -423,12 +426,6 @@ int EM4x50Read(const char *Cmd, bool verbose)
                        PrintAndLog("  or after a 'data askedge' command to clean up the read");
                        return 0;
                }
-               if (!complete)
-               {
-                       PrintAndLog("*** Warning!");
-                       PrintAndLog("Partial data - no end found!");
-                       PrintAndLog("Try again with more samples.");
-               }
        } else if (start < 0) return 0;
        start = skip;
        snprintf(tmp2, sizeof(tmp2),"%d %d 1000 %d", clk, invert, clk*47);
@@ -451,8 +448,12 @@ int EM4x50Read(const char *Cmd, bool verbose)
                                if (tmpbuff[i+1] >= clk-tol)
                                        break;
                }
+               if (i >= j-4) break; //next LW not found
                skip += clk;
-               phaseoff = tmpbuff[i+1]-clk;
+               if (tmpbuff[i+1]>clk)
+                       phaseoff = tmpbuff[i+1]-clk;
+               else
+                       phaseoff = 0;
                i += 2;
                if (ASKmanDemod(tmp2, false, false) < 1) {
                        save_restoreGB(0);
@@ -475,16 +476,22 @@ int EM4x50Read(const char *Cmd, bool verbose)
        }
        //print full code:
        if (verbose || g_debugMode || AllPTest){
+               if (!complete) {
+                       PrintAndLog("*** Warning!");
+                       PrintAndLog("Partial data - no end found!");
+                       PrintAndLog("Try again with more samples.");
+               }
                PrintAndLog("Found data at sample: %i - using clock: %i", start, clk);    
                end = block;
                for (block=0; block < end; block++){
                        PrintAndLog("Block %d: %08x",block,Code[block]);
                }
-               if (AllPTest)
+               if (AllPTest) {
                        PrintAndLog("Parities Passed");
-               else
+               } else {
                        PrintAndLog("Parities Failed");
                        PrintAndLog("Try cleaning the read samples with 'data askedge'");
+               }
        }
 
        //restore GraphBuffer
index 089119d9482fb163490962ab7489142b308f3161..3bea788112ef3e2a4121ccaf69789d8c77c4588a 100644 (file)
@@ -56,9 +56,10 @@ void save_restoreGB(uint8_t saveOpt)
                memcpy(SavedGB, GraphBuffer, sizeof(GraphBuffer));
                SavedGBlen = GraphTraceLen;
                GB_Saved=true;
-       } else if (GB_Saved){
+       } else if (GB_Saved){ //restore
                memcpy(GraphBuffer, SavedGB, sizeof(GraphBuffer));
                GraphTraceLen = SavedGBlen;
+               RepaintGraphWindow();
        }
        return;
 }
Impressum, Datenschutz