Added alarm cause code. Fixes #111
This commit is contained in:
@@ -632,7 +632,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
tv.setTextColor(warnTextColour);
|
tv.setTextColor(warnTextColour);
|
||||||
}
|
}
|
||||||
if (mConnection.mSdServer.mSdData.alarmStanding) {
|
if (mConnection.mSdServer.mSdData.alarmStanding) {
|
||||||
tv.setText(R.string.Alarm);
|
tv.setText(getString(R.string.Alarm) + "\n" + mConnection.mSdServer.mSdData.alarmCause);
|
||||||
tv.setBackgroundColor(alarmColour);
|
tv.setBackgroundColor(alarmColour);
|
||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ public class SdData implements Parcelable {
|
|||||||
/* Analysis results */
|
/* Analysis results */
|
||||||
public Time dataTime = null;
|
public Time dataTime = null;
|
||||||
public long alarmState;
|
public long alarmState;
|
||||||
|
public String alarmCause = "";
|
||||||
public boolean alarmStanding = false;
|
public boolean alarmStanding = false;
|
||||||
public boolean fallAlarmStanding = false;
|
public boolean fallAlarmStanding = false;
|
||||||
public long maxVal;
|
public long maxVal;
|
||||||
@@ -223,6 +224,7 @@ public class SdData implements Parcelable {
|
|||||||
jsonObj.put("roiRatio", 10 * roiPower / specPower);
|
jsonObj.put("roiRatio", 10 * roiPower / specPower);
|
||||||
jsonObj.put("alarmState", alarmState);
|
jsonObj.put("alarmState", alarmState);
|
||||||
jsonObj.put("alarmPhrase", alarmPhrase);
|
jsonObj.put("alarmPhrase", alarmPhrase);
|
||||||
|
jsonObj.put("alarmCause", alarmCause);
|
||||||
jsonObj.put("hr", mHR);
|
jsonObj.put("hr", mHR);
|
||||||
jsonObj.put("adaptiveHrAv", mAdaptiveHrAverage);
|
jsonObj.put("adaptiveHrAv", mAdaptiveHrAverage);
|
||||||
jsonObj.put("averageHrAv", mAverageHrAverage);
|
jsonObj.put("averageHrAv", mAverageHrAverage);
|
||||||
@@ -273,6 +275,7 @@ public class SdData implements Parcelable {
|
|||||||
jsonObj.put("phoneBatteryPc", phoneBatteryPc);
|
jsonObj.put("phoneBatteryPc", phoneBatteryPc);
|
||||||
jsonObj.put("alarmState", alarmState);
|
jsonObj.put("alarmState", alarmState);
|
||||||
jsonObj.put("alarmPhrase", alarmPhrase);
|
jsonObj.put("alarmPhrase", alarmPhrase);
|
||||||
|
jsonObj.put("alarmCause", alarmCause);
|
||||||
jsonObj.put("sdMode", mSdMode);
|
jsonObj.put("sdMode", mSdMode);
|
||||||
jsonObj.put("sampleFreq", mSampleFreq);
|
jsonObj.put("sampleFreq", mSampleFreq);
|
||||||
jsonObj.put("analysisPeriod", analysisPeriod);
|
jsonObj.put("analysisPeriod", analysisPeriod);
|
||||||
@@ -338,6 +341,7 @@ public class SdData implements Parcelable {
|
|||||||
jsonObj.put("haveSettings", haveSettings);
|
jsonObj.put("haveSettings", haveSettings);
|
||||||
jsonObj.put("alarmState", alarmState);
|
jsonObj.put("alarmState", alarmState);
|
||||||
jsonObj.put("alarmPhrase", alarmPhrase);
|
jsonObj.put("alarmPhrase", alarmPhrase);
|
||||||
|
jsonObj.put("alarmCause", alarmCause);
|
||||||
jsonObj.put("sdMode", mSdMode);
|
jsonObj.put("sdMode", mSdMode);
|
||||||
jsonObj.put("sampleFreq", mSampleFreq);
|
jsonObj.put("sampleFreq", mSampleFreq);
|
||||||
jsonObj.put("analysisPeriod", analysisPeriod);
|
jsonObj.put("analysisPeriod", analysisPeriod);
|
||||||
|
|||||||
@@ -541,6 +541,7 @@ public abstract class SdDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check this data to see if it represents an alarm state.
|
// Check this data to see if it represents an alarm state.
|
||||||
|
mSdData.alarmCause = "";
|
||||||
alarmCheck();
|
alarmCheck();
|
||||||
hrCheck();
|
hrCheck();
|
||||||
o2SatCheck();
|
o2SatCheck();
|
||||||
@@ -569,12 +570,14 @@ public abstract class SdDataSource {
|
|||||||
// Is the current set of data representing an alarm state?
|
// Is the current set of data representing an alarm state?
|
||||||
if ((mSdData.roiPower > mAlarmThresh) && ((10 * mSdData.roiPower / mSdData.specPower) > mAlarmRatioThresh)) {
|
if ((mSdData.roiPower > mAlarmThresh) && ((10 * mSdData.roiPower / mSdData.specPower) > mAlarmRatioThresh)) {
|
||||||
inAlarm = true;
|
inAlarm = true;
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"OsdAlg ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mSdData.mCnnAlarmActive) {
|
if (mSdData.mCnnAlarmActive) {
|
||||||
if (mSdData.mPseizure > 0.5) {
|
if (mSdData.mPseizure > 0.5) {
|
||||||
inAlarm = true;
|
inAlarm = true;
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"CnnAlg ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -602,7 +605,10 @@ public abstract class SdDataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.v(TAG, "alarmCheck(): inAlarm=" + inAlarm + ", alarmState = " + mSdData.alarmState + " alarmCount=" + mAlarmCount + " mWarnTime=" + mWarnTime+ " mAlarmTime=" + mAlarmTime);
|
Log.v(TAG, "alarmCheck(): inAlarm=" + inAlarm + ", alarmCause="
|
||||||
|
+ mSdData.alarmCause + ", alarmState = " + mSdData.alarmState
|
||||||
|
+ " alarmCount=" + mAlarmCount + " mWarnTime=" + mWarnTime
|
||||||
|
+ " mAlarmTime=" + mAlarmTime);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -640,6 +646,8 @@ public abstract class SdDataSource {
|
|||||||
mSdData.mHRAlarmStanding = true;
|
mSdData.mHRAlarmStanding = true;
|
||||||
mSdData.mAdaptiveHrAlarmStanding = false;
|
mSdData.mAdaptiveHrAlarmStanding = false;
|
||||||
mSdData.mAverageHrAlarmStanding = false;
|
mSdData.mAverageHrAlarmStanding = false;
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"HrNull ";
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "Heart Rate Fault (HR<0)");
|
Log.i(TAG, "Heart Rate Fault (HR<0)");
|
||||||
mSdData.mHRFaultStanding = true;
|
mSdData.mHRFaultStanding = true;
|
||||||
@@ -650,8 +658,14 @@ public abstract class SdDataSource {
|
|||||||
} else {
|
} else {
|
||||||
mSdData.mHRFaultStanding = false;
|
mSdData.mHRFaultStanding = false;
|
||||||
mSdData.mHRAlarmStanding = checkResults.get(0);
|
mSdData.mHRAlarmStanding = checkResults.get(0);
|
||||||
|
if (mSdData.mHRAlarmStanding)
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"HR ";
|
||||||
mSdData.mAdaptiveHrAlarmStanding = checkResults.get(1);
|
mSdData.mAdaptiveHrAlarmStanding = checkResults.get(1);
|
||||||
|
if (mSdData.mAdaptiveHrAlarmStanding)
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"HR_ADAPT ";
|
||||||
mSdData.mAverageHrAlarmStanding = checkResults.get(2);
|
mSdData.mAverageHrAlarmStanding = checkResults.get(2);
|
||||||
|
if (mSdData.mAverageHrAlarmStanding)
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"HR_AVG ";
|
||||||
// Show an ALARM state if any of the HR alarms is standing.
|
// Show an ALARM state if any of the HR alarms is standing.
|
||||||
if (mSdData.mHRAlarmStanding | mSdData.mAdaptiveHrAlarmStanding | mSdData.mAverageHrAlarmStanding) {
|
if (mSdData.mHRAlarmStanding | mSdData.mAdaptiveHrAlarmStanding | mSdData.mAverageHrAlarmStanding) {
|
||||||
mSdData.alarmState = 2;
|
mSdData.alarmState = 2;
|
||||||
@@ -679,6 +693,7 @@ public abstract class SdDataSource {
|
|||||||
Log.i(TAG, "Oxygen Saturation Null - Alarming");
|
Log.i(TAG, "Oxygen Saturation Null - Alarming");
|
||||||
mSdData.mO2SatFaultStanding = false;
|
mSdData.mO2SatFaultStanding = false;
|
||||||
mSdData.mO2SatAlarmStanding = true;
|
mSdData.mO2SatAlarmStanding = true;
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"O2_NULL ";
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "Oxygen Saturation Fault (O2Sat<0)");
|
Log.i(TAG, "Oxygen Saturation Fault (O2Sat<0)");
|
||||||
mSdData.mO2SatFaultStanding = true;
|
mSdData.mO2SatFaultStanding = true;
|
||||||
@@ -688,6 +703,7 @@ public abstract class SdDataSource {
|
|||||||
Log.i(TAG, "Oxygen Saturation Abnormal - " + mSdData.mO2Sat + " %");
|
Log.i(TAG, "Oxygen Saturation Abnormal - " + mSdData.mO2Sat + " %");
|
||||||
mSdData.mO2SatFaultStanding = false;
|
mSdData.mO2SatFaultStanding = false;
|
||||||
mSdData.mO2SatAlarmStanding = true;
|
mSdData.mO2SatAlarmStanding = true;
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"O2SAT ";
|
||||||
} else {
|
} else {
|
||||||
mSdData.mO2SatFaultStanding = false;
|
mSdData.mO2SatFaultStanding = false;
|
||||||
mSdData.mO2SatAlarmStanding = false;
|
mSdData.mO2SatAlarmStanding = false;
|
||||||
@@ -729,6 +745,7 @@ public abstract class SdDataSource {
|
|||||||
Log.d(TAG, "check_fall() ****FALL DETECTED***** minAcc=" + minAcc + ", maxAcc=" + maxAcc);
|
Log.d(TAG, "check_fall() ****FALL DETECTED***** minAcc=" + minAcc + ", maxAcc=" + maxAcc);
|
||||||
Log.d(TAG, "check_fall() - ****FALL DETECTED****");
|
Log.d(TAG, "check_fall() - ****FALL DETECTED****");
|
||||||
mSdData.fallAlarmStanding = true;
|
mSdData.fallAlarmStanding = true;
|
||||||
|
mSdData.alarmCause = mSdData.alarmCause+"FALL ";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (mMute != 0) {
|
if (mMute != 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user