diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d54f09..94022f6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
package="uk.org.openseizuredetector"
android:versionCode="114"
- android:versionName="4.1.2a">
+ android:versionName="4.1.2b">
diff --git a/app/src/main/assets/cnn_v0.23.tflite b/app/src/main/assets/cnn_v0.23.tflite
new file mode 100644
index 0000000..3830690
Binary files /dev/null and b/app/src/main/assets/cnn_v0.23.tflite differ
diff --git a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java
index f81af9f..94b3e79 100644
--- a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java
+++ b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java
@@ -231,7 +231,7 @@ public class MainActivity extends AppCompatActivity {
if (actionStr.equals("showDataSharingDialog")) {
showDataSharingDialog();
}
- Log.i(TAG, "onNewIntent - extra actionstr is "+actionStr);
+ Log.i(TAG, "onNewIntent - extra actionstr is " + actionStr);
} else {
Log.i(TAG, "onNewIntent - extra actionstr is null - starting normally");
}
@@ -517,14 +517,14 @@ public class MainActivity extends AppCompatActivity {
if (mConnection.mBound) {
if (mConnection.mSdServer.mSdDataSourceName.equals("Phone")) {
if (mConnection.mSdServer.mLogNDA)
- tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + "Phone" + "\n" + "(Demo Mode)"+"\nNDA Logging");
+ tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + "Phone" + "\n" + "(Demo Mode)" + "\nNDA Logging");
else
tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + "Phone" + "\n" + "(Demo Mode)");
tv.setBackgroundColor(warnColour);
tv.setTextColor(warnTextColour);
} else {
if (mConnection.mSdServer.mLogNDA)
- tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + mConnection.mSdServer.mSdDataSourceName+"\nNDA Logging");
+ tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + mConnection.mSdServer.mSdDataSourceName + "\nNDA Logging");
else
tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + mConnection.mSdServer.mSdDataSourceName);
tv.setBackgroundColor(okColour);
@@ -645,23 +645,23 @@ public class MainActivity extends AppCompatActivity {
// Pebble Connected Phrase - use for HR if active instead.
tv = (TextView) findViewById(R.id.pebbleTv);
//if (mConnection.mSdServer.mSdData.mHRAlarmActive) {
- if (mConnection.mSdServer.mSdData.mO2Sat>0) {
- tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR + " bpm\n"
- + "O2 Sat = " + mConnection.mSdServer.mSdData.mO2Sat + "%");
- } else {
- tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR + " bpm\n"
- + "O2 Sat = ---%");
- }
- if (mConnection.mSdServer.mSdData.mHRAlarmStanding || mConnection.mSdServer.mSdData.mO2SatAlarmStanding) {
- tv.setBackgroundColor(alarmColour);
- tv.setTextColor(alarmTextColour);
- } else if (mConnection.mSdServer.mSdData.mHRFaultStanding || mConnection.mSdServer.mSdData.mO2SatFaultStanding) {
- tv.setBackgroundColor(warnColour);
- tv.setTextColor(warnTextColour);
- } else {
- tv.setBackgroundColor(okColour);
- tv.setTextColor(okTextColour);
- }
+ if (mConnection.mSdServer.mSdData.mO2Sat > 0) {
+ tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR + " bpm\n"
+ + "O2 Sat = " + mConnection.mSdServer.mSdData.mO2Sat + "%");
+ } else {
+ tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR + " bpm\n"
+ + "O2 Sat = ---%");
+ }
+ if (mConnection.mSdServer.mSdData.mHRAlarmStanding || mConnection.mSdServer.mSdData.mO2SatAlarmStanding) {
+ tv.setBackgroundColor(alarmColour);
+ tv.setTextColor(alarmTextColour);
+ } else if (mConnection.mSdServer.mSdData.mHRFaultStanding || mConnection.mSdServer.mSdData.mO2SatFaultStanding) {
+ tv.setBackgroundColor(warnColour);
+ tv.setTextColor(warnTextColour);
+ } else {
+ tv.setBackgroundColor(okColour);
+ tv.setTextColor(okTextColour);
+ }
/*} else {
if (mConnection.mSdServer.mSdData.watchConnected) {
tv.setText(R.string.HRAlarmOff);
@@ -706,9 +706,15 @@ public class MainActivity extends AppCompatActivity {
// We start off with it set to OK, then check for several different abnormal conditions
// in turn - the last one that is active is the one that is displayed.
tv = (TextView) findViewById(R.id.remoteDbTv);
- tv.setText(getString(R.string.data_sharing_status)
- + ": "
- + getString(R.string.data_sharing_setup_ok));
+ if (mConnection.mSdServer.mLogNDA)
+ tv.setText(getString(R.string.data_sharing_status)
+ + ": "
+ + getString(R.string.data_sharing_setup_ok)
+ + ": " + "NDA Logging");
+ else
+ tv.setText(getString(R.string.data_sharing_status)
+ + ": "
+ + getString(R.string.data_sharing_setup_ok));
tv.setBackgroundColor(okColour);
tv.setTextColor(okTextColour);
@@ -784,13 +790,13 @@ public class MainActivity extends AppCompatActivity {
specRatio = 0;
long pSeizurePc;
- pSeizurePc = (long)(mConnection.mSdServer.mSdData.mPseizure * 100);
- Log.d(TAG,"pSeizurePc="+pSeizurePc+", mPseizure="+mConnection.mSdServer.mSdData.mPseizure);
+ pSeizurePc = (long) (mConnection.mSdServer.mSdData.mPseizure * 100);
+ Log.d(TAG, "pSeizurePc=" + pSeizurePc + ", mPseizure=" + mConnection.mSdServer.mSdData.mPseizure);
((TextView) findViewById(R.id.powerTv)).setText(getString(R.string.PowerEquals) + mConnection.mSdServer.mSdData.roiPower +
" (" + getString(R.string.Threshold) + "=" + mConnection.mSdServer.mSdData.alarmThresh + ")");
((TextView) findViewById(R.id.spectrumTv)).setText(getString(R.string.SpectrumRatioEquals) + specRatio +
" (" + getString(R.string.Threshold) + "=" + mConnection.mSdServer.mSdData.alarmRatioThresh + ")");
- ((TextView) findViewById(R.id.pSeizureTv)).setText("Seizure Probability = "+pSeizurePc+"%");
+ ((TextView) findViewById(R.id.pSeizureTv)).setText("Seizure Probability = " + pSeizurePc + "%");
ProgressBar pb;
Drawable pbDrawable;
@@ -830,7 +836,6 @@ public class MainActivity extends AppCompatActivity {
pb.setProgressDrawable(pbDrawable);
-
// Fault Conditions - We override the values in the UI because we do not know
// if the stored ones are correct or not with a fault present.
if ((mConnection.mSdServer.mSdData.alarmState == 4) ||
@@ -1074,24 +1079,24 @@ public class MainActivity extends AppCompatActivity {
}
});
builder.setPositiveButton("Privacy Policy", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- String url = OsdUtil.PRIVACY_POLICY_URL;
- Intent i = new Intent(Intent.ACTION_VIEW);
- i.setData(Uri.parse(url));
- startActivity(i);
- dialog.cancel();
- }
- });
+ public void onClick(DialogInterface dialog, int id) {
+ dialog.cancel();
+ String url = OsdUtil.PRIVACY_POLICY_URL;
+ Intent i = new Intent(Intent.ACTION_VIEW);
+ i.setData(Uri.parse(url));
+ startActivity(i);
+ dialog.cancel();
+ }
+ });
builder.setNegativeButton("Data Sharing", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- String url = OsdUtil.DATA_SHARING_URL;
- Intent i = new Intent(Intent.ACTION_VIEW);
- i.setData(Uri.parse(url));
- startActivity(i);
- dialog.cancel();
- }
+ public void onClick(DialogInterface dialog, int id) {
+ dialog.cancel();
+ String url = OsdUtil.DATA_SHARING_URL;
+ Intent i = new Intent(Intent.ACTION_VIEW);
+ i.setData(Uri.parse(url));
+ startActivity(i);
+ dialog.cancel();
+ }
});
builder.setView(aboutView);
builder.create();
diff --git a/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java b/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java
index e3ea483..e42f4e9 100644
--- a/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java
+++ b/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java
@@ -25,7 +25,7 @@ import java.util.Map;
public class SdAlgNn {
private final static String TAG = "SdAlgNn";
- private final static String MODEL_PATH = "cnn_v0.22.tflite";
+ private final static String MODEL_PATH = "cnn_v0.23.tflite";
private String mUrlBase = "https://osdApi.ddns.net";
private InterpreterApi interpreter;
private Context mContext;
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8a7ec86..50465f0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,7 +3,7 @@
OpenSeizureDetector
"\n
- \nV4.1.0 - Added Machine Learning (Artificial Intelligence) Detection Algorithm Option (CNN V0.12)
+ \nV4.1.2 - Added Machine Learning (Artificial Intelligence) Detection Algorithm Option (CNN V0.23) and 'Normal Daily Activity (NDA) logging function
\nV4.0.7 - Improvements to Data Sharing data log manager screen.
- Introduced the <b>Data Sharing</b> feature to allow users to share their seizure and false alarm data
with researchers to help improve the system.<br/>