X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/6a4271d186e0ad7d6d3f71c617c108e9d23188d4..d0724780ab600fd4c8e4b3a7dc43a9a01a3e8fb8:/client/cmddata.c diff --git a/client/cmddata.c b/client/cmddata.c index d0c2dfb3..18edd33e 100644 --- a/client/cmddata.c +++ b/client/cmddata.c @@ -76,7 +76,7 @@ void printDemodBuff(void) } if (bitLen>512) bitLen=512; //max output to 512 bits if we have more - should be plenty - char *bin = sprint_bin_break(DemodBuffer,bitLen,16); + char *bin = sprint_bin_break(DemodBuffer, bitLen,16); PrintAndLog("%s",bin); return; @@ -527,7 +527,11 @@ int ASKbiphaseDemod(const char *Cmd, bool verbose) sscanf(Cmd, "%i %i %i %i", &offset, &clk, &invert, &maxErr); uint8_t BitStream[MAX_DEMOD_BUF_LEN]; - size_t size = getFromGraphBuf(BitStream); + size_t size = getFromGraphBuf(BitStream); + if (size == 0 ) { + if (g_debugMode) PrintAndLog("DEBUG: no data in graphbuf"); + return 0; + } //invert here inverts the ask raw demoded bits which has no effect on the demod, but we need the pointer int errCnt = askdemod(BitStream, &size, &clk, &invert, maxErr, 0, 0); if ( errCnt < 0 || errCnt > maxErr ) { @@ -877,13 +881,16 @@ int CmdGraphShiftZero(const char *Cmd) int CmdAskEdgeDetect(const char *Cmd) { int thresLen = 25; + int last = 0; sscanf(Cmd, "%i", &thresLen); - for(int i = 1; i=thresLen) //large jump up - GraphBuffer[i-1] = 127; - else if(GraphBuffer[i]-GraphBuffer[i-1]<=-1*thresLen) //large jump down - GraphBuffer[i-1] = -127; + for(int i = 1; i < GraphTraceLen; ++i){ + if (GraphBuffer[i] - GraphBuffer[i-1] >= thresLen) //large jump up + last = 127; + else if(GraphBuffer[i] - GraphBuffer[i-1] <= -1 * thresLen) //large jump down + last = -127; + + GraphBuffer[i-1] = last; } RepaintGraphWindow(); return 0;