V4.1.10a - Added heart rate readings frozen fault warning.
This commit is contained in:
BIN
app/release/app-release-4.1.10a.apk
Normal file
BIN
app/release/app-release-4.1.10a.apk
Normal file
Binary file not shown.
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:versionCode="123"
|
||||
android:versionName="4.1.9">
|
||||
android:versionCode="124"
|
||||
android:versionName="4.1.10a">
|
||||
<!-- android:allowBackup="false" -->
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
|
||||
@@ -853,9 +853,9 @@ public class MainActivity extends AppCompatActivity {
|
||||
// Fault Conditions - We override the values in the UI because we do not know
|
||||
// if the stored ones are correct or not with a fault present.
|
||||
if ((mConnection.mSdServer.mSdData.alarmState == 4) ||
|
||||
(mConnection.mSdServer.mSdData.alarmState == 7)) {
|
||||
(mConnection.mSdServer.mSdData.alarmState == 7) || mConnection.mSdServer.mSdData.mHrFrozenFaultStanding) {
|
||||
tv = (TextView) findViewById(R.id.alarmTv);
|
||||
if (mConnection.mSdServer.mSdData.alarmState == 4) {
|
||||
if (mConnection.mSdServer.mSdData.alarmState == 4 || mConnection.mSdServer.mSdData.mHrFrozenFaultStanding) {
|
||||
tv.setText(R.string.Fault);
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
@@ -876,7 +876,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
tv.setTextColor(warnTextColour);
|
||||
|
||||
tv = (TextView) findViewById(R.id.pebbleTv);
|
||||
tv.setText(getString(R.string.HR_Equals) + " --- bpm\n"+getString(R.string.o2_sat)+" = --- %");
|
||||
//tv.setText(getString(R.string.HR_Equals) + " --- bpm\n"+getString(R.string.o2_sat)+" = --- %");
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
|
||||
|
||||
@@ -99,6 +99,7 @@ public class SdData implements Parcelable {
|
||||
|
||||
public CircBuf mAdaptiveHrBuf;
|
||||
public CircBuf mAverageHrBuf;
|
||||
public boolean mHrFrozenFaultStanding = false;
|
||||
int mNsamp = 0;
|
||||
|
||||
/* Analysis results */
|
||||
|
||||
@@ -104,6 +104,10 @@ public abstract class SdDataSource {
|
||||
private int mAlarmCount;
|
||||
protected String mBleDeviceAddr;
|
||||
protected String mBleDeviceName;
|
||||
private double mLastHrValue;
|
||||
private Time mHrStatusTime;
|
||||
private double mHrFrozenPeriod = 60; // seconds
|
||||
private boolean mHrFrozenAlarm;
|
||||
|
||||
|
||||
public SdDataSource(Context context, Handler handler, SdDataReceiver sdDataReceiver) {
|
||||
@@ -163,6 +167,12 @@ public abstract class SdDataSource {
|
||||
Log.v(TAG, "start(): status timer already running.");
|
||||
mUtil.writeToSysLogFile("SdDataSource.start() - status timer already running??");
|
||||
}
|
||||
|
||||
// Initialise time we last received a change in HR value.
|
||||
mHrStatusTime = new Time(Time.getCurrentTimezone());
|
||||
mHrStatusTime.setToNow();
|
||||
mLastHrValue = -1;
|
||||
|
||||
if (mFaultCheckTimer == null) {
|
||||
Log.v(TAG, "start(): starting alarm check timer");
|
||||
mUtil.writeToSysLogFile("SdDataSource.start() - starting alarm check timer");
|
||||
@@ -779,6 +789,21 @@ public abstract class SdDataSource {
|
||||
//Log.v(TAG, "faultCheck() - watch app not running so not doing anything");
|
||||
mAlarmCount = 0;
|
||||
}
|
||||
|
||||
if (mSdData.mHRAlarmActive && mHrFrozenAlarm) {
|
||||
if (mSdData.mHR != mLastHrValue) {
|
||||
mLastHrValue = mSdData.mHR;
|
||||
mHrStatusTime = tnow;
|
||||
mSdData.mHrFrozenFaultStanding = false;
|
||||
} else {
|
||||
tdiff = (tnow.toMillis(false) - mHrStatusTime.toMillis(false));
|
||||
if (tdiff > mHrFrozenPeriod *1000.) {
|
||||
mSdData.mHrFrozenFaultStanding = true;
|
||||
} else {
|
||||
mSdData.mHrFrozenFaultStanding = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void nnAnalysis() {
|
||||
@@ -971,6 +996,10 @@ public abstract class SdDataSource {
|
||||
Log.v(TAG, "updatePrefs() HRNullAsAlarm = " + mSdData.mHRNullAsAlarm);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() HRNullAsAlarm = " + mSdData.mHRNullAsAlarm);
|
||||
|
||||
mHrFrozenAlarm = SP.getBoolean("HrFrozenAlarm", true);
|
||||
Log.v(TAG, "updatePrefs() - mHrFrozenAlarm = " + mHrFrozenAlarm);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mHrFrozenAlarm = " + mHrFrozenAlarm);
|
||||
|
||||
prefStr = SP.getString("HRThreshMin", "SET_FROM_XML");
|
||||
mSdData.mHRThreshMin = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() HRThreshMin = " + mSdData.mHRThreshMin);
|
||||
|
||||
@@ -774,7 +774,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
|
||||
|
||||
// Fault
|
||||
if ((sdData.alarmState) == 4 || (sdData.alarmState == 7) || (sdData.mHRFaultStanding)) {
|
||||
if ((sdData.alarmState) == 4 || (sdData.alarmState == 7) || (sdData.mHRFaultStanding) || (sdData.mHrFrozenFaultStanding)) {
|
||||
sdData.alarmPhrase = "FAULT";
|
||||
//writeAlarmToSD();
|
||||
faultWarningBeep();
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<string name="app_name">OpenSeizureDetector</string>
|
||||
<string name="changelog">
|
||||
"\n
|
||||
\nV4.1.10 - Added warning if heart rate readings freeze and do not change for more than 1 minute.
|
||||
\nV4.1.9 - Fixed problem with average heart rate alarm
|
||||
Fixed issue with phone data source generating continuous alarms for Heart Rate or O2Sat
|
||||
Fixed a small number of user reported issues (https://github.com/OpenSeizureDetector/Android_Pebble_SD/issues?q=is%3Aissue+milestone%3AV4.1.8)
|
||||
@@ -499,4 +500,6 @@
|
||||
<string name="export_data_menuItem">Export Data</string>
|
||||
<string name="data_exported_ok">Data Exported OK</string>
|
||||
<string name="error_exporting_data">*** ERROR Exporting Data ***</string>
|
||||
<string name="HrFrozenTitle">Heart Rate measurement Frozen Warning</string>
|
||||
<string name="HrFrozenSummary">Produce a fault warning if the heart rate measurement freezes and does not change for more than 1 minute.</string>
|
||||
</resources>
|
||||
|
||||
@@ -83,6 +83,11 @@
|
||||
android:key="HRAlarmActive"
|
||||
android:summary="@string/HRAlarmEnabledSummary"
|
||||
android:title="@string/HRAlarmEnabledTitle" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="HrFrozenAlarm"
|
||||
android:summary="@string/HrFrozenSummary"
|
||||
android:title="@string/HrFrozenTitle" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="HRNullAsAlarm"
|
||||
|
||||
Reference in New Issue
Block a user