]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlfpyramid.c
fix 'hf iclass writebl' and 'hf iclass clone' (#896)
[proxmark3-svn] / client / cmdlfpyramid.c
index 613a0b66a61cb7913328cc201756b8eab1ab5107..823677203a3ba9c7eeb7d89aad8d5ccb15fbcaed 100644 (file)
@@ -5,12 +5,15 @@
 // the license.
 //-----------------------------------------------------------------------------
 // Low frequency Farpoint / Pyramid tag commands
+// FSK2a, rf/50, 128 bits (complete)
 //-----------------------------------------------------------------------------
+
+#include "cmdlfpyramid.h"
+
 #include <string.h>
 #include <inttypes.h>
 #include <stdio.h>
-#include "cmdlfpyramid.h"
-#include "proxmark3.h"
+#include "comms.h"
 #include "ui.h"
 #include "util.h"
 #include "graph.h"
@@ -95,8 +98,9 @@ int CmdFSKdemodPyramid(const char *Cmd)
        size_t size = getFromGraphBuf(BitStream);
        if (size==0) return 0;
 
+       int waveIdx=0;
        //get binary from fsk wave
-       int idx = PyramiddemodFSK(BitStream, &size);
+       int idx = PyramiddemodFSK(BitStream, &size, &waveIdx);
        if (idx < 0){
                if (g_debugMode){
                        if (idx == -5)
@@ -151,6 +155,7 @@ int CmdFSKdemodPyramid(const char *Cmd)
        uint32_t rawHi2 = bytebits_to_byte(BitStream+idx+32,32);
        uint32_t rawHi3 = bytebits_to_byte(BitStream+idx,32);
        setDemodBuf(BitStream,128,idx);
+       setClockGrid(50, waveIdx + (idx*50));
 
        size = removeParity(BitStream, idx+8, 8, 1, 120);
        if (size != 105){
@@ -225,8 +230,7 @@ int CmdFSKdemodPyramid(const char *Cmd)
 }
 
 int CmdPyramidRead(const char *Cmd) {
-       CmdLFRead("s");
-       getSamples("30000",false);
+       lf_read(true, 15000);
        return CmdFSKdemodPyramid("");
 }
 
Impressum, Datenschutz