Added alarm latching option to SD Server app.
This commit is contained in:
Binary file not shown.
@@ -165,6 +165,13 @@ public class MainActivity extends Activity
|
|||||||
Log.v(TAG,"exception starting pebble App "+ex.toString());
|
Log.v(TAG,"exception starting pebble App "+ex.toString());
|
||||||
}
|
}
|
||||||
return true;
|
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:
|
case R.id.action_start_stop:
|
||||||
// Respond to the start/stop server menu item.
|
// Respond to the start/stop server menu item.
|
||||||
Log.v(TAG,"action_sart_stop");
|
Log.v(TAG,"action_sart_stop");
|
||||||
@@ -243,7 +250,7 @@ public class MainActivity extends Activity
|
|||||||
versionName = null;
|
versionName = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tv.setText("OpenSeizureDetector Server Version "+versionName);
|
tv.setText("OpenSeizureDetector Server Version " + versionName);
|
||||||
|
|
||||||
if (!isServerRunning()) {
|
if (!isServerRunning()) {
|
||||||
Log.v(TAG,"Server not Running - Starting Server");
|
Log.v(TAG,"Server not Running - Starting Server");
|
||||||
@@ -445,16 +452,24 @@ public class MainActivity extends Activity
|
|||||||
try {
|
try {
|
||||||
if (mBound) {
|
if (mBound) {
|
||||||
tv = (TextView) findViewById(R.id.alarmTv);
|
tv = (TextView) findViewById(R.id.alarmTv);
|
||||||
if (mSdServer.sdData.alarmState==0) {
|
if ((mSdServer.sdData.alarmState==0)
|
||||||
tv.setText(mSdServer.sdData.alarmPhrase);
|
&& !mSdServer.sdData.alarmStanding
|
||||||
|
&& !mSdServer.sdData.fallAlarmStanding) {
|
||||||
|
tv.setText("OK");
|
||||||
tv.setBackgroundColor(okColour);
|
tv.setBackgroundColor(okColour);
|
||||||
}
|
}
|
||||||
if (mSdServer.sdData.alarmState==1) {
|
if ((mSdServer.sdData.alarmState==1)
|
||||||
tv.setText(mSdServer.sdData.alarmPhrase);
|
&& !mSdServer.sdData.alarmStanding
|
||||||
|
&& !mSdServer.sdData.fallAlarmStanding) {
|
||||||
|
tv.setText("WARNING");
|
||||||
tv.setBackgroundColor(warnColour);
|
tv.setBackgroundColor(warnColour);
|
||||||
}
|
}
|
||||||
if (mSdServer.sdData.alarmState==2) {
|
if (mSdServer.sdData.alarmStanding) {
|
||||||
tv.setText(mSdServer.sdData.alarmPhrase);
|
tv.setText("**ALARM**");
|
||||||
|
tv.setBackgroundColor(alarmColour);
|
||||||
|
}
|
||||||
|
if (mSdServer.sdData.fallAlarmStanding) {
|
||||||
|
tv.setText("**FALL**");
|
||||||
tv.setBackgroundColor(alarmColour);
|
tv.setBackgroundColor(alarmColour);
|
||||||
}
|
}
|
||||||
tv = (TextView) findViewById(R.id.pebTimeTv);
|
tv = (TextView) findViewById(R.id.pebTimeTv);
|
||||||
|
|||||||
@@ -53,6 +53,8 @@ public class SdData implements Parcelable {
|
|||||||
/* Analysis results */
|
/* Analysis results */
|
||||||
public Time dataTime;
|
public Time dataTime;
|
||||||
public long alarmState;
|
public long alarmState;
|
||||||
|
public boolean alarmStanding = false;
|
||||||
|
public boolean fallAlarmStanding = false;
|
||||||
public long maxVal;
|
public long maxVal;
|
||||||
public long maxFreq;
|
public long maxFreq;
|
||||||
public long specPower;
|
public long specPower;
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ public class SdServer extends Service
|
|||||||
private WakeLock mWakeLock = null;
|
private WakeLock mWakeLock = null;
|
||||||
public SdData sdData;
|
public SdData sdData;
|
||||||
private PebbleKit.PebbleDataReceiver msgDataHandler = null;
|
private PebbleKit.PebbleDataReceiver msgDataHandler = null;
|
||||||
|
private boolean mLatchAlarms = false;
|
||||||
private boolean mCancelAudible = false;
|
private boolean mCancelAudible = false;
|
||||||
private boolean mAudibleAlarm = false;
|
private boolean mAudibleAlarm = false;
|
||||||
private boolean mAudibleWarning = false;
|
private boolean mAudibleWarning = false;
|
||||||
@@ -459,12 +460,24 @@ public class SdServer extends Service
|
|||||||
sdData.roiPower = data.getUnsignedIntegerAsLong(KEY_ROIPOWER);
|
sdData.roiPower = data.getUnsignedIntegerAsLong(KEY_ROIPOWER);
|
||||||
sdData.alarmPhrase = "Unknown";
|
sdData.alarmPhrase = "Unknown";
|
||||||
if (sdData.alarmState == 0) {
|
if (sdData.alarmState == 0) {
|
||||||
|
if ((!mLatchAlarms) ||
|
||||||
|
(mLatchAlarms &&
|
||||||
|
(!sdData.alarmStanding && !sdData.fallAlarmStanding))) {
|
||||||
sdData.alarmPhrase = "OK";
|
sdData.alarmPhrase = "OK";
|
||||||
|
sdData.alarmStanding = false;
|
||||||
|
sdData.fallAlarmStanding = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (sdData.alarmState == 1) {
|
if (sdData.alarmState == 1) {
|
||||||
|
if ((!mLatchAlarms) ||
|
||||||
|
(mLatchAlarms &&
|
||||||
|
(!sdData.alarmStanding && !sdData.fallAlarmStanding))) {
|
||||||
sdData.alarmPhrase = "WARNING";
|
sdData.alarmPhrase = "WARNING";
|
||||||
|
sdData.alarmStanding = false;
|
||||||
|
sdData.fallAlarmStanding = false;
|
||||||
|
}
|
||||||
if (mLogAlarms) {
|
if (mLogAlarms) {
|
||||||
Log.v(TAG, "WARNING - Loggin to SD Card");
|
Log.v(TAG, "WARNING - Logging to SD Card");
|
||||||
writeAlarmToSD();
|
writeAlarmToSD();
|
||||||
logData();
|
logData();
|
||||||
} else {
|
} else {
|
||||||
@@ -472,8 +485,9 @@ public class SdServer extends Service
|
|||||||
}
|
}
|
||||||
warningBeep();
|
warningBeep();
|
||||||
}
|
}
|
||||||
if (sdData.alarmState == 2) {
|
if ((sdData.alarmState == 2) || (sdData.alarmStanding)) {
|
||||||
sdData.alarmPhrase = "ALARM";
|
sdData.alarmPhrase = "ALARM";
|
||||||
|
sdData.alarmStanding = true;
|
||||||
if (mLogAlarms) {
|
if (mLogAlarms) {
|
||||||
Log.v(TAG, "***ALARM*** - Logging to SD Card");
|
Log.v(TAG, "***ALARM*** - Logging to SD Card");
|
||||||
writeAlarmToSD();
|
writeAlarmToSD();
|
||||||
@@ -496,8 +510,9 @@ public class SdServer extends Service
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sdData.alarmState == 3) {
|
if ((sdData.alarmState == 3) || (sdData.fallAlarmStanding)) {
|
||||||
sdData.alarmPhrase = "FALL";
|
sdData.alarmPhrase = "FALL";
|
||||||
|
sdData.fallAlarmStanding = true;
|
||||||
if (mLogAlarms) {
|
if (mLogAlarms) {
|
||||||
Log.v(TAG, "***FALL*** - Logging to SD Card");
|
Log.v(TAG, "***FALL*** - Logging to SD Card");
|
||||||
writeAlarmToSD();
|
writeAlarmToSD();
|
||||||
@@ -555,6 +570,15 @@ public class SdServer extends Service
|
|||||||
PebbleKit.registerReceivedDataHandler(this,msgDataHandler);
|
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
|
* De-register this server from receiving pebble data
|
||||||
*/
|
*/
|
||||||
@@ -701,6 +725,8 @@ public class SdServer extends Service
|
|||||||
SharedPreferences SP = PreferenceManager
|
SharedPreferences SP = PreferenceManager
|
||||||
.getDefaultSharedPreferences(getBaseContext());
|
.getDefaultSharedPreferences(getBaseContext());
|
||||||
try {
|
try {
|
||||||
|
mLatchAlarms = SP.getBoolean("LatchAlarms",false);
|
||||||
|
Log.v(TAG,"updatePrefs() - mLatchAlarms = "+mLatchAlarms);
|
||||||
mAudibleFaultWarning = SP.getBoolean("AudibleFaultWarning",true);
|
mAudibleFaultWarning = SP.getBoolean("AudibleFaultWarning",true);
|
||||||
Log.v(TAG,"updatePrefs() - mAuidbleFaultWarning = "+mAudibleFaultWarning);
|
Log.v(TAG,"updatePrefs() - mAuidbleFaultWarning = "+mAudibleFaultWarning);
|
||||||
mAudibleAlarm = SP.getBoolean("AudibleAlarm",true);
|
mAudibleAlarm = SP.getBoolean("AudibleAlarm",true);
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||||
|
<item android:id="@+id/action_accept_alarm"
|
||||||
|
android:title="Accept Alarm"
|
||||||
|
android:showAsAction="never|withText"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
<item android:id="@+id/action_launch_pebble_app"
|
<item android:id="@+id/action_launch_pebble_app"
|
||||||
android:icon="@drawable/stop_server"
|
android:icon="@drawable/stop_server"
|
||||||
android:title="Launch Pebble App"
|
android:title="Launch Pebble App"
|
||||||
|
|||||||
@@ -1,5 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="LatchAlarms"
|
||||||
|
android:title="Latch Alarms"
|
||||||
|
android:summary="Require manual reset of alarms to reset them to silence them."
|
||||||
|
android:defaultValue="false" />
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="AudibleAlarm"
|
android:key="AudibleAlarm"
|
||||||
android:title="Enable Audible Alarm"
|
android:title="Enable Audible Alarm"
|
||||||
|
|||||||
Reference in New Issue
Block a user