X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/4b3f6d79ea9174d97f3f82177fa9ded4ad485172..8e074056acc2ee8edd5222f9937e8c40bfeff013:/client/cmdhw.c diff --git a/client/cmdhw.c b/client/cmdhw.c index 78695346..05ad0c9f 100644 --- a/client/cmdhw.c +++ b/client/cmdhw.c @@ -404,13 +404,24 @@ int CmdTune(const char *Cmd) int CmdVersion(const char *Cmd) { - UsbCommand c = {CMD_VERSION}; - UsbCommand resp; - SendCommand(&c); - if (WaitForResponseTimeout(CMD_ACK,&resp,1000)) { - lookupChipID(resp.arg[0], resp.arg[1]); - } - return 0; + + UsbCommand c = {CMD_VERSION}; + static UsbCommand resp = {0, {0, 0, 0}}; + + if (resp.arg[0] == 0 && resp.arg[1] == 0) { // no cached information available + SendCommand(&c); + if (WaitForResponseTimeout(CMD_ACK,&resp,1000) && Cmd != NULL) { + PrintAndLog("Prox/RFID mark3 RFID instrument"); + PrintAndLog((char*)resp.d.asBytes); + lookupChipID(resp.arg[0], resp.arg[1]); + } + } else if (Cmd != NULL) { + PrintAndLog("Prox/RFID mark3 RFID instrument"); + PrintAndLog((char*)resp.d.asBytes); + lookupChipID(resp.arg[0], resp.arg[1]); + } + + return 0; } static command_t CommandTable[] =