lf tune: allow float, added parse_getfloat to utils

This commit is contained in:
Philippe Teuwen 2019-10-25 00:53:56 +02:00
parent eb7268cd98
commit 390d0ab525
3 changed files with 12 additions and 3 deletions

View file

@ -231,12 +231,12 @@ int CmdLFTune(const char *Cmd) {
}
break;
case 'f': {
int freq = param_get32ex(Cmd, cmdp + 1, 125, 10);
divisor = LF_FREQ2DIV(freq);
if (divisor < 19) {
float freq = param_getfloat(Cmd, cmdp + 1, 125);
if ((freq < 47) || (freq > 600)) {
PrintAndLogEx(ERR, "freq must be between 47 and 600");
return PM3_EINVARG;
}
divisor = LF_FREQ2DIV(freq);
cmdp += 2;
break;
}

View file

@ -551,6 +551,14 @@ uint64_t param_get64ex(const char *line, int paramnum, int deflt, int base) {
return deflt;
}
float param_getfloat(const char *line, int paramnum, float deflt) {
int bg, en;
if (!param_getptr(line, &bg, &en, paramnum))
return strtof(&line[bg], NULL);
else
return deflt;
}
int param_gethex(const char *line, int paramnum, uint8_t *data, int hexcnt) {
int bg, en, i;
uint32_t temp;

View file

@ -68,6 +68,7 @@ uint8_t param_get8(const char *line, int paramnum);
uint8_t param_get8ex(const char *line, int paramnum, int deflt, int base);
uint32_t param_get32ex(const char *line, int paramnum, int deflt, int base);
uint64_t param_get64ex(const char *line, int paramnum, int deflt, int base);
float param_getfloat(const char *line, int paramnum, float deflt);
uint8_t param_getdec(const char *line, int paramnum, uint8_t *destination);
uint8_t param_isdec(const char *line, int paramnum);
int param_gethex(const char *line, int paramnum, uint8_t *data, int hexcnt);