]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - winsrc/command.cpp
New mode define for FPGA
[proxmark3-svn] / winsrc / command.cpp
index 86b0d4466e62abdfdb0c5dc23809694522422dc0..c7c4a75fb5e93212f6c40776f8978804ecf8564c 100644 (file)
@@ -2520,6 +2520,14 @@ static void CmdHIDsimTAG(char *str)
        SendCommand(&c, FALSE);\r
 }\r
 \r
+static void CmdReadmem(char *str)\r
+{\r
+       UsbCommand c;\r
+       c.cmd = CMD_READ_MEM;\r
+       c.ext1 = atoi(str);\r
+       SendCommand(&c, FALSE);\r
+}\r
+\r
 static void CmdLcdReset(char *str)\r
 {\r
        UsbCommand c;\r
@@ -2563,14 +2571,6 @@ static void CmdSetDivisor(char *str)
        }\r
 }\r
 \r
-static void CmdSweepLF(char *str)\r
-{\r
-       UsbCommand c;\r
-       c.cmd = CMD_SWEEP_LF;\r
-       SendCommand(&c, FALSE);\r
-}\r
-\r
-\r
 typedef void HandlerFunction(char *cmdline);\r
 \r
 /* in alphabetic order */\r
@@ -2619,7 +2619,7 @@ static struct {
        {"hisamplest",          CmdHi14readt,0,         "    Get samples HF, for testing"},\r
        {"hisimlisten",         CmdHisimlisten,0,       "    Get HF samples as fake tag"},\r
        {"hpf",                         CmdHpf,1,               "    Remove DC offset from trace"},\r
-       {"indalademod",         CmdIndalademod,0,         "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)"},\r
+       {"indalademod",         CmdIndalademod,0,         "['224'] -- Demodulate samples for Indala 64 bit UID (option '224' for 224 bit)"},\r
        {"lcd",                         CmdLcd,0,                       "<HEX command> <count> -- Send command/data to LCD"},\r
        {"lcdreset",                    CmdLcdReset,0,          "    Hardware reset LCD"},\r
        {"load",                                CmdLoad,1,              "<filename> -- Load trace (to graph window"},\r
@@ -2633,12 +2633,12 @@ static struct {
        {"norm",                                CmdNorm,1,              "    Normalize max/min to +/-500"},\r
        {"plot",                                CmdPlot,1,              "    Show graph window"},\r
        {"quit",                                CmdQuit,1,                      "    Quit program"},\r
+       {"readmem",                     CmdReadmem,0,                   "    [address] -- Read memory at decimal address from flash"},\r
        {"reset",                       CmdReset,0,                     "    Reset the Proxmark3"},\r
        {"save",                                CmdSave,1,              "<filename> -- Save trace (from graph window)"},\r
        {"scale",                       CmdScale,1,             "<int> -- Set cursor display scale"},\r
        {"setlfdivisor",                CmdSetDivisor,0,        "<19 - 255> -- Drive LF antenna at 12Mhz/(divisor+1)"},\r
        {"sri512read",          CmdSri512read,0,        "<int> -- Read contents of a SRI512 tag"},\r
-       {"sweeplf",                     CmdSweepLF,0,           "    Sweep through LF freq range and store results in buffer"},\r
        {"tibits",                      CmdTibits,0,            "    Get raw bits for TI-type LF tag"},\r
        {"tidemod",                     CmdTidemod,0,           "    Demodulate raw bits for TI-type LF tag"},\r
        {"tiread",                      CmdTiread,0,            "    Read a TI-type 134 kHz tag"},\r
@@ -2653,7 +2653,8 @@ static struct {
        char *argshelp;\r
        char *description;\r
        }       CommandExtendedHelp[]= {\r
-               {"detectreader","'l'|'h'","'l' specifies LF antenna scan only, 'h' specifies HF antenna scan only.","Monitor antenna for changes in voltage. Output is in three fields: CHANGED, CURRENT, PERIOD,\nwhere CHANGED is the value just changed from, CURRENT is the current value and PERIOD is the\nnumber of program loops since the last change.\n\nThe RED LED indicates LF field detected, and the GREEN LED indicates HF field detected.\n"},\r
+               {"detectreader","'l'|'h'","'l' specifies LF antenna scan only, 'h' specifies HF antenna scan only.","Monitor antenna for changes in voltage. Output is in three fields: CHANGED, CURRENT, PERIOD,\nwhere CHANGED is the value just changed from, CURRENT is the current value and PERIOD is the\nnumber of program loops since the last change.\n\nThe RED LED indicates LF field detected, and the GREEN LED indicates HF field detected."},\r
+               {"tune","","","Drive LF antenna at all divisor range values (19 - 255) and store the results in the output\nbuffer. Issuing 'losamples' and then 'plot' commands will display the resulting peak. 12MHz\ndivided by the peak's position plus one gives the antenna's resonant frequency. For convenience,\nthis value is also printed out by the command."},\r
                };\r
 \r
 //-----------------------------------------------------------------------------\r
@@ -2676,6 +2677,7 @@ void CommandReceived(char *cmd)
                                        PrintToScrollback("\nExtended help for '%s':\n", cmd);\r
                                        PrintToScrollback("Args: %s\t- %s\n",CommandExtendedHelp[i].args,CommandExtendedHelp[i].argshelp);\r
                                        PrintToScrollback(CommandExtendedHelp[i].description);\r
+                                       PrintToScrollback("");\r
                                        return;\r
                                }\r
                        }\r
@@ -2693,7 +2695,7 @@ void CommandReceived(char *cmd)
                        PrintToScrollback("%s", line);\r
                }\r
                PrintToScrollback("");\r
-               PrintToScrollback("'help <command>' for extended help on that command");\r
+               PrintToScrollback("'help <command>' for extended help on that command\n");\r
                return;\r
        }\r
 \r
@@ -2740,19 +2742,27 @@ void UsbCommandReceived(UsbCommand *c)
                        break;\r
 \r
                case CMD_MEASURED_ANTENNA_TUNING: {\r
-                       int zLf, zHf;\r
+                       int peakv, peakf;\r
                        int vLf125, vLf134, vHf;\r
                        vLf125 = c->ext1 & 0xffff;\r
                        vLf134 = c->ext1 >> 16;\r
-                       vHf = c->ext2;\r
-                       zLf = c->ext3 & 0xffff;\r
-                       zHf = c->ext3 >> 16;\r
-                       PrintToScrollback("# LF antenna @ %3d mA / %5d mV [%d ohms] 125Khz",\r
-                               vLf125/zLf, vLf125, zLf);\r
-                       PrintToScrollback("# LF antenna @ %3d mA / %5d mV [%d ohms] 134Khz",\r
-                               vLf134/((zLf*125)/134), vLf134, (zLf*125)/134);\r
-                       PrintToScrollback("# HF antenna @ %3d mA / %5d mV [%d ohms] 13.56Mhz",\r
-                               vHf/zHf, vHf, zHf);\r
+                       vHf = c->ext2 & 0xffff;;\r
+                       peakf = c->ext3 & 0xffff;\r
+                       peakv = c->ext3 >> 16;\r
+                       PrintToScrollback("");\r
+                       PrintToScrollback("");\r
+                       PrintToScrollback("# LF antenna: %5.2f V @   125.00 kHz", vLf125/1000.0);\r
+                       PrintToScrollback("# LF antenna: %5.2f V @   134.00 kHz", vLf134/1000.0);\r
+                       PrintToScrollback("# LF optimal: %5.2f V @%9.2f kHz", peakv/1000.0, 12000.0/(peakf+1));\r
+                       PrintToScrollback("# HF antenna: %5.2f V @    13.56 MHz", vHf/1000.0);\r
+                       if (peakv<2000)\r
+                               PrintToScrollback("# Your LF antenna is unusable."); \r
+                       else if (peakv<10000)\r
+                               PrintToScrollback("# Your LF antenna is marginal.");\r
+                       if (vHf<2000)\r
+                               PrintToScrollback("# Your HF antenna is unusable."); \r
+                       else if (vHf<5000)\r
+                               PrintToScrollback("# Your HF antenna is marginal.");\r
                        break;\r
                }\r
                default:\r
Impressum, Datenschutz