@@ -592,37 +592,44 @@ public void hrCheck() {
592
592
Log .v (TAG , "hrCheck()" );
593
593
ArrayList <Boolean > checkResults ;
594
594
checkResults = mSdAlgHr .checkHr (mSdData .mHR );
595
+
596
+ // Populate mSdData so that the heart rate data is logged and is accessible to user interface components.
597
+ mSdData .mAdaptiveHrAverage = mSdAlgHr .getAdaptiveHrAverage ();
598
+ mSdData .mAverageHrAverage = mSdAlgHr .getAverageHrAverage ();
599
+ mSdData .mAdaptiveHrBuf = mSdAlgHr .getAdaptiveHrBuff ();
600
+ mSdData .mAverageHrBuf = mSdAlgHr .getAverageHrBuff ();
601
+
595
602
/* Check for heart rate fault condition */
596
603
if (mSdData .mHRAlarmActive ) {
597
604
if (mSdData .mHR < 0 ) {
598
605
if (mSdData .mHRNullAsAlarm ) {
599
606
Log .i (TAG , "Heart Rate Null - Alarming" );
600
607
mSdData .mHRFaultStanding = false ;
601
608
mSdData .mHRAlarmStanding = true ;
602
- mSdData .mAdaptiveHRAlarmStanding = false ;
603
- mSdData .mAverageHRAlarmStanding = false ;
609
+ mSdData .mAdaptiveHrAlarmStanding = false ;
610
+ mSdData .mAverageHrAlarmStanding = false ;
604
611
} else {
605
612
Log .i (TAG , "Heart Rate Fault (HR<0)" );
606
613
mSdData .mHRFaultStanding = true ;
607
614
mSdData .mHRAlarmStanding = false ;
608
- mSdData .mAdaptiveHRAlarmStanding = false ;
609
- mSdData .mAverageHRAlarmStanding = false ;
615
+ mSdData .mAdaptiveHrAlarmStanding = false ;
616
+ mSdData .mAverageHrAlarmStanding = false ;
610
617
}
611
618
} else {
612
619
mSdData .mHRFaultStanding = false ;
613
620
mSdData .mHRAlarmStanding = checkResults .get (0 );
614
- mSdData .mAdaptiveHRAlarmStanding = checkResults .get (1 );
615
- mSdData .mAverageHRAlarmStanding = checkResults .get (2 );
621
+ mSdData .mAdaptiveHrAlarmStanding = checkResults .get (1 );
622
+ mSdData .mAverageHrAlarmStanding = checkResults .get (2 );
616
623
// Show an ALARM state if any of the HR alarms is standing.
617
- if (mSdData .mHRAlarmStanding | mSdData .mAdaptiveHRAlarmStanding | mSdData .mAverageHRAlarmStanding ) {
624
+ if (mSdData .mHRAlarmStanding | mSdData .mAdaptiveHrAlarmStanding | mSdData .mAverageHrAlarmStanding ) {
618
625
mSdData .alarmState = 2 ;
619
626
}
620
627
}
621
628
} else {
622
629
mSdData .mHRFaultStanding = false ;
623
630
mSdData .mHRAlarmStanding = false ;
624
- mSdData .mAdaptiveHRAlarmStanding = false ;
625
- mSdData .mAverageHRAlarmStanding = false ;
631
+ mSdData .mAdaptiveHrAlarmStanding = false ;
632
+ mSdData .mAverageHrAlarmStanding = false ;
626
633
627
634
}
628
635
}
@@ -787,6 +794,28 @@ void nnAnalysis() {
787
794
}
788
795
}
789
796
797
+ /**
798
+ * Read a preference value, and return it as a double.
799
+ * FIXME - this should be in osdUtil so other classes can use it.
800
+ *
801
+ * @param SP - Shared Preferences object
802
+ * @param prefName - name of preference to read.
803
+ * @param defVal - default value if it is not stored.
804
+ * @return double value of the stored specified preference, or the default value.
805
+ */
806
+ private double readDoublePref (SharedPreferences SP , String prefName , String defVal ) {
807
+ String prefValStr ;
808
+ double retVal = -1 ;
809
+ try {
810
+ prefValStr = SP .getString (prefName , defVal );
811
+ retVal = Double .parseDouble (prefValStr );
812
+ } catch (Exception ex ) {
813
+ Log .v (TAG , "readDoublePref() - Problem with preference!" );
814
+ //mUtil.showToast(TAG+":"+mContext.getString(R.string.problem_parsing_preferences));
815
+ }
816
+ return retVal ;
817
+ }
818
+
790
819
/**
791
820
* updatePrefs() - update basic settings from the SharedPreferences
792
821
* - defined in res/xml/SdDataSourceNetworkPassivePrefs.xml
@@ -952,6 +981,23 @@ public void updatePrefs() {
952
981
Log .v (TAG , "updatePrefs() HRThreshMax = " + mSdData .mHRThreshMax );
953
982
mUtil .writeToSysLogFile ( "updatePrefs() HRThreshMax = " + mSdData .mHRThreshMax );
954
983
984
+ mSdData .mAdaptiveHrAlarmActive = SP .getBoolean ("HRAdaptiveAlarmActive" , false );
985
+ mSdData .mAdaptiveHrAlarmWindowSecs = readDoublePref (SP , "HRAdaptiveAlarmWindowSecs" , "30" );
986
+ mSdData .mAdaptiveHrAlarmThresh = readDoublePref (SP , "HRAdaptiveAlarmThresh" , "20" );
987
+ Log .d (TAG ,"updatePrefs(): mAdaptiveHrAlarmActive=" +mSdData .mAdaptiveHrAlarmActive );
988
+ Log .d (TAG ,"updatePrefs(): mAdaptiveHrWindowSecs=" +mSdData .mAdaptiveHrAlarmWindowSecs );
989
+ Log .d (TAG ,"updatePrefs(): mAdaptiveHrAlarmThresh=" +mSdData .mAdaptiveHrAlarmThresh );
990
+
991
+ mSdData .mAverageHrAlarmActive = SP .getBoolean ("HRAverageAlarmActive" , false );
992
+ mSdData .mAverageHrAlarmWindowSecs = readDoublePref (SP , "HRAverageAlarmWindowSecs" , "120" );
993
+ mSdData .mAverageHrAlarmThreshMin = readDoublePref (SP , "HRAverageAlarmThreshMin" , "40" );
994
+ mSdData .mAverageHrAlarmThreshMax = readDoublePref (SP , "HRAverageAlarmThreshMax" , "120" );
995
+ Log .d (TAG ,"updatePrefs(): mAverageHrAlarmActive=" +mSdData .mAverageHrAlarmActive );
996
+ Log .d (TAG ,"updatePrefs(): mAverageHrAlarmWindowSecs=" +mSdData .mAverageHrAlarmWindowSecs );
997
+ Log .d (TAG ,"updatePrefs(): mAverageHrAlarmThreshMin=" +mSdData .mAverageHrAlarmThreshMin );
998
+ Log .d (TAG ,"updatePrefs(): mAverageHrAlarmThreshMax=" +mSdData .mAverageHrAlarmThreshMax );
999
+
1000
+
955
1001
mSdData .mO2SatAlarmActive = SP .getBoolean ("O2SatAlarmActive" , false );
956
1002
Log .v (TAG , "updatePrefs() O2SatAlarmActive = " + mSdData .mO2SatAlarmActive );
957
1003
mUtil .writeToSysLogFile ( "updatePrefs() O2SatAlarmActive = " + mSdData .mO2SatAlarmActive );
0 commit comments