int checkData(int input) { if(buffer[loopCheck(counter-2,4)] < buffer[loopCheck(counter-1,4)] && buffer[loopCheck(counter-1,4)] > buffer[loopCheck(counter,4)]) { peaks[loopCheck(peakcounter,30)] = buffer[loopCheck(counter-1,4)]; if(peaks[loopCheck(peakcounter,30)] > threshold1){ Rpeaks[loopCheck(rpeakcounter,30)] = peaks[loopCheck(peakcounter,30)]; calculateRR(); pulse = (1/RR)*60; if(RR_low < RR && RR < RR_high){ storeRPeakOK(rpeakcounter); misscounter = 0; }else{ misscounter++; if(RR > RR_miss){ searchBack(); } displayData(peaks[loopCheck(peakcounter,30)], pulse, (int)currentTime); } rpeakcounter++; lastEvent = currentTime; } else{ setNPKF(peaks[loopCheck(peakcounter-1,30)]); setThreshold1(); setThreshold2(); } peakcounter++; } return 0; }
void calcRR(int t1, int t2, int peak) { RR = t2-t1; /* if(RR < 0) { RR = RR*-1; } */ if(debug == 1) { printf("\nEntering CalcRR\n"); printf("RR_LOW = %d < RR = %d < RR_HIGH = %d\n",RR_LOW, RR, RR_HIGH); printf("RR %d > RR_MISS %d\n", RR, RR_MISS); } if(RR > RR_LOW && RR < RR_HIGH) { if(debug == 1) { //printf("RR_LOW = %d < RR = %d < RR_HIGH = %d\n",RR_LOW, RR, RR_HIGH); } RRMISSCount = 0; //Resettes hvis RR ligger imellem low & high RRCALC[1] = t2; addToRPeak(peak); findSPKF(peak); if(debug == 1) { printf("SPKF = %d\n", SPKF); } shiftBothRecent(); RecentRR_OK[0] = RR; RecentRR[0] = RR; RR = 0; findAVG2(); findAVG1(); findRRLow(); findRRHigh(); findRRMiss(); findThreshold1(); findThreshold2(); } else { //printf("Else\n"); addMissCount(); if(RR > RR_MISS) { searchBack(); } } }
void detectPeaks() { int R_peak = run_QRS(getPastBuffered(&buffered_filtered_data, 2), getPastBuffered(&buffered_filtered_data, 1), getPastBuffered(&buffered_filtered_data, 0)); if (R_peak) { printf(" %d\t", number); printf("%d:\t", line); printf("R-peak: %d\t", getPastBuffered(&buffered_filtered_data, 1)); printf("Measured at: %.2f s\t", 0.004 * line); printf("Current pulse: %d BPM\n", calculatePulse(line)); if (getPastBuffered(&buffered_filtered_data, 1) < 2000) { //TODO: fjern magisk tal! printf( "!WARNING!: PULSE LOW.\n !SEEK MEDICAL ATTENTION IMMEDIATELY!\n"); } number++; if (R_peak == 2) { int missed_peak = searchBack(); if (missed_peak) { printf(" %d\t", number); printf("%d:\t", line); printf("Missed R-peak: %d\t", missed_peak); printf("Measured at: %.2f s\t", 0.004 * line); //printf("Current pulse: %d BPM\n", calculatePulse(line)); if (missed_peak < 2000) { //TODO: fjern magisk tal! printf( "!WARNING!: PULSE LOW.\n !SEEK MEDICAL ATTENTION IMMEDIATELY!\n"); } number++; } } } checkMissedInterval(); }