Skip to content

Commit 8f905b0

Browse files
committed
Merge branch 'V4.1.x'
2 parents bb451e1 + 09f33ee commit 8f905b0

4 files changed

Lines changed: 97 additions & 77 deletions

File tree

app/release/app-release-4.1.10.apk

-11.9 MB
Binary file not shown.

app/release/app-release-4.1.12.apk

-11.9 MB
Binary file not shown.

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools"
4-
android:versionCode="127"
5-
android:versionName="4.1.12">
4+
android:versionCode="131"
5+
android:versionName="4.1.13">
66
<!-- android:allowBackup="false" -->
77
<uses-permission android:name="android.permission.BLUETOOTH" />
88
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

app/src/main/java/uk/org/openseizuredetector/SdDataSource.java

Lines changed: 95 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -757,98 +757,118 @@ private double calcRawDataStd(SdData sdData) {
757757
* and sets class variables for use by other functions.
758758
*/
759759
public void getStatus() {
760-
Time tnow = new Time(Time.getCurrentTimezone());
761-
long tdiff;
762-
tnow.setToNow();
763-
// get time since the last data was received from the Pebble watch.
764-
tdiff = (tnow.toMillis(false) - mDataStatusTime.toMillis(false));
765-
Log.v(TAG, "getStatus() - mWatchAppRunningCheck=" + mWatchAppRunningCheck + " tdiff=" + tdiff);
766-
Log.v(TAG, "getStatus() - tdiff=" + tdiff + ", mDataUpatePeriod=" + mDataUpdatePeriod + ", mAppRestartTimeout=" + mAppRestartTimeout);
767-
768-
mSdData.watchConnected = true; // We can't check connection for passive network connection, so set it to true to avoid errors.
769-
// And is the watch app running?
770-
// set mWatchAppRunningCheck has been false for more than 10 seconds
771-
// the app is not talking to us
772-
// mWatchAppRunningCheck is set to true in the receiveData handler.
773-
if (!mWatchAppRunningCheck &&
774-
(tdiff > (mDataUpdatePeriod + mAppRestartTimeout) * 1000)) {
775-
Log.v(TAG, "getStatus() - tdiff = " + tdiff);
776-
mSdData.watchAppRunning = false;
777-
// Only make audible warning beep if we have not received data for more than mFaultTimerPeriod seconds.
778-
if (tdiff > (mDataUpdatePeriod + mFaultTimerPeriod) * 1000) {
779-
Log.v(TAG, "getStatus() - Watch App Not Running");
780-
mUtil.writeToSysLogFile("SDDataSource.getStatus() - Watch App not Running");
781-
//mDataStatusTime.setToNow();
782-
mSdData.roiPower = -1;
783-
mSdData.specPower = -1;
784-
mSdDataReceiver.onSdDataFault(mSdData);
785-
} else {
786-
Log.v(TAG, "getStatus() - Waiting for mFaultTimerPeriod before issuing audible warning...");
787-
}
788-
} else {
789-
mSdData.watchAppRunning = true;
790-
791-
// Check we have seen a fidget within the required period, or else assume a fault because watch is not being worn
792-
if (mFidgetDetectorEnabled) {
793-
if (mLastFidget == null) mLastFidget = tnow; // Initialise last fidget time on startup.
794-
795-
double accStd = calcRawDataStd(mSdData);
796-
if (accStd > mFidgetThreshold) {
797-
mLastFidget = tnow;
760+
try {
761+
Time tnow = new Time(Time.getCurrentTimezone());
762+
long tdiff;
763+
tnow.setToNow();
764+
// get time since the last data was received from the Pebble watch.
765+
tdiff = (tnow.toMillis(false) - mDataStatusTime.toMillis(false));
766+
Log.v(TAG, "getStatus() - mWatchAppRunningCheck=" + mWatchAppRunningCheck + " tdiff=" + tdiff);
767+
Log.v(TAG, "getStatus() - tdiff=" + tdiff + ", mDataUpatePeriod=" + mDataUpdatePeriod + ", mAppRestartTimeout=" + mAppRestartTimeout);
768+
769+
mSdData.watchConnected = true; // We can't check connection for passive network connection, so set it to true to avoid errors.
770+
// And is the watch app running?
771+
// set mWatchAppRunningCheck has been false for more than 10 seconds
772+
// the app is not talking to us
773+
// mWatchAppRunningCheck is set to true in the receiveData handler.
774+
if (!mWatchAppRunningCheck &&
775+
(tdiff > (mDataUpdatePeriod + mAppRestartTimeout) * 1000)) {
776+
Log.v(TAG, "getStatus() - tdiff = " + tdiff);
777+
mSdData.watchAppRunning = false;
778+
// Only make audible warning beep if we have not received data for more than mFaultTimerPeriod seconds.
779+
if (tdiff > (mDataUpdatePeriod + mFaultTimerPeriod) * 1000) {
780+
Log.v(TAG, "getStatus() - Watch App Not Running");
781+
mUtil.writeToSysLogFile("SDDataSource.getStatus() - Watch App not Running");
782+
//mDataStatusTime.setToNow();
783+
mSdData.roiPower = -1;
784+
mSdData.specPower = -1;
785+
mSdDataReceiver.onSdDataFault(mSdData);
798786
} else {
799-
Log.d(TAG,"onStatus() - Fidget Detector - low movement - is watch being worn?");
800-
tdiff = (tnow.toMillis(false) - mLastFidget.toMillis(false));
801-
if (tdiff > (mFidgetPeriod) * 60 * 1000) {
802-
Log.e(TAG, "onStatus() - Fidget Not Detected - is watch being worn?");
803-
mSdDataReceiver.onSdDataFault(mSdData);
787+
Log.v(TAG, "getStatus() - Waiting for mFaultTimerPeriod before issuing audible warning...");
788+
}
789+
} else {
790+
mSdData.watchAppRunning = true;
791+
792+
// Check we have seen a fidget within the required period, or else assume a fault because watch is not being worn
793+
if (mFidgetDetectorEnabled) {
794+
if (mLastFidget == null)
795+
mLastFidget = tnow; // Initialise last fidget time on startup.
796+
797+
double accStd = calcRawDataStd(mSdData);
798+
if (accStd > mFidgetThreshold) {
799+
mLastFidget = tnow;
800+
} else {
801+
Log.d(TAG, "onStatus() - Fidget Detector - low movement - is watch being worn?");
802+
tdiff = (tnow.toMillis(false) - mLastFidget.toMillis(false));
803+
if (tdiff > (mFidgetPeriod) * 60 * 1000) {
804+
Log.e(TAG, "onStatus() - Fidget Not Detected - is watch being worn?");
805+
mSdDataReceiver.onSdDataFault(mSdData);
806+
}
804807
}
805808
}
806809
}
807-
}
808810

809-
// if we have confirmation that the app is running, reset the
810-
// status time to now and initiate another check.
811-
if (mWatchAppRunningCheck) {
812-
mWatchAppRunningCheck = false;
813-
mDataStatusTime.setToNow();
814-
}
811+
// if we have confirmation that the app is running, reset the
812+
// status time to now and initiate another check.
813+
if (mWatchAppRunningCheck) {
814+
mWatchAppRunningCheck = false;
815+
mDataStatusTime.setToNow();
816+
}
815817

816-
if (!mSdData.haveSettings) {
817-
Log.v(TAG, "getStatus() - no settings received yet");
818+
if (!mSdData.haveSettings) {
819+
Log.v(TAG, "getStatus() - no settings received yet");
820+
}
821+
} catch(Exception e) {
822+
Log.e(TAG,"getStatus - Exception: "+e.toString());
823+
Log.e(TAG,e.getMessage());
824+
mSdData.watchAppRunning = false;
825+
mSdData.roiPower = -1;
826+
mSdData.specPower = -1;
827+
mSdDataReceiver.onSdDataFault(mSdData);
818828
}
829+
819830
}
820831

821832
/**
822833
* faultCheck - determines alarm state based on seizure detector data SdData. Called every second.
823834
*/
824835
private void faultCheck() {
825-
Time tnow = new Time(Time.getCurrentTimezone());
826-
long tdiff;
827-
tnow.setToNow();
828-
829-
// get time since the last data was received from the watch.
830-
tdiff = (tnow.toMillis(false) - mDataStatusTime.toMillis(false));
831-
//Log.v(TAG, "faultCheck() - tdiff=" + tdiff + ", mDataUpatePeriod=" + mDataUpdatePeriod + ", mAppRestartTimeout=" + mAppRestartTimeout
832-
// + ", combined = " + (mDataUpdatePeriod + mAppRestartTimeout) * 1000);
833-
if (!mWatchAppRunningCheck &&
834-
(tdiff > (mDataUpdatePeriod + mAppRestartTimeout) * 1000)) {
835-
//Log.v(TAG, "faultCheck() - watch app not running so not doing anything");
836-
mAlarmCount = 0;
837-
}
836+
try {
837+
Time tnow = new Time(Time.getCurrentTimezone());
838+
long tdiff;
839+
tnow.setToNow();
840+
841+
// get time since the last data was received from the watch.
842+
tdiff = (tnow.toMillis(false) - mDataStatusTime.toMillis(false));
843+
//Log.v(TAG, "faultCheck() - tdiff=" + tdiff + ", mDataUpatePeriod=" + mDataUpdatePeriod + ", mAppRestartTimeout=" + mAppRestartTimeout
844+
// + ", combined = " + (mDataUpdatePeriod + mAppRestartTimeout) * 1000);
845+
if (!mWatchAppRunningCheck &&
846+
(tdiff > (mDataUpdatePeriod + mAppRestartTimeout) * 1000)) {
847+
//Log.v(TAG, "faultCheck() - watch app not running so not doing anything");
848+
mAlarmCount = 0;
849+
}
838850

839-
if (mSdData.mHRAlarmActive && mHrFrozenAlarm) {
840-
if (mSdData.mHR != mLastHrValue) {
841-
mLastHrValue = mSdData.mHR;
842-
mHrStatusTime = tnow;
843-
mSdData.mHrFrozenFaultStanding = false;
844-
} else {
845-
tdiff = (tnow.toMillis(false) - mHrStatusTime.toMillis(false));
846-
if (tdiff > mHrFrozenPeriod *1000.) {
847-
mSdData.mHrFrozenFaultStanding = true;
848-
} else {
851+
if (mSdData.mHRAlarmActive && mHrFrozenAlarm) {
852+
if (mSdData.mHR != mLastHrValue) {
853+
mLastHrValue = mSdData.mHR;
854+
mHrStatusTime = tnow;
849855
mSdData.mHrFrozenFaultStanding = false;
856+
} else {
857+
tdiff = (tnow.toMillis(false) - mHrStatusTime.toMillis(false));
858+
if (tdiff > mHrFrozenPeriod * 1000.) {
859+
mSdData.mHrFrozenFaultStanding = true;
860+
} else {
861+
mSdData.mHrFrozenFaultStanding = false;
862+
}
850863
}
851864
}
865+
} catch(Exception e) {
866+
Log.e(TAG,"faultCheck - Exception: "+e.toString());
867+
Log.e(TAG,e.getMessage());
868+
mSdData.watchAppRunning = false;
869+
mSdData.roiPower = -1;
870+
mSdData.specPower = -1;
871+
mSdDataReceiver.onSdDataFault(mSdData);
852872
}
853873
}
854874

0 commit comments

Comments
 (0)