mirror of
https://github.com/RfidResearchGroup/proxmark3.git
synced 2025-08-21 13:53:55 -07:00
Merge pull request #2160 from wh201906/hw_status_timeout
Add `--ms` option in `hw status`
This commit is contained in:
commit
1e893f8ddd
4 changed files with 28 additions and 10 deletions
|
@ -3,6 +3,7 @@ All notable changes to this project will be documented in this file.
|
||||||
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
This project uses the changelog in accordance with [keepchangelog](http://keepachangelog.com/). Please use this to write notable changes, which is not the same as git commit log...
|
||||||
|
|
||||||
## [unreleased][unreleased]
|
## [unreleased][unreleased]
|
||||||
|
- Added `--ms` option in `hw status` to specify the timeout of connection speed test (@wh201906)
|
||||||
- Added `hf mf ginfo` command for get info about Gen4 GTU configuration (@merlokk)
|
- Added `hf mf ginfo` command for get info about Gen4 GTU configuration (@merlokk)
|
||||||
- Added support for loading Flipper PICOPASS dump files (@iceman1001)
|
- Added support for loading Flipper PICOPASS dump files (@iceman1001)
|
||||||
- Fixed unknown chip identification (@jmichelp)
|
- Fixed unknown chip identification (@jmichelp)
|
||||||
|
@ -101,7 +102,7 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac
|
||||||
- Fixed compiling liblua on iOS (@The-SamminAter)
|
- Fixed compiling liblua on iOS (@The-SamminAter)
|
||||||
- Changed `hf_mf_luxeo_dump.lua` - now have list of keys to iterate (@iceman1001)
|
- Changed `hf_mf_luxeo_dump.lua` - now have list of keys to iterate (@iceman1001)
|
||||||
- Fixed the timeout of TCP connections (@wh201906)
|
- Fixed the timeout of TCP connections (@wh201906)
|
||||||
- Changed the connection timeout configurable (@wh201906)
|
- Added `hw timeout` - make the connection timeout configurable (@wh201906)
|
||||||
|
|
||||||
## [Seven.4.16717][2023-06-25]
|
## [Seven.4.16717][2023-06-25]
|
||||||
- Change `hf 14a info` - now identifes QL88 tags (@iceman1001)
|
- Change `hf 14a info` - now identifes QL88 tags (@iceman1001)
|
||||||
|
@ -341,6 +342,8 @@ This project uses the changelog in accordance with [keepchangelog](http://keepac
|
||||||
- Added new standalone mode `lf_em4100rsww` (@zabszk)
|
- Added new standalone mode `lf_em4100rsww` (@zabszk)
|
||||||
- Fixed `hf 15 slixdisable` wrong pass id (@r1ddl3rz)
|
- Fixed `hf 15 slixdisable` wrong pass id (@r1ddl3rz)
|
||||||
- Added `script run hf_mf_hid_sim.lua` (@micsen)
|
- Added `script run hf_mf_hid_sim.lua` (@micsen)
|
||||||
|
- Added flashmem support in `HF_14BSNIFF` standalone mode (@wh201906)
|
||||||
|
- Changed `HF_14ASNIFF` standalone mode - now supports Proxmark3 without flashmem (@wh201906)
|
||||||
|
|
||||||
## [Frostbit.4.14831][2022-01-11]
|
## [Frostbit.4.14831][2022-01-11]
|
||||||
- Changed Wiegand format lookup - now case-insensitive (@iceman1001)
|
- Changed Wiegand format lookup - now case-insensitive (@iceman1001)
|
||||||
|
|
|
@ -369,11 +369,10 @@ static void print_debug_level(void) {
|
||||||
|
|
||||||
// measure the Connection Speed by sending SpeedTestBufferSize bytes to client and measuring the elapsed time.
|
// measure the Connection Speed by sending SpeedTestBufferSize bytes to client and measuring the elapsed time.
|
||||||
// Note: this mimics GetFromBigbuf(), i.e. we have the overhead of the PacketCommandNG structure included.
|
// Note: this mimics GetFromBigbuf(), i.e. we have the overhead of the PacketCommandNG structure included.
|
||||||
static void printConnSpeed(void) {
|
static void printConnSpeed(uint32_t testTimeout) {
|
||||||
DbpString(_CYAN_("Transfer Speed"));
|
DbpString(_CYAN_("Transfer Speed"));
|
||||||
Dbprintf(" Sending packets to client...");
|
Dbprintf(" Sending packets to client...");
|
||||||
|
|
||||||
#define CONN_SPEED_TEST_MIN_TIME 500 // in milliseconds
|
|
||||||
uint8_t *test_data = BigBuf_get_addr();
|
uint8_t *test_data = BigBuf_get_addr();
|
||||||
uint32_t start_time = GetTickCount();
|
uint32_t start_time = GetTickCount();
|
||||||
uint32_t delta_time = 0;
|
uint32_t delta_time = 0;
|
||||||
|
@ -381,7 +380,7 @@ static void printConnSpeed(void) {
|
||||||
|
|
||||||
LED_B_ON();
|
LED_B_ON();
|
||||||
|
|
||||||
while (delta_time < CONN_SPEED_TEST_MIN_TIME) {
|
while (delta_time < testTimeout) {
|
||||||
reply_ng(CMD_DOWNLOADED_BIGBUF, PM3_SUCCESS, test_data, PM3_CMD_DATA_SIZE);
|
reply_ng(CMD_DOWNLOADED_BIGBUF, PM3_SUCCESS, test_data, PM3_CMD_DATA_SIZE);
|
||||||
bytes_transferred += PM3_CMD_DATA_SIZE;
|
bytes_transferred += PM3_CMD_DATA_SIZE;
|
||||||
delta_time = GetTickCountDelta(start_time);
|
delta_time = GetTickCountDelta(start_time);
|
||||||
|
@ -396,7 +395,7 @@ static void printConnSpeed(void) {
|
||||||
/**
|
/**
|
||||||
* Prints runtime information about the PM3.
|
* Prints runtime information about the PM3.
|
||||||
**/
|
**/
|
||||||
static void SendStatus(void) {
|
static void SendStatus(int32_t speedTestTimeout) {
|
||||||
BigBuf_print_status();
|
BigBuf_print_status();
|
||||||
Fpga_print_status();
|
Fpga_print_status();
|
||||||
#ifdef WITH_FLASH
|
#ifdef WITH_FLASH
|
||||||
|
@ -412,7 +411,7 @@ static void SendStatus(void) {
|
||||||
#ifdef WITH_ISO14443a
|
#ifdef WITH_ISO14443a
|
||||||
printHf14aConfig(); // HF 14a config
|
printHf14aConfig(); // HF 14a config
|
||||||
#endif
|
#endif
|
||||||
printConnSpeed();
|
printConnSpeed(speedTestTimeout);
|
||||||
DbpString(_CYAN_("Various"));
|
DbpString(_CYAN_("Various"));
|
||||||
|
|
||||||
print_stack_usage();
|
print_stack_usage();
|
||||||
|
@ -2663,7 +2662,10 @@ static void PacketReceived(PacketCommandNG *packet) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CMD_STATUS: {
|
case CMD_STATUS: {
|
||||||
SendStatus();
|
if (packet->length == 4)
|
||||||
|
SendStatus(packet->data.asDwords[0]);
|
||||||
|
else
|
||||||
|
SendStatus(CONN_SPEED_TEST_MIN_TIME_DEFAULT);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CMD_TIA: {
|
case CMD_TIA: {
|
||||||
|
|
|
@ -37,6 +37,9 @@ int tearoff_hook(void);
|
||||||
// ADC Vref = 3300mV, (240k-10M):240k voltage divider, 140800 mV
|
// ADC Vref = 3300mV, (240k-10M):240k voltage divider, 140800 mV
|
||||||
#define MAX_ADC_LF_VOLTAGE 140800
|
#define MAX_ADC_LF_VOLTAGE 140800
|
||||||
|
|
||||||
|
// Default connection speed test timeout, used in hw status
|
||||||
|
#define CONN_SPEED_TEST_MIN_TIME_DEFAULT 500 // in milliseconds
|
||||||
|
|
||||||
extern int ToSendMax;
|
extern int ToSendMax;
|
||||||
extern uint8_t ToSend[];
|
extern uint8_t ToSend[];
|
||||||
|
|
||||||
|
|
|
@ -812,19 +812,29 @@ static int CmdStatus(const char *Cmd) {
|
||||||
CLIParserContext *ctx;
|
CLIParserContext *ctx;
|
||||||
CLIParserInit(&ctx, "hw status",
|
CLIParserInit(&ctx, "hw status",
|
||||||
"Show runtime status information about the connected Proxmark3",
|
"Show runtime status information about the connected Proxmark3",
|
||||||
"hw status"
|
"hw status\n"
|
||||||
|
"hw status --ms 1000 -> Test connection speed with 1000ms timeout\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
void *argtable[] = {
|
void *argtable[] = {
|
||||||
arg_param_begin,
|
arg_param_begin,
|
||||||
|
arg_int0("m", "ms", "<ms>", "speed test timeout in micro seconds"),
|
||||||
arg_param_end
|
arg_param_end
|
||||||
};
|
};
|
||||||
CLIExecWithReturn(ctx, Cmd, argtable, true);
|
CLIExecWithReturn(ctx, Cmd, argtable, true);
|
||||||
|
int32_t speedTestTimeout = arg_get_int_def(ctx, 1, -1);
|
||||||
CLIParserFree(ctx);
|
CLIParserFree(ctx);
|
||||||
|
|
||||||
clearCommandBuffer();
|
clearCommandBuffer();
|
||||||
PacketResponseNG resp;
|
PacketResponseNG resp;
|
||||||
SendCommandNG(CMD_STATUS, NULL, 0);
|
if (speedTestTimeout < 0) {
|
||||||
if (WaitForResponseTimeout(CMD_STATUS, &resp, 2000) == false) {
|
speedTestTimeout = 0;
|
||||||
|
SendCommandNG(CMD_STATUS, NULL, 0);
|
||||||
|
} else {
|
||||||
|
SendCommandNG(CMD_STATUS, (uint8_t *)&speedTestTimeout, sizeof(speedTestTimeout));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (WaitForResponseTimeout(CMD_STATUS, &resp, 2000 + speedTestTimeout) == false) {
|
||||||
PrintAndLogEx(WARNING, "Status command timeout. Communication speed test timed out");
|
PrintAndLogEx(WARNING, "Status command timeout. Communication speed test timed out");
|
||||||
return PM3_ETIMEOUT;
|
return PM3_ETIMEOUT;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue