]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlfawid.c
CHG: the AT91C_BASE_PMC->PMC_PCER has a tendecy to be clear when set with "=", ...
[proxmark3-svn] / client / cmdlfawid.c
index 2334e3e3321ffba7ded59066a8ae37d167f22650..fefc6e0af1a2b6a15d921ddb81668f1ae5bdf231 100644 (file)
@@ -84,6 +84,18 @@ int usage_lf_awid_brute(void){
        return 0;
 }
 
+static int sendPing(void){
+       UsbCommand ping = {CMD_PING, {1, 2, 3}};
+       SendCommand(&ping);
+       SendCommand(&ping);     
+       SendCommand(&ping);     
+       clearCommandBuffer();
+       UsbCommand resp;
+       if (WaitForResponseTimeout(CMD_ACK, &resp, 1000))
+               return 0;
+       return 1;
+}
+
 static bool sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay, uint8_t *bs, size_t bs_len){
 
        PrintAndLog("Trying FC: %u; CN: %u", fc, cn);           
@@ -99,21 +111,10 @@ static bool sendTry(uint8_t fmtlen, uint32_t fc, uint32_t cn, uint32_t delay, ui
        clearCommandBuffer();
        SendCommand(&c);
        msleep(delay);
+       sendPing();
        return TRUE;
 }
-static int sendPing(){
-       UsbCommand resp;
-       UsbCommand ping = {CMD_PING};
-       clearCommandBuffer(); SendCommand(&ping);
-       clearCommandBuffer(); SendCommand(&ping);
-       clearCommandBuffer(); SendCommand(&ping);
-       if (WaitForResponseTimeout(CMD_ACK, &resp, 1000)) {
-               PrintAndLog("aborted via keyboard!");
-               return 0;
-       }
-       PrintAndLog("Device didnt respond to ABORT");   
-       return 1;
-}
+
 
 int CmdAWIDDemodFSK(const char *Cmd) {
        int findone = 0;
@@ -357,8 +358,6 @@ int CmdAWIDBrute(const char *Cmd){
                        break;
        }
        
-       // start
-       
        PrintAndLog("Bruteforceing AWID %d Reader", fmtlen);
        PrintAndLog("Press pm3-button to abort simulation or press key");
 
@@ -367,7 +366,14 @@ int CmdAWIDBrute(const char *Cmd){
        
        for (;;){
        
-               if (ukbhit()) return sendPing();
+               if ( offline ) {
+                       printf("Device offline\n");
+                       return  2;
+               }
+               if (ukbhit()) {
+                       PrintAndLog("aborted via keyboard!");
+                       return sendPing();
+               }
                
                // Do one up
                if ( up < 0xFFFF )
Impressum, Datenschutz