@@ -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