- // jump to modulating data by finding the first 2 threshold crossings (or first 1 waves)
- // in case you have junk or noise at the beginning of the trace...
- uint8_t thresholdCnt = 0;
- size_t waveSizeCnt = 0;
- uint8_t threshold_value = 123; //-5
- bool isAboveThreshold = dest[i++] >= threshold_value;
- for (; i < *size-20; i++ ) {
- if(dest[i] < threshold_value && isAboveThreshold) {
- thresholdCnt++;
- if (thresholdCnt > 2 && waveSizeCnt < fc+1) break;
- isAboveThreshold = false;
- waveSizeCnt = 0;
- } else if (dest[i] >= threshold_value && !isAboveThreshold) {
- thresholdCnt++;
- if (thresholdCnt > 2 && waveSizeCnt < fc+1) break;
- isAboveThreshold = true;
- waveSizeCnt = 0;
- } else {
- waveSizeCnt++;
- }
- if (thresholdCnt > 10) break;
- }
- if (g_debugMode == 2) prnt("DEBUG PSK: threshold Count reached at %u, count: %u",i, thresholdCnt);