CHG: lf read - optional timeout, to be used when configured a threshold limit.

This commit is contained in:
iceman1001 2017-02-24 14:15:36 +01:00
parent 5215a87442
commit 165b92dc35

View file

@ -27,11 +27,11 @@ int usage_lf_cmdread(void) {
return 0;
}
int usage_lf_read(void){
PrintAndLog("Usage: lf read [h] [s]");
PrintAndLog("Usage: lf read [h] [s] [t]");
PrintAndLog("Options:");
PrintAndLog(" h This help");
PrintAndLog(" s silent run no printout");
PrintAndLog("This function takes no arguments. ");
PrintAndLog(" t waits for device to respond with no timeout");
PrintAndLog("Use 'lf config' to set parameters.");
return 0;
}
@ -545,20 +545,48 @@ int CmdLFSetConfig(const char *Cmd) {
int CmdLFRead(const char *Cmd) {
bool arg1 = false;
uint8_t cmdp = param_getchar(Cmd, 0);
bool thresholdRead = false;
uint8_t cmdp = 0;
while(param_getchar(Cmd, cmdp) != 0x00) {
switch(param_getchar(Cmd, cmdp)) {
case 'h':
case 'H':
return usage_lf_read();
case 's':
case 'S':
arg1 = true;
cmdp++;
break;
case 't':
case 'T':
thresholdRead = true;
cmdp++;
break;
default:
PrintAndLog("Unknown parameter '%c'", param_getchar(Cmd, cmdp));
errors = 1;
break;
}
if(errors) break;
}
if ( cmdp == 'h' || cmdp == 'H') return usage_lf_read();
// No args
if (cmdp == 0) errors = 1;
//suppress print
if ( cmdp == 's' || cmdp == 'S') arg1 = true;
//Validations
if (errors) return usage_lf_read();
UsbCommand c = {CMD_ACQUIRE_RAW_ADC_SAMPLES_125K, {arg1,0,0}};
clearCommandBuffer();
SendCommand(&c);
if ( thresholdRead ) {
WaitForResponse(CMD_ACK,NULL);
} else {
if ( !WaitForResponseTimeout(CMD_ACK, NULL ,2500) ) {
PrintAndLog("command execution time out");
return 1;
}
}
return 0;
}