mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 05:43:48 -07:00
lf cleaning++
data askedgedetect - removed unneeded code lf em em4x50read bug fix / error checking graph-save/restore auto repaint after restore.
This commit is contained in:
parent
cc15a1187b
commit
49bbc60af3
3 changed files with 25 additions and 26 deletions
|
@ -850,23 +850,14 @@ int CmdAskEdgeDetect(const char *Cmd)
|
||||||
int thresLen = 25;
|
int thresLen = 25;
|
||||||
sscanf(Cmd, "%i", &thresLen);
|
sscanf(Cmd, "%i", &thresLen);
|
||||||
int shift = 127;
|
int shift = 127;
|
||||||
int shiftedVal=0;
|
|
||||||
for(int i = 1; i<GraphTraceLen; i++){
|
for(int i = 1; i<GraphTraceLen; i++){
|
||||||
if (GraphBuffer[i]-GraphBuffer[i-1]>=thresLen) //large jump up
|
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
|
else if(GraphBuffer[i]-GraphBuffer[i-1]<=-1*thresLen) //large jump down
|
||||||
shift=-127;
|
GraphBuffer[i-1] = -127;
|
||||||
|
|
||||||
shiftedVal=GraphBuffer[i]+shift;
|
|
||||||
|
|
||||||
if (shiftedVal>127)
|
|
||||||
shiftedVal=127;
|
|
||||||
else if (shiftedVal<-127)
|
|
||||||
shiftedVal=-127;
|
|
||||||
GraphBuffer[i-1] = shiftedVal;
|
|
||||||
}
|
}
|
||||||
RepaintGraphWindow();
|
RepaintGraphWindow();
|
||||||
//CmdNorm("");
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2171,7 +2162,7 @@ int CmdZerocrossings(const char *Cmd)
|
||||||
static command_t CommandTable[] =
|
static command_t CommandTable[] =
|
||||||
{
|
{
|
||||||
{"help", CmdHelp, 1, "This help"},
|
{"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)"},
|
{"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"},
|
{"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)"},
|
{"autocorr", CmdAutoCorr, 1, "[window length] [g] -- Autocorrelation over window - g to save back to GraphBuffer (overwrite)"},
|
||||||
|
|
|
@ -323,6 +323,7 @@ int EM4x50Read(const char *Cmd, bool verbose)
|
||||||
uint32_t Code[6];
|
uint32_t Code[6];
|
||||||
char tmp[6];
|
char tmp[6];
|
||||||
char tmp2[20];
|
char tmp2[20];
|
||||||
|
int phaseoff;
|
||||||
high = low = 0;
|
high = low = 0;
|
||||||
memset(tmpbuff, 0, MAX_GRAPH_TRACE_LEN / 64);
|
memset(tmpbuff, 0, MAX_GRAPH_TRACE_LEN / 64);
|
||||||
|
|
||||||
|
@ -396,9 +397,11 @@ int EM4x50Read(const char *Cmd, bool verbose)
|
||||||
startblock = i + 4;
|
startblock = i + 4;
|
||||||
|
|
||||||
// skip over the remainder of LW
|
// skip over the remainder of LW
|
||||||
skip += tmpbuff[i+1] + tmpbuff[i+2] + clk + clk/8;
|
skip += tmpbuff[i+1] + tmpbuff[i+2] + clk;
|
||||||
int phaseoff = tmpbuff[i+3]-clk;
|
if (tmpbuff[i+3]>clk)
|
||||||
|
phaseoff = tmpbuff[i+3]-clk;
|
||||||
|
else
|
||||||
|
phaseoff = 0;
|
||||||
// now do it again to find the end
|
// now do it again to find the end
|
||||||
end = skip;
|
end = skip;
|
||||||
for (i += 3; i < j - 4 ; ++i) {
|
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");
|
PrintAndLog(" or after a 'data askedge' command to clean up the read");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (!complete)
|
|
||||||
{
|
|
||||||
PrintAndLog("*** Warning!");
|
|
||||||
PrintAndLog("Partial data - no end found!");
|
|
||||||
PrintAndLog("Try again with more samples.");
|
|
||||||
}
|
|
||||||
} else if (start < 0) return 0;
|
} else if (start < 0) return 0;
|
||||||
start = skip;
|
start = skip;
|
||||||
snprintf(tmp2, sizeof(tmp2),"%d %d 1000 %d", clk, invert, clk*47);
|
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)
|
if (tmpbuff[i+1] >= clk-tol)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (i >= j-4) break; //next LW not found
|
||||||
skip += clk;
|
skip += clk;
|
||||||
phaseoff = tmpbuff[i+1]-clk;
|
if (tmpbuff[i+1]>clk)
|
||||||
|
phaseoff = tmpbuff[i+1]-clk;
|
||||||
|
else
|
||||||
|
phaseoff = 0;
|
||||||
i += 2;
|
i += 2;
|
||||||
if (ASKmanDemod(tmp2, false, false) < 1) {
|
if (ASKmanDemod(tmp2, false, false) < 1) {
|
||||||
save_restoreGB(0);
|
save_restoreGB(0);
|
||||||
|
@ -475,16 +476,22 @@ int EM4x50Read(const char *Cmd, bool verbose)
|
||||||
}
|
}
|
||||||
//print full code:
|
//print full code:
|
||||||
if (verbose || g_debugMode || AllPTest){
|
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);
|
PrintAndLog("Found data at sample: %i - using clock: %i", start, clk);
|
||||||
end = block;
|
end = block;
|
||||||
for (block=0; block < end; block++){
|
for (block=0; block < end; block++){
|
||||||
PrintAndLog("Block %d: %08x",block,Code[block]);
|
PrintAndLog("Block %d: %08x",block,Code[block]);
|
||||||
}
|
}
|
||||||
if (AllPTest)
|
if (AllPTest) {
|
||||||
PrintAndLog("Parities Passed");
|
PrintAndLog("Parities Passed");
|
||||||
else
|
} else {
|
||||||
PrintAndLog("Parities Failed");
|
PrintAndLog("Parities Failed");
|
||||||
PrintAndLog("Try cleaning the read samples with 'data askedge'");
|
PrintAndLog("Try cleaning the read samples with 'data askedge'");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//restore GraphBuffer
|
//restore GraphBuffer
|
||||||
|
|
|
@ -56,9 +56,10 @@ void save_restoreGB(uint8_t saveOpt)
|
||||||
memcpy(SavedGB, GraphBuffer, sizeof(GraphBuffer));
|
memcpy(SavedGB, GraphBuffer, sizeof(GraphBuffer));
|
||||||
SavedGBlen = GraphTraceLen;
|
SavedGBlen = GraphTraceLen;
|
||||||
GB_Saved=true;
|
GB_Saved=true;
|
||||||
} else if (GB_Saved){
|
} else if (GB_Saved){ //restore
|
||||||
memcpy(GraphBuffer, SavedGB, sizeof(GraphBuffer));
|
memcpy(GraphBuffer, SavedGB, sizeof(GraphBuffer));
|
||||||
GraphTraceLen = SavedGBlen;
|
GraphTraceLen = SavedGBlen;
|
||||||
|
RepaintGraphWindow();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue