Added alarm latching option to SD Server app.

This commit is contained in:
Graham Jones
2015-11-10 23:09:22 +00:00
parent eec87aedd7
commit 3b240e3a54
6 changed files with 68 additions and 13 deletions

View File

@@ -165,6 +165,13 @@ public class MainActivity extends Activity
Log.v(TAG,"exception starting pebble App "+ex.toString());
}
return true;
case R.id.action_accept_alarm:
Log.v(TAG,"action_accept_alarm");
if (mBound) {
mSdServer.acceptAlarm();
}
return true;
case R.id.action_start_stop:
// Respond to the start/stop server menu item.
Log.v(TAG,"action_sart_stop");
@@ -243,7 +250,7 @@ public class MainActivity extends Activity
versionName = null;
}
}
tv.setText("OpenSeizureDetector Server Version "+versionName);
tv.setText("OpenSeizureDetector Server Version " + versionName);
if (!isServerRunning()) {
Log.v(TAG,"Server not Running - Starting Server");
@@ -445,18 +452,26 @@ public class MainActivity extends Activity
try {
if (mBound) {
tv = (TextView) findViewById(R.id.alarmTv);
if (mSdServer.sdData.alarmState==0) {
tv.setText(mSdServer.sdData.alarmPhrase);
if ((mSdServer.sdData.alarmState==0)
&& !mSdServer.sdData.alarmStanding
&& !mSdServer.sdData.fallAlarmStanding) {
tv.setText("OK");
tv.setBackgroundColor(okColour);
}
if (mSdServer.sdData.alarmState==1) {
tv.setText(mSdServer.sdData.alarmPhrase);
if ((mSdServer.sdData.alarmState==1)
&& !mSdServer.sdData.alarmStanding
&& !mSdServer.sdData.fallAlarmStanding) {
tv.setText("WARNING");
tv.setBackgroundColor(warnColour);
}
if (mSdServer.sdData.alarmState==2) {
tv.setText(mSdServer.sdData.alarmPhrase);
if (mSdServer.sdData.alarmStanding) {
tv.setText("**ALARM**");
tv.setBackgroundColor(alarmColour);
}
if (mSdServer.sdData.fallAlarmStanding) {
tv.setText("**FALL**");
tv.setBackgroundColor(alarmColour);
}
tv = (TextView) findViewById(R.id.pebTimeTv);
tv.setText(mSdServer.mPebbleStatusTime.format("%H:%M:%S"));
// Pebble Connected Phrase

View File

@@ -53,6 +53,8 @@ public class SdData implements Parcelable {
/* Analysis results */
public Time dataTime;
public long alarmState;
public boolean alarmStanding = false;
public boolean fallAlarmStanding = false;
public long maxVal;
public long maxFreq;
public long specPower;

View File

@@ -141,6 +141,7 @@ public class SdServer extends Service
private WakeLock mWakeLock = null;
public SdData sdData;
private PebbleKit.PebbleDataReceiver msgDataHandler = null;
private boolean mLatchAlarms = false;
private boolean mCancelAudible = false;
private boolean mAudibleAlarm = false;
private boolean mAudibleWarning = false;
@@ -459,12 +460,24 @@ public class SdServer extends Service
sdData.roiPower = data.getUnsignedIntegerAsLong(KEY_ROIPOWER);
sdData.alarmPhrase = "Unknown";
if (sdData.alarmState == 0) {
sdData.alarmPhrase = "OK";
}
if ((!mLatchAlarms) ||
(mLatchAlarms &&
(!sdData.alarmStanding && !sdData.fallAlarmStanding))) {
sdData.alarmPhrase = "OK";
sdData.alarmStanding = false;
sdData.fallAlarmStanding = false;
}
}
if (sdData.alarmState == 1) {
sdData.alarmPhrase = "WARNING";
if ((!mLatchAlarms) ||
(mLatchAlarms &&
(!sdData.alarmStanding && !sdData.fallAlarmStanding))) {
sdData.alarmPhrase = "WARNING";
sdData.alarmStanding = false;
sdData.fallAlarmStanding = false;
}
if (mLogAlarms) {
Log.v(TAG, "WARNING - Loggin to SD Card");
Log.v(TAG, "WARNING - Logging to SD Card");
writeAlarmToSD();
logData();
} else {
@@ -472,8 +485,9 @@ public class SdServer extends Service
}
warningBeep();
}
if (sdData.alarmState == 2) {
if ((sdData.alarmState == 2) || (sdData.alarmStanding)) {
sdData.alarmPhrase = "ALARM";
sdData.alarmStanding = true;
if (mLogAlarms) {
Log.v(TAG, "***ALARM*** - Logging to SD Card");
writeAlarmToSD();
@@ -496,8 +510,9 @@ public class SdServer extends Service
}
}
}
if (sdData.alarmState == 3) {
if ((sdData.alarmState == 3) || (sdData.fallAlarmStanding)) {
sdData.alarmPhrase = "FALL";
sdData.fallAlarmStanding = true;
if (mLogAlarms) {
Log.v(TAG, "***FALL*** - Logging to SD Card");
writeAlarmToSD();
@@ -555,6 +570,15 @@ public class SdServer extends Service
PebbleKit.registerReceivedDataHandler(this,msgDataHandler);
}
/**
* set the alarm standing flags to false to allow alarm phase to reset to current value.
*/
public void acceptAlarm() {
Log.v(TAG,"acceptAlarm()");
sdData.alarmStanding = false;
sdData.fallAlarmStanding = false;
}
/**
* De-register this server from receiving pebble data
*/
@@ -701,6 +725,8 @@ public class SdServer extends Service
SharedPreferences SP = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
try {
mLatchAlarms = SP.getBoolean("LatchAlarms",false);
Log.v(TAG,"updatePrefs() - mLatchAlarms = "+mLatchAlarms);
mAudibleFaultWarning = SP.getBoolean("AudibleFaultWarning",true);
Log.v(TAG,"updatePrefs() - mAuidbleFaultWarning = "+mAudibleFaultWarning);
mAudibleAlarm = SP.getBoolean("AudibleAlarm",true);