// 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"
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) {
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;
}
//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);
}