]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlf.c
data psk demod minor fixes, pyramid demod add CS
[proxmark3-svn] / client / cmdlf.c
index c72d84d7316c330607d07b4e3c1f038dbcfd97fe..dddf3dee773f8d3e4cd34545615814c01dfc7076 100644 (file)
@@ -685,11 +685,14 @@ int CmdLFfskSim(const char *Cmd)
   uint16_t arg1, arg2;
   arg1 = fcHigh << 8 | fcLow;
   arg2 = invert << 8 | clk;
-  UsbCommand c = {CMD_FSK_SIM_TAG, {arg1, arg2, DemodBufferLen}};
-  if (DemodBufferLen > USB_CMD_DATA_SIZE) {
-    PrintAndLog("DemodBuffer too long for current implementation - length: %d - max: %d", DemodBufferLen, USB_CMD_DATA_SIZE);
-  }
-  memcpy(c.d.asBytes, DemodBuffer, DemodBufferLen);
+  size_t size = DemodBufferLen;
+  if (size > USB_CMD_DATA_SIZE) {
+    PrintAndLog("DemodBuffer too long for current implementation - length: %d - max: %d", size, USB_CMD_DATA_SIZE);
+    size = USB_CMD_DATA_SIZE;
+  } 
+  UsbCommand c = {CMD_FSK_SIM_TAG, {arg1, arg2, size}};
+
+  memcpy(c.d.asBytes, DemodBuffer, size);
   SendCommand(&c);
   return 0;
 }
@@ -778,7 +781,6 @@ int CmdLFaskSim(const char *Cmd)
     size = USB_CMD_DATA_SIZE;
   }
   UsbCommand c = {CMD_ASK_SIM_TAG, {arg1, arg2, size}};
-
   PrintAndLog("preparing to sim ask data: %d bits", size);
   memcpy(c.d.asBytes, DemodBuffer, size);
   SendCommand(&c);
@@ -880,13 +882,14 @@ int CmdLFpskSim(const char *Cmd)
   uint16_t arg1, arg2;
   arg1 = clk << 8 | carrier;
   arg2 = invert;
-
-  UsbCommand c = {CMD_PSK_SIM_TAG, {arg1, arg2, DemodBufferLen}};
-  if (DemodBufferLen > USB_CMD_DATA_SIZE) {
-    PrintAndLog("DemodBuffer too long for current implementation - length: %d - max: %d", DemodBufferLen, USB_CMD_DATA_SIZE);
+  size_t size=DemodBufferLen;
+  if (size > USB_CMD_DATA_SIZE) {
+    PrintAndLog("DemodBuffer too long for current implementation - length: %d - max: %d", size, USB_CMD_DATA_SIZE);
+    size=USB_CMD_DATA_SIZE;
   }
-  PrintAndLog("DEBUG: Sending DemodBuffer Length: %d", DemodBufferLen);
-  memcpy(c.d.asBytes, DemodBuffer, DemodBufferLen);
+  UsbCommand c = {CMD_PSK_SIM_TAG, {arg1, arg2, size}};
+  PrintAndLog("DEBUG: Sending DemodBuffer Length: %d", size);
+  memcpy(c.d.asBytes, DemodBuffer, size);
   SendCommand(&c);
   
   return 0;
@@ -1077,7 +1080,9 @@ int CmdLFfind(const char *Cmd)
   if (testRaw=='u' || testRaw=='U'){
     //test unknown tag formats (raw mode)
     PrintAndLog("\nChecking for Unknown tags:\n");
-    ans=CmdDetectClockRate("f");
+    ans=AutoCorrelate(4000, FALSE, FALSE);
+    if (ans > 0) PrintAndLog("Possible Auto Correlation of %d repeating samples",ans);
+    ans=CmdDetectClockRate("F"); //GetFSKClock("",TRUE,FALSE);
     if (ans != 0){ //fsk
       ans=CmdFSKrawdemod("");
       if (ans>0) {
Impressum, Datenschutz