mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-19 21:03:48 -07:00
hf tune: group commands
This commit is contained in:
parent
7ed7a9de40
commit
c281f71f59
4 changed files with 41 additions and 31 deletions
|
@ -1229,23 +1229,30 @@ static void PacketReceived(PacketCommandNG *packet) {
|
||||||
MeasureAntennaTuning();
|
MeasureAntennaTuning();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_MEASURE_ANTENNA_TUNING_HF_START:
|
case CMD_MEASURE_ANTENNA_TUNING_HF:
|
||||||
// Let the FPGA drive the high-frequency antenna around 13.56 MHz.
|
if (packet->length != 1)
|
||||||
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
|
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF, PM3_EINVARG, NULL, 0);
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_RX_XCORR);
|
switch (packet->data.asBytes[0]) {
|
||||||
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF_START, PM3_SUCCESS, NULL, 0);
|
case 1: // MEASURE_ANTENNA_TUNING_HF_START
|
||||||
break;
|
// Let the FPGA drive the high-frequency antenna around 13.56 MHz.
|
||||||
|
FpgaDownloadAndGo(FPGA_BITSTREAM_HF);
|
||||||
case CMD_MEASURE_ANTENNA_TUNING_HF_SAMPLE:
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_READER_RX_XCORR);
|
||||||
if (button_status == BUTTON_SINGLE_CLICK)
|
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF, PM3_SUCCESS, NULL, 0);
|
||||||
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF_SAMPLE, PM3_EOPABORTED, NULL, 0);
|
break;
|
||||||
uint16_t volt = MeasureAntennaTuningHfData();
|
case 2:
|
||||||
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF_SAMPLE, PM3_SUCCESS, (uint8_t *)&volt, sizeof(volt));
|
if (button_status == BUTTON_SINGLE_CLICK)
|
||||||
break;
|
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF, PM3_EOPABORTED, NULL, 0);
|
||||||
|
uint16_t volt = MeasureAntennaTuningHfData();
|
||||||
case CMD_MEASURE_ANTENNA_TUNING_HF_STOP:
|
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF, PM3_SUCCESS, (uint8_t *)&volt, sizeof(volt));
|
||||||
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
break;
|
||||||
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF_STOP, PM3_SUCCESS, NULL, 0);
|
case 3:
|
||||||
|
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
|
||||||
|
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF, PM3_SUCCESS, NULL, 0);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
reply_ng(CMD_MEASURE_ANTENNA_TUNING_HF, PM3_EINVARG, NULL, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_LISTEN_READER_FIELD:
|
case CMD_LISTEN_READER_FIELD:
|
||||||
|
|
|
@ -100,27 +100,32 @@ int CmdHFTune(const char *Cmd) {
|
||||||
PacketResponseNG resp;
|
PacketResponseNG resp;
|
||||||
PrintAndLogEx(SUCCESS, "Measuring HF antenna, click button to exit");
|
PrintAndLogEx(SUCCESS, "Measuring HF antenna, click button to exit");
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
SendCommandNG(CMD_MEASURE_ANTENNA_TUNING_HF_START, NULL, 0);
|
uint8_t mode[] = {1};
|
||||||
if (!WaitForResponseTimeout(CMD_MEASURE_ANTENNA_TUNING_HF_START, &resp, 1000)) {
|
SendCommandNG(CMD_MEASURE_ANTENNA_TUNING_HF, mode, sizeof(mode));
|
||||||
PrintAndLogEx(WARNING, "Timeout while waiting for Proxmark HF measure, aborting");
|
if (!WaitForResponseTimeout(CMD_MEASURE_ANTENNA_TUNING_HF, &resp, 1000)) {
|
||||||
|
PrintAndLogEx(WARNING, "Timeout while waiting for Proxmark HF initialization, aborting");
|
||||||
return PM3_ETIMEOUT;
|
return PM3_ETIMEOUT;
|
||||||
}
|
}
|
||||||
for (uint8_t i=0; iter == 0 || i< iter; i++) { // loop forever (till button pressed) if iter = 0 (default)
|
mode[0] = 2;
|
||||||
SendCommandNG(CMD_MEASURE_ANTENNA_TUNING_HF_SAMPLE, NULL, 0);
|
// loop forever (till button pressed) if iter = 0 (default)
|
||||||
if (!WaitForResponseTimeout(CMD_MEASURE_ANTENNA_TUNING_HF_SAMPLE, &resp, 1000)) {
|
for (uint8_t i=0; iter == 0 || i< iter; i++) {
|
||||||
|
SendCommandNG(CMD_MEASURE_ANTENNA_TUNING_HF, mode, sizeof(mode));
|
||||||
|
if (!WaitForResponseTimeout(CMD_MEASURE_ANTENNA_TUNING_HF, &resp, 1000)) {
|
||||||
PrintAndLogEx(WARNING, "Timeout while waiting for Proxmark HF measure, aborting");
|
PrintAndLogEx(WARNING, "Timeout while waiting for Proxmark HF measure, aborting");
|
||||||
return PM3_ETIMEOUT;
|
return PM3_ETIMEOUT;
|
||||||
}
|
}
|
||||||
if (resp.status == PM3_EOPABORTED)
|
if ((resp.status == PM3_EOPABORTED) || (resp.length != sizeof(uint16_t)))
|
||||||
break;
|
break;
|
||||||
uint16_t volt = resp.data.asDwords[0];
|
uint16_t volt = resp.data.asDwords[0];
|
||||||
PrintAndLogEx(INPLACE, "%u mV / %5u V", volt, (uint16_t)(volt / 1000));
|
PrintAndLogEx(INPLACE, "%u mV / %5u V", volt, (uint16_t)(volt / 1000));
|
||||||
}
|
}
|
||||||
SendCommandNG(CMD_MEASURE_ANTENNA_TUNING_HF_STOP, NULL, 0);
|
mode[0] = 3;
|
||||||
if (!WaitForResponseTimeout(CMD_MEASURE_ANTENNA_TUNING_HF_STOP, &resp, 1000)) {
|
SendCommandNG(CMD_MEASURE_ANTENNA_TUNING_HF, mode, sizeof(mode));
|
||||||
PrintAndLogEx(WARNING, "Timeout while waiting for Proxmark HF measure, aborting");
|
if (!WaitForResponseTimeout(CMD_MEASURE_ANTENNA_TUNING_HF, &resp, 1000)) {
|
||||||
|
PrintAndLogEx(WARNING, "Timeout while waiting for Proxmark HF shutdown, aborting");
|
||||||
return PM3_ETIMEOUT;
|
return PM3_ETIMEOUT;
|
||||||
}
|
}
|
||||||
|
PrintAndLogEx(NORMAL, "");
|
||||||
PrintAndLogEx(SUCCESS, "Done.");
|
PrintAndLogEx(SUCCESS, "Done.");
|
||||||
return PM3_SUCCESS;
|
return PM3_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,7 +102,7 @@ void PrintAndLogEx(logLevel_t level, const char *fmt, ...) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (level == INPLACE) {
|
if (level == INPLACE) {
|
||||||
printf("%s\r", buffer);
|
printf("\r%s", buffer);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -335,9 +335,7 @@ typedef struct {
|
||||||
|
|
||||||
// For measurements of the antenna tuning
|
// For measurements of the antenna tuning
|
||||||
#define CMD_MEASURE_ANTENNA_TUNING 0x0400
|
#define CMD_MEASURE_ANTENNA_TUNING 0x0400
|
||||||
#define CMD_MEASURE_ANTENNA_TUNING_HF_START 0x0401
|
#define CMD_MEASURE_ANTENNA_TUNING_HF 0x0401
|
||||||
#define CMD_MEASURE_ANTENNA_TUNING_HF_SAMPLE 0x0402
|
|
||||||
#define CMD_MEASURE_ANTENNA_TUNING_HF_STOP 0x0403
|
|
||||||
#define CMD_MEASURED_ANTENNA_TUNING 0x0410
|
#define CMD_MEASURED_ANTENNA_TUNING 0x0410
|
||||||
#define CMD_LISTEN_READER_FIELD 0x0420
|
#define CMD_LISTEN_READER_FIELD 0x0420
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue