]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmddata.c
added initial test to emulate memory of mf ul tag
[proxmark3-svn] / client / cmddata.c
index 71ef6752493490badf96c226d21a03524b574515..6c2c7841775fc0ab9a580bca22f386199a53165e 100644 (file)
@@ -1,8 +1,19 @@
+//-----------------------------------------------------------------------------
+// Copyright (C) 2010 iZsh <izsh at fail0verflow.com>
+//
+// 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 <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <limits.h>
-#include "proxusb.h"
+//#include "proxusb.h"
+#include "proxmark3.h"
 #include "data.h"
 #include "ui.h"
 #include "graph.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);
   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++) {
 
     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);
 int CmdGrid(const char *Cmd)
 {
   sscanf(Cmd, "%i %i", &PlotGridX, &PlotGridY);
+  PlotGridXdefault= PlotGridX;
+  PlotGridYdefault= PlotGridY;
   RepaintGraphWindow();
   return 0;
 }
   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);
   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],
     for (int j = 0; j < 48; j += 8) {
       PrintAndLog("%02x %02x %02x %02x %02x %02x %02x %02x",
         sample_buf[j+0],
@@ -463,7 +476,7 @@ int CmdSamples(const char *Cmd)
   for (int i = 0; i < n; i += 12) {
     UsbCommand c = {CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K, {i, 0, 0}};
     SendCommand(&c);
   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;
     }
     for (int j = 0; j < 48; j++) {
       GraphBuffer[cnt++] = ((int)sample_buf[j]) - 128;
     }
@@ -524,7 +537,7 @@ int CmdManchesterDemod(const char *Cmd)
   int i, j, invert= 0;
   int bit;
   int clock;
   int i, j, invert= 0;
   int bit;
   int clock;
-  int lastval;
+  int lastval = 0;
   int low = 0;
   int high = 0;
   int hithigh, hitlow, first;
   int low = 0;
   int high = 0;
   int hithigh, hitlow, first;
@@ -538,6 +551,7 @@ int CmdManchesterDemod(const char *Cmd)
   {
     PrintAndLog("Inverting output");
     invert = 1;
   {
     PrintAndLog("Inverting output");
     invert = 1;
+    ++Cmd;
     do
       ++Cmd;
     while(*Cmd == ' '); // in case a 2nd argument was given
     do
       ++Cmd;
     while(*Cmd == ' '); // in case a 2nd argument was given
@@ -550,7 +564,7 @@ int CmdManchesterDemod(const char *Cmd)
 
   /* But it does not work if compiling on WIndows: therefore we just allocate a */
   /* large array */
 
   /* 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++)
 
   /* Detect high and lows */
   for (i = 0; i < GraphTraceLen; i++)
@@ -858,16 +872,16 @@ static command_t CommandTable[] =
   {"hexsamples",    CmdHexsamples,      0, "<blocks> [<offset>] -- Dump big buffer as hex bytes"},  
   {"hide",          CmdHide,            1, "Hide graph window"},
   {"hpf",           CmdHpf,             1, "Remove DC offset from trace"},
   {"hexsamples",    CmdHexsamples,      0, "<blocks> [<offset>] -- Dump big buffer as hex bytes"},  
   {"hide",          CmdHide,            1, "Hide graph window"},
   {"hpf",           CmdHpf,             1, "Remove DC offset from trace"},
-  {"samples",       CmdSamples,         0, "[128 - 16000] -- Get raw samples for graph window"},
   {"load",          CmdLoad,            1, "<filename> -- Load trace (to graph window"},
   {"ltrim",         CmdLtrim,           1, "<samples> -- 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"},
   {"load",          CmdLoad,            1, "<filename> -- Load trace (to graph window"},
   {"ltrim",         CmdLtrim,           1, "<samples> -- 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, "<filename> -- Save trace (from graph window)"},
   {"scale",         CmdScale,           1, "<int> -- Set cursor display scale"},
   {"save",          CmdSave,            1, "<filename> -- Save trace (from graph window)"},
   {"scale",         CmdScale,           1, "<int> -- Set cursor display scale"},
-  {"threshold",     CmdThreshold,       1, "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"},
   {NULL, NULL, 0, NULL}
 };
   {"zerocrossings", CmdZerocrossings,   1, "Count time between zero-crossings"},
   {NULL, NULL, 0, NULL}
 };
Impressum, Datenschutz