Re-hashing how we manage watch settings to make sure watch always uses the settings requested in the phone app - not working yet - not receiving data back from watch for some reason - too much settings traffic maybe?
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,6 +1,8 @@
|
|||||||
build
|
build
|
||||||
.gradle
|
.gradle
|
||||||
.idea
|
.idea
|
||||||
|
local.properties
|
||||||
|
app/app-release.apk
|
||||||
app/build
|
app/build
|
||||||
app/app.iml
|
app/app.iml
|
||||||
|
|
||||||
|
|||||||
@@ -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="24"
|
android:versionCode="25"
|
||||||
android:versionName="2.0.3" >
|
android:versionName="2.0.4" >
|
||||||
|
|
||||||
<uses-sdk android:minSdkVersion="14" />
|
<uses-sdk android:minSdkVersion="14" />
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,13 @@ public class SdData implements Parcelable {
|
|||||||
/* Analysis settings */
|
/* Analysis settings */
|
||||||
public boolean haveSettings = false; // flag to say if we have received settings or not.
|
public boolean haveSettings = false; // flag to say if we have received settings or not.
|
||||||
public boolean haveData = false; // flag to say we have received data.
|
public boolean haveData = false; // flag to say we have received data.
|
||||||
|
public short mDataUpdatePeriod;
|
||||||
|
public short mMutePeriod;
|
||||||
|
public short mManAlarmPeriod;
|
||||||
|
public boolean mFallActive;
|
||||||
|
public short mFallThreshMin;
|
||||||
|
public short mFallThreshMax;
|
||||||
|
public short mFallWindow;
|
||||||
public long alarmFreqMin;
|
public long alarmFreqMin;
|
||||||
public long alarmFreqMax;
|
public long alarmFreqMax;
|
||||||
public long nMin;
|
public long nMin;
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ import java.util.UUID;
|
|||||||
* network data source.
|
* network data source.
|
||||||
*/
|
*/
|
||||||
public class SdDataSourcePebble extends SdDataSource {
|
public class SdDataSourcePebble extends SdDataSource {
|
||||||
|
private Handler mHandler = new Handler();
|
||||||
private Timer mSettingsTimer;
|
private Timer mSettingsTimer;
|
||||||
private Timer mStatusTimer;
|
private Timer mStatusTimer;
|
||||||
private Time mPebbleStatusTime;
|
private Time mPebbleStatusTime;
|
||||||
@@ -99,6 +100,20 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
private int DATA_TYPE_RESULTS = 1; // Analysis Results
|
private int DATA_TYPE_RESULTS = 1; // Analysis Results
|
||||||
private int DATA_TYPE_SETTINGS = 2; // Settings
|
private int DATA_TYPE_SETTINGS = 2; // Settings
|
||||||
private int DATA_TYPE_SPEC = 3; // FFT Spectrum (or part of a spectrum)
|
private int DATA_TYPE_SPEC = 3; // FFT Spectrum (or part of a spectrum)
|
||||||
|
private short mDataUpdatePeriod;
|
||||||
|
private short mMutePeriod;
|
||||||
|
private short mManAlarmPeriod;
|
||||||
|
private short mAlarmFreqMin;
|
||||||
|
private short mAlarmFreqMax;
|
||||||
|
private short mWarnTime;
|
||||||
|
private short mAlarmTime;
|
||||||
|
private short mAlarmThresh;
|
||||||
|
private short mAlarmRatioThresh;
|
||||||
|
private boolean mFallActive;
|
||||||
|
private short mFallThreshMin;
|
||||||
|
private short mFallThreshMax;
|
||||||
|
private short mFallWindow;
|
||||||
|
|
||||||
public SdDataSourcePebble(Context context, SdDataReceiver sdDataReceiver) {
|
public SdDataSourcePebble(Context context, SdDataReceiver sdDataReceiver) {
|
||||||
super(context,sdDataReceiver);
|
super(context,sdDataReceiver);
|
||||||
mName = "Pebble";
|
mName = "Pebble";
|
||||||
@@ -224,82 +239,59 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
|
|
||||||
|
|
||||||
// Watch Settings
|
// Watch Settings
|
||||||
PebbleDictionary setDict = new PebbleDictionary();
|
|
||||||
short intVal;
|
|
||||||
String prefStr;
|
String prefStr;
|
||||||
|
|
||||||
prefStr = SP.getString("DataUpdatePeriod", "5");
|
prefStr = SP.getString("DataUpdatePeriod", "5");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mDataUpdatePeriod = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() DataUpdatePeriod = " + intVal);
|
Log.v(TAG, "updatePrefs() DataUpdatePeriod = " + mDataUpdatePeriod);
|
||||||
setDict.addInt16(KEY_DATA_UPDATE_PERIOD, intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("MutePeriod", "300");
|
prefStr = SP.getString("MutePeriod", "300");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mMutePeriod = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() MutePeriod = " + intVal);
|
Log.v(TAG, "updatePrefs() MutePeriod = " + mMutePeriod);
|
||||||
setDict.addInt16(KEY_MUTE_PERIOD, intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("ManAlarmPeriod", "30");
|
prefStr = SP.getString("ManAlarmPeriod", "30");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mManAlarmPeriod = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() ManAlarmPeriod = " + intVal);
|
Log.v(TAG, "updatePrefs() ManAlarmPeriod = " + mManAlarmPeriod);
|
||||||
setDict.addInt16(KEY_MAN_ALARM_PERIOD, intVal);
|
|
||||||
|
|
||||||
|
prefStr = SP.getString("AlarmFreqMin","3");
|
||||||
prefStr = SP.getString("AlarmFreqMin", "5");
|
mAlarmFreqMin = (short) Integer.parseInt(prefStr);
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
Log.v(TAG, "updatePrefs() AlarmFreqMin = " + mAlarmFreqMin);
|
||||||
Log.v(TAG, "updatePrefs() AlarmFreqMin = " + intVal);
|
|
||||||
setDict.addInt16(KEY_ALARM_FREQ_MIN, intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmFreqMax", "10");
|
prefStr = SP.getString("AlarmFreqMax", "10");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mAlarmFreqMax = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmFreqMax = " + intVal);
|
Log.v(TAG, "updatePrefs() AlarmFreqMax = " + mAlarmFreqMax);
|
||||||
setDict.addUint16(KEY_ALARM_FREQ_MAX, (short) intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("WarnTime", "5");
|
prefStr = SP.getString("WarnTime", "5");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mWarnTime = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() WarnTime = " + intVal);
|
Log.v(TAG, "updatePrefs() WarnTime = " + mWarnTime);
|
||||||
setDict.addUint16(KEY_WARN_TIME, (short) intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmTime", "10");
|
prefStr = SP.getString("AlarmTime", "10");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mAlarmTime = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmTime = " + intVal);
|
Log.v(TAG, "updatePrefs() AlarmTime = " + mAlarmTime);
|
||||||
setDict.addUint16(KEY_ALARM_TIME, (short) intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmThresh", "70");
|
prefStr = SP.getString("AlarmThresh", "70");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mAlarmThresh = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmThresh = " + intVal);
|
Log.v(TAG, "updatePrefs() AlarmThresh = " + mAlarmThresh);
|
||||||
setDict.addUint16(KEY_ALARM_THRESH, (short) intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmRatioThresh", "30");
|
prefStr = SP.getString("AlarmRatioThresh", "30");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mAlarmRatioThresh = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmRatioThresh = " + intVal);
|
Log.v(TAG, "updatePrefs() AlarmRatioThresh = " + mAlarmRatioThresh);
|
||||||
setDict.addUint16(KEY_ALARM_RATIO_THRESH, (short) intVal);
|
|
||||||
|
|
||||||
boolean fallActiveBool = SP.getBoolean("FallActive", false);
|
mFallActive = SP.getBoolean("FallActive", false);
|
||||||
Log.v(TAG, "updatePrefs() FallActive = " + fallActiveBool);
|
Log.v(TAG, "updatePrefs() FallActive = " + mFallActive);
|
||||||
if (fallActiveBool)
|
|
||||||
setDict.addUint16(KEY_FALL_ACTIVE, (short) 1);
|
|
||||||
else
|
|
||||||
setDict.addUint16(KEY_FALL_ACTIVE, (short) 0);
|
|
||||||
|
|
||||||
prefStr = SP.getString("FallThreshMin", "200");
|
prefStr = SP.getString("FallThreshMin", "200");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mFallThreshMin = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() FallThreshMin = " + intVal);
|
Log.v(TAG, "updatePrefs() FallThreshMin = " + mFallThreshMin);
|
||||||
setDict.addUint16(KEY_FALL_THRESH_MIN, (short) intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("FallThreshMax", "1200");
|
prefStr = SP.getString("FallThreshMax", "1200");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mFallThreshMax = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() FallThreshMax = " + intVal);
|
Log.v(TAG, "updatePrefs() FallThreshMax = " + mFallThreshMax);
|
||||||
setDict.addUint16(KEY_FALL_THRESH_MAX, (short) intVal);
|
|
||||||
|
|
||||||
prefStr = SP.getString("FallWindow", "1500");
|
prefStr = SP.getString("FallWindow", "1500");
|
||||||
intVal = (short) Integer.parseInt(prefStr);
|
mFallWindow = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() FallWindow = " + intVal);
|
Log.v(TAG, "updatePrefs() FallWindow = " + mFallWindow);
|
||||||
setDict.addUint16(KEY_FALL_WINDOW, (short) intVal);
|
|
||||||
|
|
||||||
|
|
||||||
// Send Watch Settings to Pebble
|
|
||||||
Log.v(TAG, "updatePrefs() - setDict = " + setDict.toJsonString());
|
|
||||||
PebbleKit.sendDataToPebble(mContext, SD_UUID, setDict);
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
||||||
Toast toast = Toast.makeText(mContext, "Problem Parsing Preferences - Something won't work - Please go back to Settings and correct it!", Toast.LENGTH_SHORT);
|
Toast toast = Toast.makeText(mContext, "Problem Parsing Preferences - Something won't work - Please go back to Settings and correct it!", Toast.LENGTH_SHORT);
|
||||||
@@ -342,13 +334,12 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
mSdData.alarmPhrase = "Unknown";
|
mSdData.alarmPhrase = "Unknown";
|
||||||
mSdData.haveData = true;
|
mSdData.haveData = true;
|
||||||
mSdDataReceiver.onSdDataReceived(mSdData);
|
mSdDataReceiver.onSdDataReceived(mSdData);
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Read the data that has been sent, and convert it into
|
// Read the data that has been sent, and convert it into
|
||||||
// an integer array.
|
// an integer array.
|
||||||
byte[] byteArr = data.getBytes(KEY_SPEC_DATA);
|
byte[] byteArr = data.getBytes(KEY_SPEC_DATA);
|
||||||
if ((byteArr!=null) && (byteArr.length!=0)) {
|
if ((byteArr != null) && (byteArr.length != 0)) {
|
||||||
IntBuffer intBuf = ByteBuffer.wrap(byteArr)
|
IntBuffer intBuf = ByteBuffer.wrap(byteArr)
|
||||||
.order(ByteOrder.LITTLE_ENDIAN)
|
.order(ByteOrder.LITTLE_ENDIAN)
|
||||||
.asIntBuffer();
|
.asIntBuffer();
|
||||||
@@ -358,9 +349,9 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
mSdData.simpleSpec[i] = intArray[i];
|
mSdData.simpleSpec[i] = intArray[i];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.v(TAG,"***** zero length spectrum received - error!!!!");
|
Log.v(TAG, "***** zero length spectrum received - error!!!!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (data.getUnsignedIntegerAsLong(KEY_DATA_TYPE)
|
if (data.getUnsignedIntegerAsLong(KEY_DATA_TYPE)
|
||||||
== DATA_TYPE_SETTINGS) {
|
== DATA_TYPE_SETTINGS) {
|
||||||
@@ -416,10 +407,13 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request Pebble App to send us its latest settings.
|
* Send our latest settings to the watch, then request Pebble App to send
|
||||||
|
* us its latest settings so we can check it has been set up correctly..
|
||||||
* Will be received as a message by the receiveData handler
|
* Will be received as a message by the receiveData handler
|
||||||
*/
|
*/
|
||||||
public void getPebbleSdSettings() {
|
public void getPebbleSdSettings() {
|
||||||
|
Log.v(TAG, "getPebbleSdSettings() - sending required settings to pebble");
|
||||||
|
sendPebbleSdSettings();
|
||||||
Log.v(TAG, "getPebbleSdSettings() - requesting settings from pebble");
|
Log.v(TAG, "getPebbleSdSettings() - requesting settings from pebble");
|
||||||
PebbleDictionary data = new PebbleDictionary();
|
PebbleDictionary data = new PebbleDictionary();
|
||||||
data.addUint8(KEY_SETTINGS, (byte) 1);
|
data.addUint8(KEY_SETTINGS, (byte) 1);
|
||||||
@@ -429,6 +423,101 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
data);
|
data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send the pebble watch settings that are stored as class member
|
||||||
|
* variables to the watch.
|
||||||
|
*/
|
||||||
|
public void sendPebbleSdSettings() {
|
||||||
|
Log.v(TAG, "sendPebblSdSettings() - preparing settings dictionary..");
|
||||||
|
// Watch Settings
|
||||||
|
final PebbleDictionary setDict = new PebbleDictionary();
|
||||||
|
setDict.addInt16(KEY_DATA_UPDATE_PERIOD, mDataUpdatePeriod);
|
||||||
|
setDict.addInt16(KEY_MUTE_PERIOD, mMutePeriod);
|
||||||
|
setDict.addInt16(KEY_MAN_ALARM_PERIOD, mManAlarmPeriod);
|
||||||
|
setDict.addInt16(KEY_ALARM_FREQ_MIN, mAlarmFreqMin);
|
||||||
|
setDict.addInt16(KEY_ALARM_FREQ_MAX, mAlarmFreqMax);
|
||||||
|
setDict.addUint16(KEY_WARN_TIME, mWarnTime);
|
||||||
|
setDict.addUint16(KEY_ALARM_TIME, mAlarmTime);
|
||||||
|
setDict.addUint16(KEY_ALARM_THRESH, mAlarmThresh);
|
||||||
|
setDict.addUint16(KEY_ALARM_RATIO_THRESH, mAlarmRatioThresh);
|
||||||
|
if (mFallActive)
|
||||||
|
setDict.addUint16(KEY_FALL_ACTIVE, (short) 1);
|
||||||
|
else
|
||||||
|
setDict.addUint16(KEY_FALL_ACTIVE, (short) 0);
|
||||||
|
setDict.addUint16(KEY_FALL_THRESH_MIN, mFallThreshMin);
|
||||||
|
setDict.addUint16(KEY_FALL_THRESH_MAX, mFallThreshMax);
|
||||||
|
setDict.addUint16(KEY_FALL_WINDOW, mFallWindow);
|
||||||
|
|
||||||
|
// Send Watch Settings to Pebble
|
||||||
|
Log.v(TAG, "sendPebbleSdSettings() - setDict = " + setDict.toJsonString());
|
||||||
|
PebbleKit.sendDataToPebble(mContext, SD_UUID, setDict);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares the watch settings retrieved from the watch (stored in mSdData)
|
||||||
|
* to the required settings stored as member variables to this class.
|
||||||
|
*
|
||||||
|
* @return true if they are all the same, or false if there are discrepancies.
|
||||||
|
*/
|
||||||
|
public boolean checkWatchSettings() {
|
||||||
|
boolean settingsOk = true;
|
||||||
|
if (mDataUpdatePeriod != mSdData.mDataUpdatePeriod) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mDataUpdatePeriod Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mMutePeriod != mSdData.mMutePeriod) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mMutePeriod Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mManAlarmPeriod != mSdData.mManAlarmPeriod) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mManAlarmPeriod Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mAlarmFreqMin != mSdData.alarmFreqMin) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mAlarmFreqMin Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mAlarmFreqMax != mSdData.alarmFreqMax) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mAlarmFreqMax Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mWarnTime != mSdData.warnTime) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mWarnTime Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mAlarmTime != mSdData.alarmTime) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mAlarmTime Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mAlarmThresh != mSdData.alarmThresh) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mAlarmThresh Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mAlarmRatioThresh != mSdData.alarmRatioThresh) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mAlarmRatioThresh Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mFallActive != mSdData.mFallActive) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mAlarmFreqMin Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mFallThreshMin != mSdData.mFallThreshMin) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mFallThreshMin Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mFallThreshMax != mSdData.mFallThreshMax) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mFallThreshMax Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
if (mFallWindow != mSdData.mFallWindow) {
|
||||||
|
Log.v(TAG,"checkWatchSettings - mFallWindow Wrong");
|
||||||
|
settingsOk = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return settingsOk;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request Pebble App to send us its latest data.
|
* Request Pebble App to send us its latest data.
|
||||||
* Will be received as a message by the receiveData handler
|
* Will be received as a message by the receiveData handler
|
||||||
|
|||||||
@@ -75,6 +75,14 @@ public class StartupActivity extends Activity {
|
|||||||
setContentView(R.layout.startup_activity);
|
setContentView(R.layout.startup_activity);
|
||||||
mUtil = new OsdUtil(this);
|
mUtil = new OsdUtil(this);
|
||||||
|
|
||||||
|
// Read the default settings from the xml preferences files, so we do
|
||||||
|
// not have to use the hard coded ones in the java files.
|
||||||
|
PreferenceManager.setDefaultValues(this, R.xml.alarm_prefs, true);
|
||||||
|
PreferenceManager.setDefaultValues(this, R.xml.camera_prefs, true);
|
||||||
|
PreferenceManager.setDefaultValues(this, R.xml.general_prefs, true);
|
||||||
|
PreferenceManager.setDefaultValues(this, R.xml.network_datasource_prefs, true);
|
||||||
|
PreferenceManager.setDefaultValues(this, R.xml.pebble_datasource_prefs, false);
|
||||||
|
|
||||||
Button b = (Button)findViewById(R.id.settingsButton);
|
Button b = (Button)findViewById(R.id.settingsButton);
|
||||||
b.setOnClickListener(new View.OnClickListener() {
|
b.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -20,9 +20,9 @@
|
|||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory android:title="Seizure Detector Settings">
|
<PreferenceCategory android:title="Seizure Detector Settings">
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="5"
|
android:defaultValue="3"
|
||||||
android:key="AlarmFreqMin"
|
android:key="AlarmFreqMin"
|
||||||
android:summary="Minimum Frequency of ROI (Hz) (Default = 5 Hz)"
|
android:summary="Minimum Frequency of ROI (Hz) (Default = 3 Hz)"
|
||||||
android:title="AlarmFreqMin (Hz)" />
|
android:title="AlarmFreqMin (Hz)" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="10"
|
android:defaultValue="10"
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="30"
|
android:defaultValue="30"
|
||||||
android:key="AlarmRatioThresh"
|
android:key="AlarmRatioThresh"
|
||||||
android:summary="Alarm Ratio Threshold (Default = 30)"
|
android:summary="Alarm Ratio Threshold (Default = 30). Increase this value to reduce sensitivity if false alarms are a problem."
|
||||||
android:title="AlarmRatioThresh" />
|
android:title="AlarmRatioThresh" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ buildscript {
|
|||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:2.0.0'
|
classpath 'com.android.tools.build:gradle:2.1.0'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
allprojects {
|
allprojects {
|
||||||
|
|||||||
@@ -7,5 +7,6 @@
|
|||||||
# Location of the SDK. This is only used by Gradle.
|
# Location of the SDK. This is only used by Gradle.
|
||||||
# For customization when using a Version Control System, please read the
|
# For customization when using a Version Control System, please read the
|
||||||
# header note.
|
# header note.
|
||||||
#Sat Apr 23 18:39:21 BST 2016
|
#Tue May 03 19:40:01 BST 2016
|
||||||
sdk.dir=/home/graham/Android/Sdk
|
ndk.dir=/usr/local/android-sdk-linux/ndk-bundle
|
||||||
|
sdk.dir=/usr/local/android-sdk-linux
|
||||||
|
|||||||
Reference in New Issue
Block a user