X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/fb0c84c3df8bb19bcefb5d2124d61ff2ac3d0af7..0e6c7336b09102432a728796cf4903efc6d3ec5b:/client/graph.c diff --git a/client/graph.c b/client/graph.c index c9457ff1..f4acc579 100644 --- a/client/graph.c +++ b/client/graph.c @@ -24,10 +24,10 @@ void AppendGraph(int redraw, int clock, int bit) int i; //set first half the clock bit (all 1's or 0's for a 0 or 1 bit) for (i = 0; i < (int)(clock / 2); ++i) - GraphBuffer[GraphTraceLen++] = bit ^ 1; + GraphBuffer[GraphTraceLen++] = bit ; //set second half of the clock bit (all 0's or 1's for a 0 or 1 bit) for (i = (int)(clock / 2); i < clock; ++i) - GraphBuffer[GraphTraceLen++] = bit; + GraphBuffer[GraphTraceLen++] = bit ^ 1; if (redraw) RepaintGraphWindow(); @@ -134,6 +134,26 @@ int GetAskClock(const char str[], bool printAns, bool verbose) return clock; } +uint8_t GetPskCarrier(const char str[], bool printAns, bool verbose) +{ + uint8_t carrier=0; + uint8_t grph[MAX_GRAPH_TRACE_LEN]={0}; + size_t size = getFromGraphBuf(grph); + if ( size == 0 ) { + if (verbose) + PrintAndLog("Failed to copy from graphbuffer"); + return 0; + } + //uint8_t countPSK_FC(uint8_t *BitStream, size_t size) + + carrier = countFC(grph,size,0); + // Only print this message if we're not looping something + if (printAns){ + PrintAndLog("Auto-detected PSK carrier rate: %d", carrier); + } + return carrier; +} + int GetPskClock(const char str[], bool printAns, bool verbose) { int clock; @@ -212,8 +232,7 @@ uint8_t fskClocks(uint8_t *fc1, uint8_t *fc2, uint8_t *rf1, bool verbose) uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0}; size_t size = getFromGraphBuf(BitStream); if (size==0) return 0; - uint8_t dummy = 0; - uint16_t ans = countFC(BitStream, size, &dummy); + uint16_t ans = countFC(BitStream, size, 1); if (ans==0) { if (verbose) PrintAndLog("DEBUG: No data found"); return 0;