From f445df401eef592968a87247137930b3c3bf52fa Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Wed, 22 Jul 2015 11:19:15 +0200 Subject: [PATCH 1/1] ADD: started with adding a "LS" command that lists the commands without the help text printed. To give easy clean list. --- armsrc/iso14443b.c | 2 +- client/cmdhf.c | 5 ++++- client/cmdmain.c | 8 +++++++- client/cmdparser.c | 12 ++++++++++++ client/cmdparser.h | 2 ++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/armsrc/iso14443b.c b/armsrc/iso14443b.c index 05280399..daa219ce 100644 --- a/armsrc/iso14443b.c +++ b/armsrc/iso14443b.c @@ -1007,7 +1007,7 @@ void iso14443b_setup() { LED_D_ON(); FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_TX | FPGA_HF_READER_TX_SHALLOW_MOD); - SpinDelay(100); + //SpinDelay(100); // Start the timer //StartCountSspClk(); diff --git a/client/cmdhf.c b/client/cmdhf.c index d7a52f6b..91743c46 100644 --- a/client/cmdhf.c +++ b/client/cmdhf.c @@ -225,7 +225,10 @@ void annotateIso7816(char *exp, size_t size, uint8_t* cmd, uint8_t cmdsize){ } // R-block (ack) else if ( ((cmd[0] & 0xD0) == 0x80) && ( cmdsize > 2) ) { - snprintf(exp, size, "R-block"); + if ( (cmd[0] & 0x10) == 0 ) + snprintf(exp, size, "R-block ACK"); + else + snprintf(exp, size, "R-block NACK"); } // I-block else { diff --git a/client/cmdmain.c b/client/cmdmain.c index 2bb76d7b..377fdc2c 100644 --- a/client/cmdmain.c +++ b/client/cmdmain.c @@ -33,6 +33,7 @@ unsigned int current_command = CMD_UNKNOWN; static int CmdHelp(const char *Cmd); static int CmdQuit(const char *Cmd); static int CmdRev(const char *Cmd); +static int CmdLS(const char *Cmd); //For storing command that are received from the device static UsbCommand cmdBuffer[CMD_BUFFER_SIZE]; @@ -44,11 +45,12 @@ static int cmd_tail;//Starts as 0 static command_t CommandTable[] = { {"help", CmdHelp, 1, "This help. Use ' help' for details of a particular command."}, + {"ls", CmdLS, 1, "list commands"}, {"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... }"}, - {"reveng",CmdRev, 1, "Crc calculations from the software reveng1-30"}, + {"reveng", CmdRev, 1, "Crc calculations from the software reveng 1.30"}, {"script", CmdScript, 1, "{ Scripting commands }"}, {"quit", CmdQuit, 1, "Exit program"}, {"exit", CmdQuit, 1, "Exit program"}, @@ -64,6 +66,10 @@ int CmdHelp(const char *Cmd) CmdsHelp(CommandTable); return 0; } +int CmdLS(const char *Cmd){ + CmdsLS(CommandTable); + return 0; +} int CmdQuit(const char *Cmd) { diff --git a/client/cmdparser.c b/client/cmdparser.c index 6910e86a..ae67466a 100644 --- a/client/cmdparser.c +++ b/client/cmdparser.c @@ -28,6 +28,18 @@ void CmdsHelp(const command_t Commands[]) } } +void CmdsLS(const command_t Commands[]) +{ + if (Commands[0].Name == NULL) return; + int i = 0; + while (Commands[i].Name) + { + if (!offline || Commands[i].Offline) + PrintAndLog("%-16s", Commands[i].Name); + ++i; + } +} + void CmdsParse(const command_t Commands[], const char *Cmd) { if(strcmp( Cmd, "XX_internal_command_dump_XX") == 0) diff --git a/client/cmdparser.h b/client/cmdparser.h index b7997ecc..34db902c 100644 --- a/client/cmdparser.h +++ b/client/cmdparser.h @@ -23,6 +23,8 @@ typedef struct command_s // Print help for each command in the command array void CmdsHelp(const command_t Commands[]); +// Print each command in the command array without help +void CmdsLS(const command_t Commands[]); // Parse a command line void CmdsParse(const command_t Commands[], const char *Cmd); void dumpCommandsRecursive(const command_t cmds[], int markdown); -- 2.39.5