]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - client/cmdlfviking.c
fix "hf mf chk" <t|d|s|ss> flags (based on PR #700) (#718)
[proxmark3-svn] / client / cmdlfviking.c
index edbc35009029a3b1b4f2a6d074f0559d554c1bd2..73a9126af568904dab306d19ccf217bf44bf052b 100644 (file)
@@ -4,12 +4,16 @@
 // at your option, any later version. See the LICENSE.txt file for the text of
 // the license.
 //-----------------------------------------------------------------------------
-// Low frequency Viking tag commands
+// Low frequency Viking tag commands (AKA FDI Matalec Transit)
+// ASK/Manchester, RF/32, 64 bits (complete)
 //-----------------------------------------------------------------------------
+
+#include "cmdlfviking.h"
+
 #include <stdio.h>
 #include <string.h>
 #include <inttypes.h>
-#include "proxmark3.h"
+#include "comms.h"
 #include "ui.h"
 #include "util.h"
 #include "graph.h"
@@ -50,7 +54,6 @@ uint64_t getVikingBits(uint32_t id) {
        return ((uint64_t)0xF2 << 56) | ((uint64_t)id << 8) | checksum;
 }
 
-//could be moved to a viking file
 //by marshmellow
 //see ASKDemod for what args are accepted
 int CmdVikingDemod(const char *Cmd) {
@@ -72,7 +75,8 @@ int CmdVikingDemod(const char *Cmd) {
        uint8_t  checksum = bytebits_to_byte(DemodBuffer+ans+32+24, 8);
        PrintAndLog("Viking Tag Found: Card ID %08X, Checksum: %02X", cardid, (unsigned int) checksum);
        PrintAndLog("Raw: %08X%08X", raw1,raw2);
-       setDemodBuf(DemodBuffer+ans, 64, 0);
+       setDemodBuf(DemodBuffer, 64, ans);
+       setClockGrid(g_DemodClock, g_DemodStartIdx + (ans*g_DemodClock));
        return 1;
 }
 
@@ -80,9 +84,7 @@ int CmdVikingDemod(const char *Cmd) {
 //see ASKDemod for what args are accepted
 int CmdVikingRead(const char *Cmd) {
        // read lf silently
-       CmdLFRead("s");
-       // get samples silently
-       getSamples("10000",false);
+       lf_read(true, 10000);
        // demod and output viking ID   
        return CmdVikingDemod(Cmd);
 }
Impressum, Datenschutz