diff --git a/app/src/main/assets/pebble_sd.pbw b/app/src/main/assets/pebble_sd.pbw index f56bfa2..f00cad9 100644 Binary files a/app/src/main/assets/pebble_sd.pbw and b/app/src/main/assets/pebble_sd.pbw differ diff --git a/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePebble.java b/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePebble.java index cf614e8..120f851 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePebble.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePebble.java @@ -113,6 +113,8 @@ public class SdDataSourcePebble extends SdDataSource { private int KEY_SAMPLE_FREQ = 29; private int KEY_RAW_DATA = 30; private int KEY_NUM_RAW_DATA = 31; + private int KEY_DEBUG = 32; + private int KEY_DISPLAY_SPECTRUM = 33; // Values of the KEY_DATA_TYPE entry in a message private int DATA_TYPE_RESULTS = 1; // Analysis Results @@ -125,6 +127,8 @@ public class SdDataSourcePebble extends SdDataSource { private int SD_MODE_RAW = 1; // Send raw, unprocessed data to the phone. private int SD_MODE_FILTER = 2; // Use digital filter rather than FFT. + private short mDebug; + private short mDisplaySpectrum; private short mDataUpdatePeriod; private short mMutePeriod; private short mManAlarmPeriod; @@ -265,6 +269,14 @@ public class SdDataSourcePebble extends SdDataSource { // Watch Settings String prefStr; + prefStr = SP.getString("PebbleDebug", "SET_FROM_XML"); + mDebug = (short) Integer.parseInt(prefStr); + Log.v(TAG, "updatePrefs() Debug = " + mDebug); + + prefStr = SP.getString("PebbleDisplaySpectrum", "SET_FROM_XML"); + mDisplaySpectrum = (short) Integer.parseInt(prefStr); + Log.v(TAG, "updatePrefs() DisplaySpectrum = " + mDisplaySpectrum); + prefStr = SP.getString("PebbleUpdatePeriod", "SET_FROM_XML"); mDataUpdatePeriod = (short) Integer.parseInt(prefStr); Log.v(TAG, "updatePrefs() DataUpdatePeriod = " + mDataUpdatePeriod); @@ -406,13 +418,14 @@ public class SdDataSourcePebble extends SdDataSource { numSamples = data.getUnsignedIntegerAsLong(KEY_NUM_RAW_DATA); Log.v(TAG, "numSamples = " + numSamples); byte[] rawDataBytes = data.getBytes(KEY_RAW_DATA); - for (int i = 0; i < rawDataBytes.length - 6; i += 6) { // 6 bytes per sample - int x = (rawDataBytes[i+0] & 0xff) | (rawDataBytes[i+1] << 8); - int y = (rawDataBytes[i+2] & 0xff) | (rawDataBytes[i+3] << 8); - int z = (rawDataBytes[i+4] & 0xff) | (rawDataBytes[i+5] << 8); - Log.v(TAG,"x="+x+", y="+y+", z="+z); + for (int i = 0; i < rawDataBytes.length - 4; i += 4) { // 4 bytes per sample + int x = (rawDataBytes[i]); + //int y = (rawDataBytes[i+2] & 0xff) | (rawDataBytes[i+3] << 8); + //int z = (rawDataBytes[i+4] & 0xff) | (rawDataBytes[i+5] << 8); + //Log.v(TAG,"x="+x+", y="+y+", z="+z); + Log.v(TAG,"x="+x); if (nRawData < MAX_RAW_DATA) { - rawData[nRawData] = (int)Math.sqrt(x*x+y*y+z*z); + rawData[nRawData] = (int)Math.sqrt(x); } else { Log.i(TAG, "WARNING - rawData Buffer Full"); } @@ -495,6 +508,8 @@ public class SdDataSourcePebble extends SdDataSource { Log.v(TAG, "sendPebblSdSettings() - preparing settings dictionary.. mSampleFreq=" + mSampleFreq); // Watch Settings final PebbleDictionary setDict = new PebbleDictionary(); + setDict.addInt16(KEY_DEBUG, mDebug); + setDict.addInt16(KEY_DISPLAY_SPECTRUM, mDisplaySpectrum); setDict.addInt16(KEY_DATA_UPDATE_PERIOD, mDataUpdatePeriod); setDict.addInt16(KEY_MUTE_PERIOD, mMutePeriod); setDict.addInt16(KEY_MAN_ALARM_PERIOD, mManAlarmPeriod); diff --git a/app/src/main/res/values/pebble_datasource_values.xml b/app/src/main/res/values/pebble_datasource_values.xml new file mode 100644 index 0000000..5127299 --- /dev/null +++ b/app/src/main/res/values/pebble_datasource_values.xml @@ -0,0 +1,46 @@ + + + + + "Debug OFF" + "Debug ON" + + + "0" + "1" + + + + "Spectrum Display OFF" + "Spectrum Display ON" + + + "0" + "1" + + + + "Normal - OpenSeizureDetector FFT" + "Raw" + "Digital Filter" + + + "0" + "1" + "2" + + + + "100 Hz" + "50 Hz" + "25 Hz" + "10 Hz" + + + "100" + "50" + "25" + "10" + + + \ No newline at end of file diff --git a/app/src/main/res/values/pebble_sample_freq_list.xml b/app/src/main/res/values/pebble_sample_freq_list.xml deleted file mode 100644 index 7ffcea3..0000000 --- a/app/src/main/res/values/pebble_sample_freq_list.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - "100 Hz" - "50 Hz" - "25 Hz" - "10 Hz" - - - "100" - "50" - "25" - "10" - - - \ No newline at end of file diff --git a/app/src/main/res/values/pebble_sd_mode_list.xml b/app/src/main/res/values/pebble_sd_mode_list.xml deleted file mode 100644 index 130121d..0000000 --- a/app/src/main/res/values/pebble_sd_mode_list.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - "Normal - OpenSeizureDetector FFT" - "Raw" - "Digital Filter" - - - "0" - "1" - "2" - - - \ No newline at end of file diff --git a/app/src/main/res/xml/pebble_datasource_prefs.xml b/app/src/main/res/xml/pebble_datasource_prefs.xml index 710fcf2..9d5ea5f 100644 --- a/app/src/main/res/xml/pebble_datasource_prefs.xml +++ b/app/src/main/res/xml/pebble_datasource_prefs.xml @@ -1,4 +1,5 @@ + @@ -19,6 +20,22 @@ android:title="Manual Alarm Period (sec)" /> + +