X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/5bce72d5e3b5921ac7d8f08eeaa406fd2a53d4b0..b97311b1bde85d0aa388085e9a5747ac4da680d5:/client/cmddata.c diff --git a/client/cmddata.c b/client/cmddata.c index ef1229c2..b3e23cb6 100644 --- a/client/cmddata.c +++ b/client/cmddata.c @@ -22,8 +22,6 @@ #include "cmdparser.h"// already included in cmdmain.h #include "usb_cmd.h" // already included in cmdmain.h and proxmark3.h #include "lfdemod.h" // for demod code -#include "crc.h" // for pyramid checksum maxim -#include "crc16.h" // for FDXB demod checksum #include "loclass/cipherutils.h" // for decimating samples in getsamples #include "cmdlfem4x.h"// for em410x demod @@ -53,6 +51,24 @@ void setDemodBuf(uint8_t *buff, size_t size, size_t startIdx) return; } +// option '1' to save DemodBuffer any other to restore +void save_restoreDB(uint8_t saveOpt) +{ + static uint8_t SavedDB[MAX_GRAPH_TRACE_LEN]; + static size_t SavedDBlen; + static bool DB_Saved = false; + + if (saveOpt==1) { //save + memcpy(SavedDB, DemodBuffer, sizeof(DemodBuffer)); + SavedDBlen = DemodBufferLen; + DB_Saved=true; + } else if (DB_Saved){ //restore + memcpy(DemodBuffer, SavedDB, sizeof(DemodBuffer)); + DemodBufferLen = SavedDBlen; + } + return; +} + int CmdSetDebugMode(const char *Cmd) { int demod=0; @@ -202,6 +218,11 @@ int ASKDemod_ext(const char *Cmd, bool verbose, bool emSearch, uint8_t askType, CursorCPos = ststart; CursorDPos = stend; if (verbose || g_debugMode) PrintAndLog("\nFound Sequence Terminator - First one is shown by orange and blue graph markers"); + //Graph ST trim (for testing) + //for (int i = 0; i < BitLen; i++) { + // GraphBuffer[i] = BitStream[i]-128; + //} + //RepaintGraphWindow(); } int errCnt = askdemod(BitStream, &BitLen, &clk, &invert, maxErr, askamp, askType); if (errCnt<0 || BitLen<16){ //if fatal error (or -1) @@ -820,14 +841,6 @@ int PSKDemod(const char *Cmd, bool verbose) uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0}; size_t BitLen = getFromGraphBuf(BitStream); if (BitLen==0) return 0; - uint8_t carrier=countFC(BitStream, BitLen, 0); - if (carrier!=2 && carrier!=4 && carrier!=8){ - //invalid carrier - return 0; - } - if (g_debugMode){ - PrintAndLog("Carrier: rf/%d",carrier); - } int errCnt=0; errCnt = pskRawDemod(BitStream, &BitLen, &clk, &invert); if (errCnt > maxErr){ @@ -1298,9 +1311,9 @@ int CmdMtrim(const char *Cmd) { if (start > GraphTraceLen || stop > GraphTraceLen || start > stop) return 0; start++; //leave start position sample - GraphTraceLen -= stop - start; + GraphTraceLen = stop - start; for (int i = 0; i < GraphTraceLen; i++) { - GraphBuffer[start+i] = GraphBuffer[stop+i]; + GraphBuffer[i] = GraphBuffer[start+i]; } return 0; }