From 6427695bb4cc103dab95db0d1e646f940b9a0523 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Wed, 22 Jul 2015 23:45:41 +0200 Subject: [PATCH] ADD: using @holiman's "ubs_poll_validate_length() function in some device-side functions. -hitag2, -legicrf, HIDdemodFSK, CmDAWIDdemodFSK, CmdEM410xdemod, CmdIOdemodFSK It should enable them to be aborted with a call to "hw ping / hw status" instead of only button-press. Which is good when you are scripting stuff. --- armsrc/apps.h | 1 + armsrc/hitag2.c | 4 ++-- armsrc/legicrf.c | 2 +- armsrc/lfops.c | 8 ++++---- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/armsrc/apps.h b/armsrc/apps.h index bb777eab..ff0b3472 100644 --- a/armsrc/apps.h +++ b/armsrc/apps.h @@ -21,6 +21,7 @@ #include "lfdemod.h" #include "BigBuf.h" #include "fpgaloader.h" +#include "usb_cdc.h" #include "hitag2.h" #include "mifare.h" //#include "des.h" diff --git a/armsrc/hitag2.c b/armsrc/hitag2.c index 7998d491..7cc6b964 100644 --- a/armsrc/hitag2.c +++ b/armsrc/hitag2.c @@ -765,7 +765,7 @@ void SnoopHitag(uint32_t type) { bSkip = true; tag_sof = 4; - while(!BUTTON_PRESS()) { + while(!BUTTON_PRESS() && !usb_poll_validate_length()) { // Watchdog hit WDT_HIT(); @@ -992,7 +992,7 @@ void SimulateHitagTag(bool tag_mem_supplied, byte_t* data) { // Enable and reset counter AT91C_BASE_TC1->TC_CCR = AT91C_TC_CLKEN | AT91C_TC_SWTRG; - while(!BUTTON_PRESS()) { + while(!BUTTON_PRESS() && !usb_poll_validate_length()) { // Watchdog hit WDT_HIT(); diff --git a/armsrc/legicrf.c b/armsrc/legicrf.c index 074a0f78..68d4e760 100644 --- a/armsrc/legicrf.c +++ b/armsrc/legicrf.c @@ -711,7 +711,7 @@ void LegicRfSimulate(int phase, int frame, int reqresp) LED_B_ON(); DbpString("Starting Legic emulator, press button to end"); - while(!BUTTON_PRESS()) { + while(!BUTTON_PRESS() && !usb_poll_validate_length()) { int level = !!(AT91C_BASE_PIOA->PIO_PDSR & GPIO_SSC_DIN); int time = timer->TC_CV; diff --git a/armsrc/lfops.c b/armsrc/lfops.c index 0cdd12d5..3c7a544e 100644 --- a/armsrc/lfops.c +++ b/armsrc/lfops.c @@ -762,7 +762,7 @@ void CmdHIDdemodFSK(int findone, int *high, int *low, int ledcontrol) // Configure to go in 125Khz listen mode LFSetupFPGAForADC(95, true); - while(!BUTTON_PRESS()) { + while(!BUTTON_PRESS() && !usb_poll_validate_length()) { WDT_HIT(); if (ledcontrol) LED_A_ON(); @@ -851,7 +851,7 @@ void CmdAWIDdemodFSK(int findone, int *high, int *low, int ledcontrol) // Configure to go in 125Khz listen mode LFSetupFPGAForADC(95, true); - while(!BUTTON_PRESS()) { + while(!BUTTON_PRESS() && !usb_poll_validate_length()) { WDT_HIT(); if (ledcontrol) LED_A_ON(); @@ -942,7 +942,7 @@ void CmdEM410xdemod(int findone, int *high, int *low, int ledcontrol) // Configure to go in 125Khz listen mode LFSetupFPGAForADC(95, true); - while(!BUTTON_PRESS()) { + while(!BUTTON_PRESS() && !usb_poll_validate_length()) { WDT_HIT(); if (ledcontrol) LED_A_ON(); @@ -1003,7 +1003,7 @@ void CmdIOdemodFSK(int findone, int *high, int *low, int ledcontrol) // Configure to go in 125Khz listen mode LFSetupFPGAForADC(95, true); - while(!BUTTON_PRESS()) { + while(!BUTTON_PRESS() && !usb_poll_validate_length()) { WDT_HIT(); if (ledcontrol) LED_A_ON(); DoAcquisition_default(-1,true); -- 2.39.5