]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - common/lfdemod.c
CHG: removed an extra space.
[proxmark3-svn] / common / lfdemod.c
index 144cb32735c7269e3b6eea34ee25679309b0097d..a14f2613fd11817bac9a7998357b23e13444205f 100644 (file)
@@ -1079,7 +1079,10 @@ void psk1TOpsk2(uint8_t *BitStream, size_t size)
        size_t i=1;
        uint8_t lastBit=BitStream[0];
        for (; i<size; i++){
-               if (lastBit!=BitStream[i]){
+               if ( BitStream[i] == 77 ){
+                       
+               } 
+               else if (lastBit!=BitStream[i]){
                        lastBit=BitStream[i];
                        BitStream[i]=1;
                } else {
@@ -1094,11 +1097,9 @@ void psk1TOpsk2(uint8_t *BitStream, size_t size)
 // from only transition waves are 1s to phase shifts change bit
 void psk2TOpsk1(uint8_t *BitStream, size_t size)
 {
-       size_t i;
-       uint8_t phase=BitStream[0];
-       //uint8_t lastBit=BitStream[0];
-       for (i=1; i<size; i++){
-               if (phase!=BitStream[i]){
+       uint8_t phase=0;
+       for (size_t i=0; i<size; i++){
+               if (BitStream[i]==1){
                        phase ^=1;
                }
                BitStream[i]=phase;
@@ -1600,7 +1601,7 @@ int pskRawDemod(uint8_t dest[], size_t *size, int *clock, int *invert)
   *clock = DetectPSKClock(dest, *size, *clock);
   if (*clock==0) return -1;
   int avgWaveVal=0, lastAvgWaveVal=0;
-  //find first full wave
+  //find first phase shift
   for (i=0; i<loopCnt; i++){
     if (dest[i]+fc < dest[i+1] && dest[i+1] >= dest[i+2]){
       if (waveStart == 0) {
@@ -1631,7 +1632,9 @@ int pskRawDemod(uint8_t dest[], size_t *size, int *clock, int *invert)
   errCnt=0;
   size_t numBits=0;
   //PrintAndLog("DEBUG: clk: %d, lastClkBit: %d", *clock, lastClkBit);
-
+  //set skipped bits
+  memset(dest+numBits, curPhase^1,firstFullWave / *clock);
+  numBits += (firstFullWave / *clock);
   for (i = firstFullWave+fullWaveLen-1; i < *size-3; i++){
     //top edge of wave = start of new wave 
     if (dest[i]+fc < dest[i+1] && dest[i+1] >= dest[i+2]){
Impressum, Datenschutz