mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-02-13 18:57:12 +08:00
Added enios dirthreshold command, patch from http://www.proxmark.org/forum/viewtopic.php?pid=11577#p11577
This commit is contained in:
parent
e3dc1e4cf5
commit
d51b2eda8f
2 changed files with 38 additions and 0 deletions
|
@ -17,6 +17,7 @@
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "graph.h"
|
#include "graph.h"
|
||||||
#include "cmdparser.h"
|
#include "cmdparser.h"
|
||||||
|
#include "util.h"
|
||||||
#include "cmdmain.h"
|
#include "cmdmain.h"
|
||||||
#include "cmddata.h"
|
#include "cmddata.h"
|
||||||
|
|
||||||
|
@ -818,6 +819,41 @@ int CmdThreshold(const char *Cmd)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int CmdDirectionalThreshold(const char *Cmd)
|
||||||
|
{
|
||||||
|
int8_t upThres = param_get8(Cmd, 0);
|
||||||
|
int8_t downThres = param_get8(Cmd, 1);
|
||||||
|
|
||||||
|
printf("Applying Up Threshold: %d, Down Threshold: %d\n", upThres, downThres);
|
||||||
|
|
||||||
|
int lastValue = GraphBuffer[0];
|
||||||
|
GraphBuffer[0] = 0; // Will be changed at the end, but init 0 as we adjust to last samples value if no threshold kicks in.
|
||||||
|
|
||||||
|
for (int i = 1; i < GraphTraceLen; ++i) {
|
||||||
|
// Apply first threshold to samples heading up
|
||||||
|
if (GraphBuffer[i] >= upThres && GraphBuffer[i] > lastValue)
|
||||||
|
{
|
||||||
|
lastValue = GraphBuffer[i]; // Buffer last value as we overwrite it.
|
||||||
|
GraphBuffer[i] = 1;
|
||||||
|
}
|
||||||
|
// Apply second threshold to samples heading down
|
||||||
|
else if (GraphBuffer[i] <= downThres && GraphBuffer[i] < lastValue)
|
||||||
|
{
|
||||||
|
lastValue = GraphBuffer[i]; // Buffer last value as we overwrite it.
|
||||||
|
GraphBuffer[i] = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lastValue = GraphBuffer[i]; // Buffer last value as we overwrite it.
|
||||||
|
GraphBuffer[i] = GraphBuffer[i-1];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GraphBuffer[0] = GraphBuffer[1]; // Aline with first edited sample.
|
||||||
|
RepaintGraphWindow();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int CmdZerocrossings(const char *Cmd)
|
int CmdZerocrossings(const char *Cmd)
|
||||||
{
|
{
|
||||||
// Zero-crossings aren't meaningful unless the signal is zero-mean.
|
// Zero-crossings aren't meaningful unless the signal is zero-mean.
|
||||||
|
@ -874,6 +910,7 @@ static command_t CommandTable[] =
|
||||||
{"scale", CmdScale, 1, "<int> -- Set cursor display scale"},
|
{"scale", CmdScale, 1, "<int> -- Set cursor display scale"},
|
||||||
{"threshold", CmdThreshold, 1, "<threshold> -- Maximize/minimize every value in the graph window depending on threshold"},
|
{"threshold", CmdThreshold, 1, "<threshold> -- Maximize/minimize every value in the graph window depending on threshold"},
|
||||||
{"zerocrossings", CmdZerocrossings, 1, "Count time between zero-crossings"},
|
{"zerocrossings", CmdZerocrossings, 1, "Count time between zero-crossings"},
|
||||||
|
{"dirthreshold", CmdDirectionalThreshold, 1, "<thres up> <thres down> -- Max rising higher up-thres/ Min falling lower down-thres, keep rest as prev."},
|
||||||
{NULL, NULL, 0, NULL}
|
{NULL, NULL, 0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ int CmdSamples(const char *Cmd);
|
||||||
int CmdSave(const char *Cmd);
|
int CmdSave(const char *Cmd);
|
||||||
int CmdScale(const char *Cmd);
|
int CmdScale(const char *Cmd);
|
||||||
int CmdThreshold(const char *Cmd);
|
int CmdThreshold(const char *Cmd);
|
||||||
|
int CmdDirectionalThreshold(const char *Cmd);
|
||||||
int CmdZerocrossings(const char *Cmd);
|
int CmdZerocrossings(const char *Cmd);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue