Changed values and added checkbox

This commit is contained in:
2026-04-29 13:53:49 +00:00
parent 28641c538a
commit 3bf922fcc0
5 changed files with 80 additions and 12 deletions

View File

@@ -0,0 +1,47 @@
{
"project_info": {
"project_number": "1234",
"project_id": "osd-data-sharing",
"storage_bucket": "osd-data-sharing.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "xxxx",
"android_client_info": {
"package_name": "uk.org.openseizuredetector"
}
},
"oauth_client": [
{
"client_id": "xxxx",
"client_type": 1,
"android_info": {
"package_name": "uk.org.openseizuredetector",
"certificate_hash": "xxx"
}
},
{
"client_id": "xxx",
"client_type": 3
}
],
"api_key": [
{
"current_key": "xxx"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "xxx",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}

View File

@@ -328,7 +328,7 @@ public class LogManager {
* Write data to local database
* FIXME - I am sure we should not be using raw SQL Srings to do this!
*/
public void writeDatapointToLocalDb(SdData sdData) {
public void writeDatapointToLocalDb(SdData sdData, long alarmDuration) {
//Log.v(TAG, "writeDatapointToLocalDb()");
Date curDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -355,7 +355,9 @@ public class LogManager {
if (sdData.alarmState != 0) {
Log.i(TAG, "writeDatapointToLocalDb(): adding event to local DB");
createLocalEvent(dateStr, sdData.alarmState, null, null, null, sdData.toSettingsJSON());
createLocalEvent(dateStr, sdData.alarmState, "seizure", null,
"Duration: " + alarmDuration + "s HR: " + sdData.mHR,
sdData.toSettingsJSON());
}
} catch (SQLException e) {
Log.e(TAG, "writeToLocalDb(): Error Writing Data: " + e.toString());

View File

@@ -125,6 +125,8 @@ public class SdServer extends Service implements SdDataReceiver {
private boolean mMp3Alarm = false;
private boolean mPhoneAlarm = false;
private boolean mSMSAlarm = false;
private boolean mFlogaEmergencyEscalation = true;
private long mAlarmStartTime = 0;
private String[] mSMSNumbers;
private String mSMSMsgStr = "default SMS Message";
private String mSMSFalseAlarmMsgStr = "default SMS False Alarm Message";
@@ -655,6 +657,7 @@ public class SdServer extends Service implements SdDataReceiver {
if ((sdData.alarmState == 2) || (sdData.alarmState == 5)) {
sdData.alarmPhrase = "ALARM";
sdData.alarmStanding = true;
if (mAlarmStartTime == 0) mAlarmStartTime = System.currentTimeMillis();
if (mLogAlarms) {
Log.v(TAG, "***ALARM*** - Logging to SD Card");
//writeAlarmToSD();
@@ -675,7 +678,12 @@ public class SdServer extends Service implements SdDataReceiver {
- mSMSTime.toMillis(false))
> 60000) {
sendSMSAlarm();
sendPhoneAlarm();
// Floga: escalate to emergency call if seizure longer than 5 minutes
long alarmDurationSecs = (System.currentTimeMillis() - mAlarmStartTime) / 1000;
if (alarmDurationSecs >= 300 && mFlogaEmergencyEscalation) {
sendPhoneAlarm();
Log.v(TAG, "Floga: 5 minute threshold reached - calling emergency contacts");
}
mSMSTime = tnow;
} else {
mUtil.showToast(getString(R.string.SMSAlarmAlreadySentMsg));
@@ -820,6 +828,7 @@ public class SdServer extends Service implements SdDataReceiver {
mSdData.alarmState = 4; // set fault alarm state.
mSdData.alarmPhrase = "FAULT";
mSdData.alarmStanding = false;
mAlarmStartTime = 0;
if (webServer != null) webServer.setSdData(mSdData);
// We only take action to warn the user and re-start the data source to attempt to fix it
// ourselves if we have been in a fault condition for a while - signified by the mFaultTimerCompleted
@@ -1238,7 +1247,11 @@ public class SdServer extends Service implements SdDataReceiver {
if (mLm != null) {
Log.v(TAG, "logData() - writing data to Database");
//writeToSD();
mLm.writeDatapointToLocalDb(mSdData);
long alarmDurationSecs = 0;
if (mAlarmStartTime != 0) {
alarmDurationSecs = (System.currentTimeMillis() - mAlarmStartTime) / 1000;
}
mLm.writeDatapointToLocalDb(mSdData, alarmDurationSecs);
} else {
Log.e(TAG, "logData() - mLm is null - this should not happen");
}
@@ -1302,6 +1315,7 @@ public class SdServer extends Service implements SdDataReceiver {
mSMSAlarm = SP.getBoolean("SMSAlarm", false);
Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
mUtil.writeToSysLogFile("updatePrefs() - mSMSAlarm = " + mSMSAlarm);
mFlogaEmergencyEscalation = SP.getBoolean("FlogaEmergencyEscalation", true);
mPhoneAlarm = SP.getBoolean("PhoneCallAlarm", false);
Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
mUtil.writeToSysLogFile("updatePrefs() - mSMSAlarm = " + mSMSAlarm);

View File

@@ -105,11 +105,11 @@
<string name="AlarmRatioThreshTitle">Alarm Ratio Threshold</string>
<string name="AlarmRatioThreshSummary">Alarm Ratio Threshold (Default = 57). Increase to reduce sensitivity.</string>
<string name="AlarmFreqMaxTitle">AlarmFreqMax (Hz)</string>
<string name="AlarmFreqMaxSummary">Maximum Frequency of ROI (Hz) (Default = 8 Hz)</string>
<string name="AlarmFreqMaxSummary">Maximum Frequency of ROI (Hz) ([Floga] Default = 5 Hz)</string>
<string name="AlarmFreqMinTitle">AlarmFreqMin (Hz)</string>
<string name="AlarmFreqMinSummary">Minimum Frequency of ROI (Hz) (Default = 3 Hz)</string>
<string name="HRAlarmEnabledTitle">Enable Simple Heart Rate Alarm</string>
<string name="HRAlarmEnabledSummary" />
<string name="HRAlarmEnabledSummary">Floga: Triggers alarm if heart rate rises by 20% during detected seizure motion, reducing false alarms</string>
<string name="HRNullAlarmTitle">Treat a Null heart rate as an alarm condition</string>
<string name="HRNullAlarmSummary" />
<string name="HRThreshMinTitle">Heart Rate Min Threshold (bpm)</string>
@@ -303,7 +303,7 @@
<string name="SMSAlarmSettingsTitle">SMS Alarm Settings</string>
<string name="DefaultSMSMsgText">**SEIZURE DETECTED**</string>
<string name="AlarmLoggingTitle">Alarm Logging</string>
<string name="WarnTimeSummary">Time to wait before initiating warning (Default = 5 sec)</string>
<string name="WarnTimeSummary">Time to wait before initiating warning ([Floga] Default = 10 sec)</string>
<string name="WarnTimeTitle">WarnTime (sec)</string>
<string name="AlarmTimeSummary">Time to wait before initiating alarm (Default = 10 sec)</string>
<string name="AlarmTimeTitle">AlarmTime (sec)</string>
@@ -486,7 +486,7 @@
<string name="no_button_title">NO</string>
<string name="privacy_policy_button_title">Privacy Policy</string>
<string name="data_sharing_button_title">Data Sharing</string>
<string name="HRAdaptiveAlarmEnabledTitle">Enable Adaptive Threshold Heart Rate Alarm</string>
<string name="HRAdaptiveAlarmEnabledTitle"> [Floga] Enable Adaptive Threshold Heart Rate Alarm</string>
<string name="HRAdaptiveAlarmWindowTitle">Window Size for Adaptive Threshold Calculation</string>
<string name="HRAdaptiveAlarmWindowSummary">Moving Average Time Window (seconds) must be a multiple of 5 seconds</string>
<string name="HRAdaptiveThreshTitle">Adaptive Threshold Offset (bpm)</string>

View File

@@ -22,7 +22,7 @@
android:summary="@string/HRAlarmEnabledSummary"
android:title="@string/HRAlarmEnabledTitle" />
<CheckBoxPreference
android:defaultValue="false"
android:defaultValue="true"
android:key="HRAdaptiveAlarmActive"
android:summary="@string/HRAlarmEnabledSummary"
android:title="@string/HRAdaptiveAlarmEnabledTitle" />
@@ -50,7 +50,7 @@
android:summary="@string/OsdAlarmEnabledSummary"
android:title="@string/OsdAlarmEnabledTitle" />
<EditTextPreference
android:defaultValue="5"
android:defaultValue="10"
android:key="WarnTime"
android:summary="@string/WarnTimeSummary"
android:title="@string/WarnTimeTitle" />
@@ -59,6 +59,11 @@
android:key="AlarmTime"
android:summary="@string/AlarmTimeSummary"
android:title="@string/AlarmTimeTitle" />
<CheckBoxPreference
android:defaultValue="true"
android:key="FlogaEmergencyEscalation"
android:summary="Call emergency contacts if seizure lasts longer than 5 minutes"
android:title="[Floga] Enable 5 Minute Emergency Call" />
<EditTextPreference
android:defaultValue="100"
android:key="AlarmThresh"
@@ -76,7 +81,7 @@
android:summary="@string/AlarmFreqMinSummary"
android:title="@string/AlarmFreqMinTitle" />
<EditTextPreference
android:defaultValue="8"
android:defaultValue="5"
android:key="AlarmFreqMax"
android:summary="@string/AlarmFreqMaxSummary"
android:title="@string/AlarmFreqMaxTitle" />
@@ -168,7 +173,7 @@
</PreferenceCategory>
<PreferenceCategory android:title="@string/HeartRateAdaptiveAlarmSettingsTitle">
<CheckBoxPreference
android:defaultValue="false"
android:defaultValue="true"
android:key="HRAdaptiveAlarmActive"
android:summary="@string/HRAlarmEnabledSummary"
android:title="@string/HRAdaptiveAlarmEnabledTitle" />