X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/ebfb4447b867205750692ca9bb54bcb6d9dc41e6..bb4e6dbd62423f5e6907ee44de86b5a57a408d1e:/common/lfdemod.c diff --git a/common/lfdemod.c b/common/lfdemod.c index 6beef130..d6ef88a4 100644 --- a/common/lfdemod.c +++ b/common/lfdemod.c @@ -751,8 +751,8 @@ int DetectPSKClock(uint8_t dest[], size_t size, int clock, size_t *firstPhaseShi uint16_t fcs = countFC(dest, size, 0); *fc = fcs & 0xFF; if (g_debugMode==2) prnt("DEBUG PSK: FC: %d, FC2: %d",*fc, fcs>>8); - if ((fcs>>8) == 10 && *fc == 8) return -1; - if (*fc!=2 && *fc!=4 && *fc!=8) return -1; + if ((fcs>>8) == 10 && *fc == 8) return 0; + if (*fc!=2 && *fc!=4 && *fc!=8) return 0; //if we already have a valid clock quit size_t i=1; @@ -833,15 +833,9 @@ int DetectPSKClock(uint8_t dest[], size_t size, int clock, size_t *firstPhaseShi return clk[best]; } -//int DetectPSKClock(uint8_t dest[], size_t size, int clock) { -// size_t firstPhaseShift = 0; -// uint8_t curPhase = 0; -// return DetectPSKClock_ext(dest, size, clock, &firstPhaseShift, &curPhase); -//} - //by marshmellow //detects the bit clock for FSK given the high and low Field Clocks -uint8_t detectFSKClk_ext(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_t fcLow, int *firstClockEdge) { +uint8_t detectFSKClk(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_t fcLow, int *firstClockEdge) { uint8_t clk[] = {8,16,32,40,50,64,100,128,0}; uint16_t rfLens[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; uint8_t rfCnts[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; @@ -947,11 +941,6 @@ uint8_t detectFSKClk_ext(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_ return clk[ii]; } -uint8_t detectFSKClk(uint8_t *BitStream, size_t size, uint8_t fcHigh, uint8_t fcLow) { - int firstClockEdge = 0; - return detectFSKClk_ext(BitStream, size, fcHigh, fcLow, &firstClockEdge); -} - //********************************************************************************************** //--------------------Modulation Demods &/or Decoding Section----------------------------------- //********************************************************************************************** @@ -977,7 +966,7 @@ bool findST(int *stStopLoc, int *stStartIdx, int lowToLowWaveLen[], int highToLo } //by marshmellow //attempt to identify a Sequence Terminator in ASK modulated raw wave -bool DetectST_ext(uint8_t buffer[], size_t *size, int *foundclock, size_t *ststart, size_t *stend) { +bool DetectST(uint8_t buffer[], size_t *size, int *foundclock, size_t *ststart, size_t *stend) { size_t bufsize = *size; //need to loop through all samples and identify our clock, look for the ST pattern int clk = 0; @@ -1098,10 +1087,6 @@ bool DetectST_ext(uint8_t buffer[], size_t *size, int *foundclock, size_t *ststa *size = newloc; return true; } -bool DetectST(uint8_t buffer[], size_t *size, int *foundclock) { - size_t ststart = 0, stend = 0; - return DetectST_ext(buffer, size, foundclock, &ststart, &stend); -} //by marshmellow //take 11 10 01 11 00 and make 01100 ... miller decoding @@ -1561,7 +1546,7 @@ int pskRawDemod_ext(uint8_t dest[], size_t *size, int *clock, int *invert, int * uint16_t errCnt=0, errCnt2=0; *clock = DetectPSKClock(dest, *size, *clock, &firstFullWave, &curPhase, &fc); - if (*clock == 0) return -1; + if (*clock <= 0) return -1; //if clock detect found firstfullwave... uint16_t tol = fc/2; if (firstFullWave == 0) {