X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/10403a6a3005f81839603dcb415ee352f939c06b..489ef36cf67e8b882682542b8ad16eea6a41531e:/client/cmdmain.c diff --git a/client/cmdmain.c b/client/cmdmain.c index c18967cc..75778d1a 100644 --- a/client/cmdmain.c +++ b/client/cmdmain.c @@ -16,7 +16,7 @@ #include "cmdparser.h" #include "proxmark3.h" #include "data.h" -#include "../include/usb_cmd.h" +#include "usb_cmd.h" #include "ui.h" #include "cmdhf.h" #include "cmddata.h" @@ -25,6 +25,7 @@ #include "cmdmain.h" #include "util.h" #include "cmdscript.h" +#include "cmdcrc.h" unsigned int current_command = CMD_UNKNOWN; @@ -33,7 +34,7 @@ static int CmdHelp(const char *Cmd); static int CmdQuit(const char *Cmd); //For storing command that are received from the device -#define CMD_BUFFER_SIZE 50 +#define CMD_BUFFER_SIZE 60 static UsbCommand cmdBuffer[CMD_BUFFER_SIZE]; //Points to the next empty position to write to static int cmd_head;//Starts as 0 @@ -42,15 +43,16 @@ static int cmd_tail;//Starts as 0 static command_t CommandTable[] = { - {"help", CmdHelp, 1, "This help. Use ' help' for details of a particular command."}, - {"data", CmdData, 1, "{ Plot window / data buffer manipulation... }"}, - {"hf", CmdHF, 1, "{ High Frequency commands... }"}, - {"hw", CmdHW, 1, "{ Hardware commands... }"}, - {"lf", CmdLF, 1, "{ Low Frequency commands... }"}, - {"script", CmdScript, 1, "{ Scripting commands }"}, - {"quit", CmdQuit, 1, "Exit program"}, - {"exit", CmdQuit, 1, "Exit program"}, - {NULL, NULL, 0, NULL} + {"help", CmdHelp, 1, "This help. Use ' help' for details of a particular command."}, + {"crc", CmdCrc, 1, "Crc calculations from the software reveng1-30"}, + {"data", CmdData, 1, "{ Plot window / data buffer manipulation... }"}, + {"hf", CmdHF, 1, "{ High Frequency commands... }"}, + {"hw", CmdHW, 1, "{ Hardware commands... }"}, + {"lf", CmdLF, 1, "{ Low Frequency commands... }"}, + {"script", CmdScript, 1, "{ Scripting commands }"}, + {"quit", CmdQuit, 1, "Exit program"}, + {"exit", CmdQuit, 1, "Exit program"}, + {NULL, NULL, 0, NULL} }; command_t* getTopLevelCommandTable() @@ -130,26 +132,26 @@ int getCommand(UsbCommand* response) * @return true if command was returned, otherwise false */ bool WaitForResponseTimeout(uint32_t cmd, UsbCommand* response, size_t ms_timeout) { - - UsbCommand resp; + + UsbCommand resp; if (response == NULL) - response = &resp; - - - // Wait until the command is received - for(size_t dm_seconds=0; dm_seconds < ms_timeout/10; dm_seconds++) { - - while (getCommand(response)) { - if(response->cmd == cmd){ - return true; - } - } - msleep(10); // XXX ugh - if (dm_seconds == 200) { // Two seconds elapsed - PrintAndLog("Waiting for a response from the proxmark..."); - PrintAndLog("Don't forget to cancel its operation first by pressing on the button"); - } + response = &resp; + + + // Wait until the command is received + for(size_t dm_seconds=0; dm_seconds < ms_timeout/10; dm_seconds++) { + + while(getCommand(response)) { + if(response->cmd == cmd){ + return true; + } + } + msleep(10); // XXX ugh + if (dm_seconds == 200) { // Two seconds elapsed + PrintAndLog("Waiting for a response from the proxmark..."); + PrintAndLog("Don't forget to cancel its operation first by pressing on the button"); + } } return false; } @@ -175,27 +177,26 @@ void UsbCommandReceived(UsbCommand *UC) switch(UC->cmd) { // First check if we are handling a debug message case CMD_DEBUG_PRINT_STRING: { - char s[USB_CMD_DATA_SIZE+1] = {0x00}; - size_t len = MIN(UC->arg[0],USB_CMD_DATA_SIZE); - memcpy(s,UC->d.asBytes,len); - PrintAndLog("#db# %s ", s); - return; + char s[USB_CMD_DATA_SIZE+1] = {0x00}; + size_t len = MIN(UC->arg[0],USB_CMD_DATA_SIZE); + memcpy(s,UC->d.asBytes,len); + PrintAndLog("#db# %s ", s); + return; } break; case CMD_DEBUG_PRINT_INTEGERS: { - PrintAndLog("#db# %08x, %08x, %08x \r\n", UC->arg[0], UC->arg[1], UC->arg[2]); - return; + PrintAndLog("#db# %08x, %08x, %08x \r\n", UC->arg[0], UC->arg[1], UC->arg[2]); + return; } break; - + case CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K: { - sample_buf_len += UC->arg[1]; - memcpy(sample_buf+(UC->arg[0]),UC->d.asBytes,UC->arg[1]); + memcpy(sample_buf+(UC->arg[0]),UC->d.asBytes,UC->arg[1]); } break; default: - break; - } + break; + } - storeCommand(UC); + storeCommand(UC); }