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;
}
Ejemplo n.º 2
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();
		}
	}
}
Ejemplo n.º 3
0
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();
}