V2.0.7 - variable sample period and sample frequency.

This commit is contained in:
Graham Jones
2016-08-22 21:56:46 +01:00
parent 19a6b912a8
commit 3e46f50c47
7 changed files with 34 additions and 6 deletions

View File

@@ -1,6 +1,11 @@
OpenSeizureDetector Android App - Change Log OpenSeizureDetector Android App - Change Log
============================================ ============================================
V2.0.7 - 18 Aug 2016
- Added AnalysisPeriod setting to Pebble Datasource to change
the period between data analyses (rather than the default 5 seconds
in previous versions).
V2.0.6 - 25 July 2016 V2.0.6 - 25 July 2016
- Added main activity menu option to view log files (via web browser). - Added main activity menu option to view log files (via web browser).
- Added options to switch off spectrum display on watch to save battery. - Added options to switch off spectrum display on watch to save battery.

BIN
app/app-release-2.0.7.apk Normal file

Binary file not shown.

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="uk.org.openseizuredetector" package="uk.org.openseizuredetector"
android:versionCode="27" android:versionCode="28"
android:versionName="2.0.6"> android:versionName="2.0.7">
<uses-sdk android:minSdkVersion="14" /> <uses-sdk android:minSdkVersion="14" />

Binary file not shown.

View File

@@ -52,6 +52,7 @@ public class SdData implements Parcelable {
public short mFallWindow; public short mFallWindow;
public long mSdMode; public long mSdMode;
public long mSampleFreq; public long mSampleFreq;
public long analysisPeriod;
public long alarmFreqMin; public long alarmFreqMin;
public long alarmFreqMax; public long alarmFreqMax;
public long nMin; public long nMin;
@@ -152,6 +153,7 @@ public class SdData implements Parcelable {
jsonObj.put("alarmPhrase", alarmPhrase); jsonObj.put("alarmPhrase", alarmPhrase);
jsonObj.put("sdMode",mSdMode); jsonObj.put("sdMode",mSdMode);
jsonObj.put("sampleFreq",mSampleFreq); jsonObj.put("sampleFreq",mSampleFreq);
jsonObj.put("analysisPeriod",analysisPeriod);
jsonObj.put("alarmFreqMin",alarmFreqMin); jsonObj.put("alarmFreqMin",alarmFreqMin);
jsonObj.put("alarmFreqMax",alarmFreqMax); jsonObj.put("alarmFreqMax",alarmFreqMax);
jsonObj.put("alarmThresh", alarmThresh); jsonObj.put("alarmThresh", alarmThresh);

View File

@@ -107,6 +107,10 @@ public class SdDataSourcePebble extends SdDataSource {
private int KEY_NUM_RAW_DATA = 31; private int KEY_NUM_RAW_DATA = 31;
private int KEY_DEBUG = 32; private int KEY_DEBUG = 32;
private int KEY_DISPLAY_SPECTRUM = 33; private int KEY_DISPLAY_SPECTRUM = 33;
private int KEY_SAMPLE_PERIOD = 34;
private int KEY_VERSION_MAJOR = 35;
private int KEY_VERSION_MINOR = 36;
private int KEY_FREQ_CUTOFF = 37;
// Values of the KEY_DATA_TYPE entry in a message // Values of the KEY_DATA_TYPE entry in a message
private int DATA_TYPE_RESULTS = 1; // Analysis Results private int DATA_TYPE_RESULTS = 1; // Analysis Results
@@ -128,6 +132,7 @@ public class SdDataSourcePebble extends SdDataSource {
private short mSampleFreq; private short mSampleFreq;
private short mAlarmFreqMin; private short mAlarmFreqMin;
private short mAlarmFreqMax; private short mAlarmFreqMax;
private short mSamplePeriod;
private short mWarnTime; private short mWarnTime;
private short mAlarmTime; private short mAlarmTime;
private short mAlarmThresh; private short mAlarmThresh;
@@ -298,6 +303,10 @@ public class SdDataSourcePebble extends SdDataSource {
mSampleFreq = (short) Integer.parseInt(prefStr); mSampleFreq = (short) Integer.parseInt(prefStr);
Log.v(TAG, "updatePrefs() SampleFreq = " + mSampleFreq); Log.v(TAG, "updatePrefs() SampleFreq = " + mSampleFreq);
prefStr = SP.getString("SamplePeriod", "SET_FROM_XML");
mSamplePeriod = (short) Integer.parseInt(prefStr);
Log.v(TAG, "updatePrefs() AnalysisPeriod = " + mSamplePeriod);
prefStr = SP.getString("AlarmFreqMin", "SET_FROM_XML"); prefStr = SP.getString("AlarmFreqMin", "SET_FROM_XML");
mAlarmFreqMin = (short) Integer.parseInt(prefStr); mAlarmFreqMin = (short) Integer.parseInt(prefStr);
Log.v(TAG, "updatePrefs() AlarmFreqMin = " + mAlarmFreqMin); Log.v(TAG, "updatePrefs() AlarmFreqMin = " + mAlarmFreqMin);
@@ -403,6 +412,7 @@ public class SdDataSourcePebble extends SdDataSource {
if (data.getUnsignedIntegerAsLong(KEY_DATA_TYPE) if (data.getUnsignedIntegerAsLong(KEY_DATA_TYPE)
== DATA_TYPE_SETTINGS) { == DATA_TYPE_SETTINGS) {
Log.v(TAG, "DATA_TYPE = Settings"); Log.v(TAG, "DATA_TYPE = Settings");
mSdData.analysisPeriod = data.getUnsignedIntegerAsLong(KEY_SAMPLE_PERIOD);
mSdData.alarmFreqMin = data.getUnsignedIntegerAsLong(KEY_ALARM_FREQ_MIN); mSdData.alarmFreqMin = data.getUnsignedIntegerAsLong(KEY_ALARM_FREQ_MIN);
mSdData.alarmFreqMax = data.getUnsignedIntegerAsLong(KEY_ALARM_FREQ_MAX); mSdData.alarmFreqMax = data.getUnsignedIntegerAsLong(KEY_ALARM_FREQ_MAX);
mSdData.nMin = data.getUnsignedIntegerAsLong(KEY_NMIN); mSdData.nMin = data.getUnsignedIntegerAsLong(KEY_NMIN);
@@ -538,6 +548,7 @@ public class SdDataSourcePebble extends SdDataSource {
setDict.addInt16(KEY_MAN_ALARM_PERIOD, mManAlarmPeriod); setDict.addInt16(KEY_MAN_ALARM_PERIOD, mManAlarmPeriod);
setDict.addInt16(KEY_SD_MODE, mPebbleSdMode); setDict.addInt16(KEY_SD_MODE, mPebbleSdMode);
setDict.addInt16(KEY_SAMPLE_FREQ, mSampleFreq); setDict.addInt16(KEY_SAMPLE_FREQ, mSampleFreq);
setDict.addInt16(KEY_SAMPLE_PERIOD, mSamplePeriod);
setDict.addInt16(KEY_ALARM_FREQ_MIN, mAlarmFreqMin); setDict.addInt16(KEY_ALARM_FREQ_MIN, mAlarmFreqMin);
setDict.addInt16(KEY_ALARM_FREQ_MAX, mAlarmFreqMax); setDict.addInt16(KEY_ALARM_FREQ_MAX, mAlarmFreqMax);
setDict.addUint16(KEY_WARN_TIME, mWarnTime); setDict.addUint16(KEY_WARN_TIME, mWarnTime);
@@ -578,6 +589,10 @@ public class SdDataSourcePebble extends SdDataSource {
Log.v(TAG, "checkWatchSettings - mManAlarmPeriod Wrong"); Log.v(TAG, "checkWatchSettings - mManAlarmPeriod Wrong");
settingsOk = false; settingsOk = false;
} }
if (mSamplePeriod != mSdData.analysisPeriod) {
Log.v(TAG, "checkWatchSettings - mSamplePeriod Wrong");
settingsOk = false;
}
if (mAlarmFreqMin != mSdData.alarmFreqMin) { if (mAlarmFreqMin != mSdData.alarmFreqMin) {
Log.v(TAG, "checkWatchSettings - mAlarmFreqMin Wrong"); Log.v(TAG, "checkWatchSettings - mAlarmFreqMin Wrong");
settingsOk = false; settingsOk = false;
@@ -603,7 +618,7 @@ public class SdDataSourcePebble extends SdDataSource {
settingsOk = false; settingsOk = false;
} }
if (mFallActive != mSdData.mFallActive) { if (mFallActive != mSdData.mFallActive) {
Log.v(TAG, "checkWatchSettings - mAlarmFreqMin Wrong"); Log.v(TAG, "checkWatchSettings - mFallActive Wrong");
settingsOk = false; settingsOk = false;
} }
if (mFallThreshMin != mSdData.mFallThreshMin) { if (mFallThreshMin != mSdData.mFallThreshMin) {

View File

@@ -6,8 +6,8 @@
<EditTextPreference <EditTextPreference
android:defaultValue="5" android:defaultValue="5"
android:key="PebbleUpdatePeriod" android:key="PebbleUpdatePeriod"
android:summary="Time period at which data is sent to the phone (increase value to reduce battery consumption)" android:summary="Time period at which data is sent to the phone (does not affect analysis frequency - see Sample Period setting for that)"
android:title="Data Period (sec)" /> android:title="Data Transfer Period (sec)" />
<EditTextPreference <EditTextPreference
android:defaultValue="300" android:defaultValue="300"
android:key="MutePeriod" android:key="MutePeriod"
@@ -44,7 +44,7 @@
android:entryValues="@array/pebble_sample_freq_list_values" android:entryValues="@array/pebble_sample_freq_list_values"
android:defaultValue="100" android:defaultValue="100"
android:dialogTitle="Select Sample Frequency" android:dialogTitle="Select Sample Frequency"
android:enabled="false" android:enabled="true"
/> />
<EditTextPreference <EditTextPreference
@@ -57,6 +57,12 @@
android:key="AlarmFreqMax" android:key="AlarmFreqMax"
android:summary="Maximum Frequency of ROI (Hz) (Default = 10 Hz)" android:summary="Maximum Frequency of ROI (Hz) (Default = 10 Hz)"
android:title="AlarmFreqMax (Hz)" /> android:title="AlarmFreqMax (Hz)" />
<EditTextPreference
android:defaultValue="5"
android:key="SamplePeriod"
android:summary="Period (in seconds) between data analyses"
android:title="SamplePeriod (sec)" />
<EditTextPreference <EditTextPreference
android:defaultValue="5" android:defaultValue="5"
android:key="WarnTime" android:key="WarnTime"