mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 22:03:42 -07:00
Merge pull request #2190 from wh201906/lf_stuff
Use real-time sampling with high sample size
This commit is contained in:
commit
7895b322a1
1 changed files with 14 additions and 16 deletions
|
@ -773,10 +773,11 @@ int CmdLFRead(const char *Cmd) {
|
||||||
CLIParserInit(&ctx, "lf read",
|
CLIParserInit(&ctx, "lf read",
|
||||||
"Sniff low frequency signal.\n"
|
"Sniff low frequency signal.\n"
|
||||||
" - use " _YELLOW_("`lf config`") _CYAN_(" to set parameters.\n")
|
" - use " _YELLOW_("`lf config`") _CYAN_(" to set parameters.\n")
|
||||||
_CYAN_(" - use ") _YELLOW_("`data plot`") _CYAN_(" to look at it"),
|
_CYAN_(" - use ") _YELLOW_("`data plot`") _CYAN_(" to look at it.\n")
|
||||||
|
_CYAN_("If the number of samples is more than the device memory limit (40000 now), ")
|
||||||
|
_CYAN_("it will try to use the real-time sampling mode."),
|
||||||
"lf read -v -s 12000 --> collect 12000 samples\n"
|
"lf read -v -s 12000 --> collect 12000 samples\n"
|
||||||
"lf read -s 3000 -@ --> oscilloscope style \n"
|
"lf read -s 3000 -@ --> oscilloscope style \n"
|
||||||
"lf read -r --> use real-time mode \n"
|
|
||||||
);
|
);
|
||||||
|
|
||||||
void *argtable[] = {
|
void *argtable[] = {
|
||||||
|
@ -784,23 +785,21 @@ int CmdLFRead(const char *Cmd) {
|
||||||
arg_u64_0("s", "samples", "<dec>", "number of samples to collect"),
|
arg_u64_0("s", "samples", "<dec>", "number of samples to collect"),
|
||||||
arg_lit0("v", "verbose", "verbose output"),
|
arg_lit0("v", "verbose", "verbose output"),
|
||||||
arg_lit0("@", NULL, "continuous reading mode"),
|
arg_lit0("@", NULL, "continuous reading mode"),
|
||||||
arg_lit0("r", "realtime", "real-time reading mode"),
|
|
||||||
arg_param_end
|
arg_param_end
|
||||||
};
|
};
|
||||||
CLIExecWithReturn(ctx, Cmd, argtable, true);
|
CLIExecWithReturn(ctx, Cmd, argtable, true);
|
||||||
uint64_t samples = arg_get_u64_def(ctx, 1, 0);
|
uint64_t samples = arg_get_u64_def(ctx, 1, 0);
|
||||||
bool verbose = arg_get_lit(ctx, 2);
|
bool verbose = arg_get_lit(ctx, 2);
|
||||||
bool cm = arg_get_lit(ctx, 3);
|
bool cm = arg_get_lit(ctx, 3);
|
||||||
bool realtime = arg_get_lit(ctx, 4);
|
|
||||||
CLIParserFree(ctx);
|
CLIParserFree(ctx);
|
||||||
|
|
||||||
|
// the 40000 there should be the result of BigBuf_max_traceLen(),
|
||||||
|
// but IDK how to get it.
|
||||||
|
bool realtime = samples > 40000;
|
||||||
|
|
||||||
if (g_session.pm3_present == false)
|
if (g_session.pm3_present == false)
|
||||||
return PM3_ENOTTY;
|
return PM3_ENOTTY;
|
||||||
|
|
||||||
if (realtime && samples == 0) {
|
|
||||||
samples = MAX_GRAPH_TRACE_LEN;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cm || realtime) {
|
if (cm || realtime) {
|
||||||
PrintAndLogEx(INFO, "Press " _GREEN_("<Enter>") " to exit");
|
PrintAndLogEx(INFO, "Press " _GREEN_("<Enter>") " to exit");
|
||||||
}
|
}
|
||||||
|
@ -885,10 +884,11 @@ int CmdLFSniff(const char *Cmd) {
|
||||||
"\n"
|
"\n"
|
||||||
" - use " _YELLOW_("`lf config`") _CYAN_(" to set parameters.\n")
|
" - use " _YELLOW_("`lf config`") _CYAN_(" to set parameters.\n")
|
||||||
_CYAN_(" - use ") _YELLOW_("`data plot`") _CYAN_(" to look at sniff signal.\n")
|
_CYAN_(" - use ") _YELLOW_("`data plot`") _CYAN_(" to look at sniff signal.\n")
|
||||||
_CYAN_(" - use ") _YELLOW_("`lf search -1`") _CYAN_(" to see if signal can be automatic decoded\n"),
|
_CYAN_(" - use ") _YELLOW_("`lf search -1`") _CYAN_(" to see if signal can be automatic decoded.\n")
|
||||||
|
_CYAN_("If the number of samples is more than the device memory limit (40000 now), ")
|
||||||
|
_CYAN_("it will try to use the real-time sampling mode."),
|
||||||
"lf sniff -v\n"
|
"lf sniff -v\n"
|
||||||
"lf sniff -s 3000 -@ --> oscilloscope style \n"
|
"lf sniff -s 3000 -@ --> oscilloscope style \n"
|
||||||
"lf sniff -r --> use real-time mode \n"
|
|
||||||
);
|
);
|
||||||
|
|
||||||
void *argtable[] = {
|
void *argtable[] = {
|
||||||
|
@ -896,23 +896,21 @@ int CmdLFSniff(const char *Cmd) {
|
||||||
arg_u64_0("s", "samples", "<dec>", "number of samples to collect"),
|
arg_u64_0("s", "samples", "<dec>", "number of samples to collect"),
|
||||||
arg_lit0("v", "verbose", "verbose output"),
|
arg_lit0("v", "verbose", "verbose output"),
|
||||||
arg_lit0("@", NULL, "continuous sniffing mode"),
|
arg_lit0("@", NULL, "continuous sniffing mode"),
|
||||||
arg_lit0("r", "realtime", "real-time sniffing mode"),
|
|
||||||
arg_param_end
|
arg_param_end
|
||||||
};
|
};
|
||||||
CLIExecWithReturn(ctx, Cmd, argtable, true);
|
CLIExecWithReturn(ctx, Cmd, argtable, true);
|
||||||
uint64_t samples = arg_get_u64_def(ctx, 1, 0);
|
uint64_t samples = arg_get_u64_def(ctx, 1, 0);
|
||||||
bool verbose = arg_get_lit(ctx, 2);
|
bool verbose = arg_get_lit(ctx, 2);
|
||||||
bool cm = arg_get_lit(ctx, 3);
|
bool cm = arg_get_lit(ctx, 3);
|
||||||
bool realtime = arg_get_lit(ctx, 4);
|
|
||||||
CLIParserFree(ctx);
|
CLIParserFree(ctx);
|
||||||
|
|
||||||
|
// the 40000 there should be the result of BigBuf_max_traceLen(),
|
||||||
|
// but IDK how to get it.
|
||||||
|
bool realtime = samples > 40000;
|
||||||
|
|
||||||
if (g_session.pm3_present == false)
|
if (g_session.pm3_present == false)
|
||||||
return PM3_ENOTTY;
|
return PM3_ENOTTY;
|
||||||
|
|
||||||
if (realtime && samples == 0) {
|
|
||||||
samples = MAX_GRAPH_TRACE_LEN;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cm || realtime) {
|
if (cm || realtime) {
|
||||||
PrintAndLogEx(INFO, "Press " _GREEN_("<Enter>") " to exit");
|
PrintAndLogEx(INFO, "Press " _GREEN_("<Enter>") " to exit");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue