]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/command.cpp
change usb_cmd struct to be more sane
[proxmark3-svn] / client / command.cpp
index 0214a0ab94af36d895f3c72f145155ffb7b718ea..108cd770118e4bfc2afbf86bb7947d45aab5f4ec 100644 (file)
@@ -34,7 +34,7 @@ static void GetFromBigBuf(BYTE *dest, int bytes)
        for(i = 0; i < n; i += 12) {\r
                UsbCommand c;\r
                c.cmd = CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K;\r
-               c.ext1 = i;\r
+               c.arg[0] = i;\r
                SendCommand(&c, FALSE);\r
                ReceiveCommand(&c);\r
                if(c.cmd != CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K) {\r
@@ -91,7 +91,7 @@ static void CmdHi14read(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -104,30 +104,30 @@ static void CmdSri512read(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_READ_SRI512_TAG;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 }\r
-
-/* New command to read the contents of a SRIX4K tag
- * SRIX4K tags are ISO14443-B modulated memory tags,
- * this command just dumps the contents of the memory/
- */
-static void CmdSrix4kread(char *str)
-{
-        UsbCommand c;
-        c.cmd = CMD_READ_SRIX4K_TAG;
-        c.ext1 = atoi(str);
-        SendCommand(&c, FALSE);
-}
-
-
+\r
+/* New command to read the contents of a SRIX4K tag\r
+ * SRIX4K tags are ISO14443-B modulated memory tags,\r
+ * this command just dumps the contents of the memory/\r
+ */\r
+static void CmdSrix4kread(char *str)\r
+{\r
+        UsbCommand c;\r
+        c.cmd = CMD_READ_SRIX4K_TAG;\r
+        c.arg[0] = atoi(str);\r
+        SendCommand(&c, FALSE);\r
+}\r
+\r
+\r
 \r
 // ## New command\r
 static void CmdHi14areader(char *str)\r
 {\r
        UsbCommand c;\r
        c.cmd = CMD_READER_ISO_14443a;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -136,7 +136,7 @@ static void CmdHi15reader(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_READER_ISO_15693;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -145,7 +145,7 @@ static void CmdHi15tag(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_SIMTAG_ISO_15693;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -153,7 +153,7 @@ static void CmdHi14read_sim(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443_SIM;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -161,13 +161,13 @@ static void CmdHi14readt(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 \r
        //CmdHisamplest(str);\r
        while(CmdHisamplest(str,atoi(str))==0) {\r
                c.cmd = CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443;\r
-               c.ext1 = atoi(str);\r
+               c.arg[0] = atoi(str);\r
                SendCommand(&c, FALSE);\r
        }\r
        RepaintGraphWindow();\r
@@ -201,8 +201,8 @@ static void CmdHi14asim(char *str)  // ## simulate iso14443a tag
 \r
        c.cmd = CMD_SIMULATE_TAG_ISO_14443a;\r
        // c.ext should be set to *str or convert *str to the correct format for a uid\r
-       c.ext1 = hi;\r
-       c.ext2 = lo;\r
+       c.arg[0] = hi;\r
+       c.arg[1] = lo;\r
        PrintToScrollback("Emulating 14443A TAG with UID %x%16x", hi, lo);\r
        SendCommand(&c, FALSE);\r
 }\r
@@ -681,13 +681,13 @@ static void CmdLosim(char *str)
                        c.d.asBytes[j] = GraphBuffer[i+j];\r
                }\r
                c.cmd = CMD_DOWNLOADED_SIM_SAMPLES_125K;\r
-               c.ext1 = i;\r
+               c.arg[0] = i;\r
                SendCommand(&c, FALSE);\r
        }\r
 \r
        UsbCommand c;\r
        c.cmd = CMD_SIMULATE_TAG_125K;\r
-       c.ext1 = GraphTraceLen;\r
+       c.arg[0] = GraphTraceLen;\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -695,8 +695,8 @@ static void CmdLosimBidir(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_LF_SIMULATE_BIDIR;\r
-       c.ext1 = 47; /* Set ADC to twice the carrier for a slight supersampling */\r
-       c.ext2 = 384;\r
+       c.arg[0] = 47; /* Set ADC to twice the carrier for a slight supersampling */\r
+       c.arg[1] = 384;\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -705,9 +705,9 @@ static void CmdLoread(char *str)
        UsbCommand c;\r
        // 'h' means higher-low-frequency, 134 kHz\r
        if(*str == 'h') {\r
-               c.ext1 = 1;\r
+               c.arg[0] = 1;\r
        } else if (*str == '\0') {\r
-               c.ext1 = 0;\r
+               c.arg[0] = 0;\r
        } else {\r
                PrintToScrollback("use 'loread' or 'loread h'");\r
                return;\r
@@ -721,9 +721,9 @@ static void CmdDetectReader(char *str)
        UsbCommand c;\r
        // 'l' means LF - 125/134 kHz\r
        if(*str == 'l') {\r
-               c.ext1 = 1;\r
+               c.arg[0] = 1;\r
        } else if (*str == 'h') {\r
-               c.ext1 = 2;\r
+               c.arg[0] = 2;\r
        } else if (*str != '\0') {\r
                PrintToScrollback("use 'detectreader' or 'detectreader l' or 'detectreader h'");\r
                return;\r
@@ -741,7 +741,7 @@ static void CmdLoCommandRead(char *str)
 \r
        UsbCommand c;\r
        c.cmd = CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K;\r
-       sscanf(str, "%i %i %i %s %s", &c.ext1, &c.ext2, &c.ext3, (char *) &c.d.asBytes,(char *) &dummy+1);\r
+       sscanf(str, "%i %i %i %s %s", &c.arg[0], &c.arg[1], &c.arg[2], (char *) &c.d.asBytes,(char *) &dummy+1);\r
        // in case they specified 'h'\r
        strcpy((char *)&c.d.asBytes + strlen((char *)c.d.asBytes), dummy);\r
        SendCommand(&c, FALSE);\r
@@ -760,7 +760,7 @@ static void CmdLosamples(char *str)
        for(i = 0; i < n; i += 12) {\r
                UsbCommand c;\r
                c.cmd = CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K;\r
-               c.ext1 = i;\r
+               c.arg[0] = i;\r
                SendCommand(&c, FALSE);\r
                ReceiveCommand(&c);\r
                if(c.cmd != CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K) {\r
@@ -787,7 +787,7 @@ static void CmdBitsamples(char *str)
        for(i = 0; i < n; i += 12) {\r
                UsbCommand c;\r
                c.cmd = CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K;\r
-               c.ext1 = i;\r
+               c.arg[0] = i;\r
                SendCommand(&c, FALSE);\r
                ReceiveCommand(&c);\r
                if(c.cmd != CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K) {\r
@@ -818,7 +818,7 @@ static void CmdHisamples(char *str)
        for(i = 0; i < n; i += 12) {\r
                UsbCommand c;\r
                c.cmd = CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K;\r
-               c.ext1 = i;\r
+               c.arg[0] = i;\r
                SendCommand(&c, FALSE);\r
                ReceiveCommand(&c);\r
                if(c.cmd != CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K) {\r
@@ -850,7 +850,7 @@ static int CmdHisamplest(char *str, int nrlow)
        for(i = 0; i < n; i += 12) {\r
                UsbCommand c;\r
                c.cmd = CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K;\r
-               c.ext1 = i;\r
+               c.arg[0] = i;\r
                SendCommand(&c, FALSE);\r
                ReceiveCommand(&c);\r
                if(c.cmd != CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K) {\r
@@ -922,7 +922,7 @@ static void CmdHexsamples(char *str)
        for(i = 0; i < n; i += 12) {\r
                UsbCommand c;\r
                c.cmd = CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K;\r
-               c.ext1 = i;\r
+               c.arg[0] = i;\r
                SendCommand(&c, FALSE);\r
                ReceiveCommand(&c);\r
                if(c.cmd != CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K) {\r
@@ -966,7 +966,7 @@ static void CmdHisampless(char *str)
        for(i = 0; i < n; i += 12) {\r
                UsbCommand c;\r
                c.cmd = CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K;\r
-               c.ext1 = i;\r
+               c.arg[0] = i;\r
                SendCommand(&c, FALSE);\r
                ReceiveCommand(&c);\r
                if(c.cmd != CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K) {\r
@@ -1577,8 +1577,8 @@ static void CmdTIWrite(char *str)
        int res=0;\r
 \r
        c.cmd = CMD_WRITE_TI_TYPE;\r
-       res = sscanf(str, "0x%x 0x%x 0x%x ", &c.ext1, &c.ext2, &c.ext3);\r
-       if (res == 2) c.ext3=0;\r
+       res = sscanf(str, "0x%x 0x%x 0x%x ", &c.arg[0], &c.arg[1], &c.arg[2]);\r
+       if (res == 2) c.arg[2]=0;\r
        if (res<2)\r
                PrintToScrollback("Please specify the data as two hex strings, optionally the CRC as a third");\r
        else\r
@@ -2809,8 +2809,8 @@ static void CmdHIDsimTAG(char *str)
        PrintToScrollback("Emulating tag with ID %x%16x", hi, lo);\r
 \r
        c.cmd = CMD_HID_SIM_TAG;\r
-       c.ext1 = hi;\r
-       c.ext2 = lo;\r
+       c.arg[0] = hi;\r
+       c.arg[1] = lo;\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -2818,7 +2818,7 @@ static void CmdReadmem(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_READ_MEM;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -2833,7 +2833,7 @@ static void CmdLcdReset(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_LCD_RESET;\r
-       c.ext1 = atoi(str);\r
+       c.arg[0] = atoi(str);\r
        SendCommand(&c, FALSE);\r
 }\r
 \r
@@ -2844,7 +2844,7 @@ static void CmdLcd(char *str)
        c.cmd = CMD_LCD;\r
        sscanf(str, "%x %d", &i, &j);\r
        while (j--) {\r
-               c.ext1 = i&0x1ff;\r
+               c.arg[0] = i&0x1ff;\r
                SendCommand(&c, FALSE);\r
        }\r
 }\r
@@ -2857,12 +2857,12 @@ static void CmdSetDivisor(char *str)
 {\r
        UsbCommand c;\r
        c.cmd = CMD_SET_LF_DIVISOR;\r
-       c.ext1 = atoi(str);\r
-       if (( c.ext1<0) || (c.ext1>255)) {\r
+       c.arg[0] = atoi(str);\r
+       if (( c.arg[0]<0) || (c.arg[0]>255)) {\r
                        PrintToScrollback("divisor must be between 19 and 255");\r
        } else {\r
                        SendCommand(&c, FALSE);\r
-                       PrintToScrollback("Divisor set, expected freq=%dHz", 12000000/(c.ext1+1));\r
+                       PrintToScrollback("Divisor set, expected freq=%dHz", 12000000/(c.arg[0]+1));\r
        }\r
 }\r
 \r
@@ -2871,13 +2871,13 @@ static void CmdSetMux(char *str)
        UsbCommand c;\r
        c.cmd = CMD_SET_ADC_MUX;\r
        if(strcmp(str, "lopkd") == 0) {\r
-               c.ext1 = 0;\r
+               c.arg[0] = 0;\r
        } else if(strcmp(str, "loraw") == 0) {\r
-               c.ext1 = 1;\r
+               c.arg[0] = 1;\r
        } else if(strcmp(str, "hipkd") == 0) {\r
-               c.ext1 = 2;\r
+               c.arg[0] = 2;\r
        } else if(strcmp(str, "hiraw") == 0) {\r
-               c.ext1 = 3;\r
+               c.arg[0] = 3;\r
        }\r
        SendCommand(&c, FALSE);\r
 }\r
@@ -2957,7 +2957,7 @@ static struct {
        {"setlfdivisor",        CmdSetDivisor,                  0, "<19 - 255> -- Drive LF antenna at 12Mhz/(divisor+1)"},\r
        {"setmux",              CmdSetMux,                      0, "<loraw|hiraw|lopkd|hipkd> -- Set the ADC mux to a specific value"},\r
        {"sri512read",          CmdSri512read,                  0, "<int> -- Read contents of a SRI512 tag"},\r
-       {"srix4kread",          CmdSrix4kread,                  0, "<int> -- Read contents of a SRIX4K tag"},
+       {"srix4kread",          CmdSrix4kread,                  0, "<int> -- Read contents of a SRIX4K tag"},\r
        {"tidemod",                             CmdTIDemod,                                     1, "Demodulate raw bits for TI-type LF tag"},\r
        {"tiread",                              CmdTIRead,                                      0, "Read and decode a TI 134 kHz tag"},\r
        {"tiwrite",                             CmdTIWrite,                                     0, "Write new data to a r/w TI 134 kHz tag"},\r
@@ -3049,27 +3049,27 @@ void UsbCommandReceived(UsbCommand *c)
        switch(c->cmd) {\r
                case CMD_DEBUG_PRINT_STRING: {\r
                        char s[100];\r
-                       if(c->ext1 > 70 || c->ext1 < 0) {\r
-                               c->ext1 = 0;\r
+                       if(c->arg[0] > 70 || c->arg[0] < 0) {\r
+                               c->arg[0] = 0;\r
                        }\r
-                       memcpy(s, c->d.asBytes, c->ext1);\r
-                       s[c->ext1] = '\0';\r
+                       memcpy(s, c->d.asBytes, c->arg[0]);\r
+                       s[c->arg[0]] = '\0';\r
                        PrintToScrollback("#db# %s", s);\r
                        break;\r
                }\r
 \r
                case CMD_DEBUG_PRINT_INTEGERS:\r
-                       PrintToScrollback("#db# %08x, %08x, %08x\r\n", c->ext1, c->ext2, c->ext3);\r
+                       PrintToScrollback("#db# %08x, %08x, %08x\r\n", c->arg[0], c->arg[1], c->arg[2]);\r
                        break;\r
 \r
                case CMD_MEASURED_ANTENNA_TUNING: {\r
                        int peakv, peakf;\r
                        int vLf125, vLf134, vHf;\r
-                       vLf125 = c->ext1 & 0xffff;\r
-                       vLf134 = c->ext1 >> 16;\r
-                       vHf = c->ext2 & 0xffff;;\r
-                       peakf = c->ext3 & 0xffff;\r
-                       peakv = c->ext3 >> 16;\r
+                       vLf125 = c->arg[0] & 0xffff;\r
+                       vLf134 = c->arg[0] >> 16;\r
+                       vHf = c->arg[1] & 0xffff;;\r
+                       peakf = c->arg[2] & 0xffff;\r
+                       peakv = c->arg[2] >> 16;\r
                        PrintToScrollback("");\r
                        PrintToScrollback("");\r
                        PrintToScrollback("# LF antenna: %5.2f V @   125.00 kHz", vLf125/1000.0);\r
Impressum, Datenschutz