Reduced amount of settings data stored in datapoints table to reduce storage. Modified sdserver so that remote logging is disabled when using network datasource to avoid duplication of data.

This commit is contained in:
Graham Jones
2022-04-12 17:05:55 +01:00
parent 3e9ec5ed81
commit 0d772f230b
92 changed files with 113 additions and 44 deletions

View File

@@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="uk.org.openseizuredetector" package="uk.org.openseizuredetector"
android:versionCode="100" android:versionCode="100"
android:versionName="4.0.4"> android:versionName="4.0.4a">
<!-- android:allowBackup="false" --> <!-- android:allowBackup="false" -->
<uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

View File

@@ -289,7 +289,7 @@ public class LogManager {
+ " VALUES(" + " VALUES("
+ "'" + dateStr + "'," + "'" + dateStr + "',"
+ sdData.alarmState + "," + sdData.alarmState + ","
+ DatabaseUtils.sqlEscapeString(sdData.toJSON(true)) + "," + DatabaseUtils.sqlEscapeString(sdData.toDatapointJSON()) + ","
+ 0 + 0
+ ")"; + ")";
mOsdDb.execSQL(SQLStr); mOsdDb.execSQL(SQLStr);
@@ -314,7 +314,7 @@ public class LogManager {
public boolean createLocalEvent(String dataTime, long status, String type, String subType, String desc, String dataJSON) { public boolean createLocalEvent(String dataTime, long status, String type, String subType, String desc, String dataJSON) {
// Expects dataTime to be in format: SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // Expects dataTime to be in format: SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Log.d(TAG, "createLocalEvent() - dataTime=" + dataTime + ", status=" + status + ", dataJSON="+dataJSON); Log.d(TAG, "createLocalEvent() - dataTime=" + dataTime + ", status=" + status + ", dataJSON="+dataJSON);
// Write Datapoint to database // Write Event to database
String SQLStr = "INSERT INTO " + mEventsTableName String SQLStr = "INSERT INTO " + mEventsTableName
+ "(dataTime, status, type, subtype, notes, dataJSON)" + "(dataTime, status, type, subtype, notes, dataJSON)"
+ " VALUES(" + " VALUES("

View File

@@ -170,6 +170,49 @@ public class SdData implements Parcelable {
return toDataString(includeRawData); return toDataString(includeRawData);
} }
public String toDatapointJSON() {
String retval;
retval = "SdData.toDatapointJSON() Output";
try {
JSONObject jsonObj = new JSONObject();
if (dataTime != null) {
jsonObj.put("dataTime", dataTime.format("%d-%m-%Y %H:%M:%S"));
jsonObj.put("dataTimeStr", dataTime.format("%Y%m%dT%H%M%S"));
} else {
jsonObj.put("dataTimeStr", "00000000T000000");
jsonObj.put("dataTime", "00-00-00 00:00:00");
}
Log.v(TAG, "mSdData.dataTime = " + dataTime);
jsonObj.put("maxVal", maxVal);
jsonObj.put("maxFreq", maxFreq);
jsonObj.put("specPower", specPower);
jsonObj.put("roiPower", roiPower);
jsonObj.put("roiRatio", 10 * roiPower / specPower);
jsonObj.put("alarmState", alarmState);
jsonObj.put("alarmPhrase", alarmPhrase);
jsonObj.put("hr", mHR);
jsonObj.put("o2Sat", mO2Sat);
JSONArray arr = new JSONArray();
for (int i = 0; i < simpleSpec.length; i++) {
arr.put(simpleSpec[i]);
}
jsonObj.put("simpleSpec", arr);
JSONArray rawArr = new JSONArray();
for (int i = 0; i < rawData.length; i++) {
rawArr.put(rawData[i]);
}
jsonObj.put("rawData", rawArr);
retval = jsonObj.toString();
} catch (Exception ex) {
Log.v(TAG, "Error Creating Data Object - " + ex.toString());
retval = "Error Creating Data Object - " + ex.toString();
}
return (retval);
}
public String toSettingsJSON() { public String toSettingsJSON() {
String retval; String retval;
retval = "SdData.toSettingsJSON() Output"; retval = "SdData.toSettingsJSON() Output";
@@ -299,7 +342,9 @@ public class SdData implements Parcelable {
return (retval); return (retval);
} }
/** Return the average acceleration value in the dataset */ /**
* Return the average acceleration value in the dataset
*/
public double getAvAcc() { public double getAvAcc() {
double sumAcc = 0.0; double sumAcc = 0.0;
for (int i = 0; i < mNsamp; i++) { for (int i = 0; i < mNsamp; i++) {
@@ -308,7 +353,9 @@ public class SdData implements Parcelable {
return (sumAcc / mNsamp); return (sumAcc / mNsamp);
} }
/** Return the standard deviation of the acceleration values */ /**
* Return the standard deviation of the acceleration values
*/
public double getSdAcc() { public double getSdAcc() {
double avAcc = 0.0; double avAcc = 0.0;
double varAcc = 0.0; double varAcc = 0.0;

View File

@@ -227,10 +227,6 @@ public class SdServer extends Service implements SdDataReceiver {
Log.v(TAG, "onStartCommand() - calling updatePrefs()"); Log.v(TAG, "onStartCommand() - calling updatePrefs()");
updatePrefs(); updatePrefs();
// Create our log manager.
mLm = new LogManager(this, mLogDataRemote, mLogDataRemoteMobile, mAuthToken, mEventDuration,
mRemoteLogPeriod, mAutoPruneDb, mDataRetentionPeriod);
Log.v(TAG, "onStartCommand: Datasource =" + mSdDataSourceName); Log.v(TAG, "onStartCommand: Datasource =" + mSdDataSourceName);
switch (mSdDataSourceName) { switch (mSdDataSourceName) {
case "Pebble": case "Pebble":
@@ -247,6 +243,8 @@ public class SdServer extends Service implements SdDataReceiver {
Log.v(TAG, "Selecting Network DataSource"); Log.v(TAG, "Selecting Network DataSource");
mUtil.writeToSysLogFile("SdServer.onStartCommand() - creating SdDataSourceNetwork"); mUtil.writeToSysLogFile("SdServer.onStartCommand() - creating SdDataSourceNetwork");
mSdDataSource = new SdDataSourceNetwork(this.getApplicationContext(), mHandler, this); mSdDataSource = new SdDataSourceNetwork(this.getApplicationContext(), mHandler, this);
Log.i(TAG,"Disabling remote logging when using network data source");
mLogDataRemote = false;
break; break;
case "Garmin": case "Garmin":
Log.v(TAG, "Selecting Garmin DataSource"); Log.v(TAG, "Selecting Garmin DataSource");
@@ -271,6 +269,10 @@ public class SdServer extends Service implements SdDataReceiver {
mSdDataSource = new SdDataSourcePhone(this.getApplicationContext(), mHandler, this); mSdDataSource = new SdDataSourcePhone(this.getApplicationContext(), mHandler, this);
} }
// Create our log manager.
mLm = new LogManager(this, mLogDataRemote, mLogDataRemoteMobile, mAuthToken, mEventDuration,
mRemoteLogPeriod, mAutoPruneDb, mDataRetentionPeriod);
if (mSMSAlarm) { if (mSMSAlarm) {
Log.v(TAG, "Creating LocationFinder"); Log.v(TAG, "Creating LocationFinder");
mLocationFinder = new LocationFinder(getApplicationContext()); mLocationFinder = new LocationFinder(getApplicationContext());

Binary file not shown.

BIN
releases/app-release.apk Normal file

Binary file not shown.

View File

@@ -0,0 +1,20 @@
{
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
},
"applicationId": "uk.org.openseizuredetector",
"variantName": "release",
"elements": [
{
"type": "SINGLE",
"filters": [],
"attributes": [],
"versionCode": 100,
"versionName": "4.0.4a",
"outputFile": "app-release.apk"
}
],
"elementType": "File"
}