X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/7fe9b0b742d7dae9c5af1d292d11840b5c3cbfae..28fdb04fd8d62e46c36f959b373d662f1a146448:/client/cmddata.c diff --git a/client/cmddata.c b/client/cmddata.c index e3a8c54c..6c2c7841 100644 --- a/client/cmddata.c +++ b/client/cmddata.c @@ -1,8 +1,19 @@ +//----------------------------------------------------------------------------- +// Copyright (C) 2010 iZsh +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Data and Graph commands +//----------------------------------------------------------------------------- + #include #include #include #include -#include "proxusb.h" +//#include "proxusb.h" +#include "proxmark3.h" #include "data.h" #include "ui.h" #include "graph.h" @@ -148,7 +159,7 @@ int CmdBitsamples(const char *Cmd) for (int i = 0; i < n; i += 12) { UsbCommand c = {CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K, {i, 0, 0}}; SendCommand(&c); - WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K); + WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K, NULL); for (int j = 0; j < 48; j++) { for (int k = 0; k < 8; k++) { @@ -378,6 +389,8 @@ int CmdFSKdemod(const char *Cmd) int CmdGrid(const char *Cmd) { sscanf(Cmd, "%i %i", &PlotGridX, &PlotGridY); + PlotGridXdefault= PlotGridX; + PlotGridYdefault= PlotGridY; RepaintGraphWindow(); return 0; } @@ -406,7 +419,7 @@ int CmdHexsamples(const char *Cmd) for (int i = offset; i < n+offset; i += 12) { UsbCommand c = {CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K, {i, 0, 0}}; SendCommand(&c); - WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K); + WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K, NULL); for (int j = 0; j < 48; j += 8) { PrintAndLog("%02x %02x %02x %02x %02x %02x %02x %02x", sample_buf[j+0], @@ -429,30 +442,6 @@ int CmdHexsamples(const char *Cmd) return 0; } -int CmdHFSamples(const char *Cmd) -{ - int cnt = 0; - int n = strtol(Cmd, NULL, 0); - - if(n == 0) { - n = 1000; - } else { - n/= 4; - } - - for (int i = 0; i < n; i += 12) { - UsbCommand c = {CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K, {i, 0, 0}}; - SendCommand(&c); - WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K); - for (int j = 0; j < 48; ++j) { - GraphBuffer[cnt++] = (int)(sample_buf[j]); - } - } - GraphTraceLen = cnt; - RepaintGraphWindow(); - return 0; -} - int CmdHide(const char *Cmd) { HideGraphWindow(); @@ -474,7 +463,7 @@ int CmdHpf(const char *Cmd) return 0; } -int CmdLFSamples(const char *Cmd) +int CmdSamples(const char *Cmd) { int cnt = 0; int n; @@ -487,7 +476,7 @@ int CmdLFSamples(const char *Cmd) for (int i = 0; i < n; i += 12) { UsbCommand c = {CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K, {i, 0, 0}}; SendCommand(&c); - WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K); + WaitForResponse(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K, NULL); for (int j = 0; j < 48; j++) { GraphBuffer[cnt++] = ((int)sample_buf[j]) - 128; } @@ -548,7 +537,7 @@ int CmdManchesterDemod(const char *Cmd) int i, j, invert= 0; int bit; int clock; - int lastval; + int lastval = 0; int low = 0; int high = 0; int hithigh, hitlow, first; @@ -562,6 +551,7 @@ int CmdManchesterDemod(const char *Cmd) { PrintAndLog("Inverting output"); invert = 1; + ++Cmd; do ++Cmd; while(*Cmd == ' '); // in case a 2nd argument was given @@ -574,7 +564,7 @@ int CmdManchesterDemod(const char *Cmd) /* But it does not work if compiling on WIndows: therefore we just allocate a */ /* large array */ - int BitStream[MAX_GRAPH_TRACE_LEN]; + uint8_t BitStream[MAX_GRAPH_TRACE_LEN]; /* Detect high and lows */ for (i = 0; i < GraphTraceLen; i++) @@ -880,19 +870,18 @@ static command_t CommandTable[] = {"fskdemod", CmdFSKdemod, 1, "Demodulate graph window as a HID FSK"}, {"grid", CmdGrid, 1, " -- overlay grid on graph window, use zero value to turn off either"}, {"hexsamples", CmdHexsamples, 0, " [] -- Dump big buffer as hex bytes"}, - {"hfsamples", CmdHFSamples, 0, "[nb of samples] Get raw samples for HF tag"}, {"hide", CmdHide, 1, "Hide graph window"}, {"hpf", CmdHpf, 1, "Remove DC offset from trace"}, - {"lfsamples", CmdLFSamples, 0, "[128 - 16000] -- Get raw samples for LF tag"}, {"load", CmdLoad, 1, " -- Load trace (to graph window"}, {"ltrim", CmdLtrim, 1, " -- Trim samples from left of trace"}, {"mandemod", CmdManchesterDemod, 1, "[i] [clock rate] -- Manchester demodulate binary stream (option 'i' to invert output)"}, {"manmod", CmdManchesterMod, 1, "[clock rate] -- Manchester modulate a binary stream"}, {"norm", CmdNorm, 1, "Normalize max/min to +/-500"}, - {"plot", CmdPlot, 1, "Show graph window"}, + {"plot", CmdPlot, 1, "Show graph window (hit 'h' in window for keystroke help)"}, + {"samples", CmdSamples, 0, "[128 - 16000] -- Get raw samples for graph window"}, {"save", CmdSave, 1, " -- Save trace (from graph window)"}, {"scale", CmdScale, 1, " -- Set cursor display scale"}, - {"threshold", CmdThreshold, 1, "Maximize/minimize every value in the graph window depending on threshold"}, + {"threshold", CmdThreshold, 1, " -- Maximize/minimize every value in the graph window depending on threshold"}, {"zerocrossings", CmdZerocrossings, 1, "Count time between zero-crossings"}, {NULL, NULL, 0, NULL} };