Added code to receive settings by HTTP POST request.

This commit is contained in:
Graham Jones
2017-10-16 20:39:33 +01:00
parent ad77fe7740
commit 700abb0855
2 changed files with 49 additions and 28 deletions

View File

@@ -281,17 +281,23 @@ public class SdDataSourceNetworkPassive extends SdDataSource {
JSONObject dataObject = mainObject.getJSONObject("dataObj"); JSONObject dataObject = mainObject.getJSONObject("dataObj");
String dataTypeStr = dataObject.getString("dataType"); String dataTypeStr = dataObject.getString("dataType");
Log.v(TAG,"updateFromJSON - dataType="+dataTypeStr); Log.v(TAG,"updateFromJSON - dataType="+dataTypeStr);
if (dataTypeStr.equals("raw")) {
Log.v(TAG,"updateFromJSON - processing raw data");
JSONArray accelVals = dataObject.getJSONArray("data"); JSONArray accelVals = dataObject.getJSONArray("data");
Log.v(TAG, "Received " + accelVals.length() + " acceleration values"); Log.v(TAG, "Received " + accelVals.length() + " acceleration values");
int i; int i;
for (i=0;i<accelVals.length();i++) for (i = 0; i < accelVals.length(); i++) {
{
mAccData[i] = accelVals.getInt(i); mAccData[i] = accelVals.getInt(i);
} }
mNSamp = accelVals.length(); mNSamp = accelVals.length();
doAnalysis(); doAnalysis();
} else if (dataTypeStr.equals("settings")){
Log.v(TAG,"updateFromJSON - processing settings");
mSamplePeriod = (short)dataObject.getInt("analysisPeriod");
mSampleFreq = (short)dataObject.getInt("analysisPeriod");
mSdData.haveSettings = true;
mSdData.mSampleFreq = mSampleFreq;
}
} catch (Exception e) { } catch (Exception e) {
Log.v(TAG,"Error Parsing JSON String - "+e.toString()); Log.v(TAG,"Error Parsing JSON String - "+e.toString());
} }

View File

@@ -94,6 +94,11 @@ public class SdWebServer extends NanoHTTPD {
//Log.v(TAG, " postData=" + postData); //Log.v(TAG, " postData=" + postData);
// Send the data to the SdDataSource so the app can pick it up. // Send the data to the SdDataSource so the app can pick it up.
mSdServer.mSdDataSource.updateFromJSON(parameters.toString()); mSdServer.mSdDataSource.updateFromJSON(parameters.toString());
if (mSdData.haveSettings) {
answer = "OK";
} else {
answer = "sendSettings";
}
break; break;
default: default:
Log.v(TAG, "WebServer.serve() - Unrecognised method - " + method); Log.v(TAG, "WebServer.serve() - Unrecognised method - " + method);
@@ -101,6 +106,8 @@ public class SdWebServer extends NanoHTTPD {
break; break;
case "/settings": case "/settings":
switch (method) {
case GET:
//Log.v(TAG,"WebServer.serve() - Returning settings"); //Log.v(TAG,"WebServer.serve() - Returning settings");
try { try {
JSONObject jsonObj = new JSONObject(); JSONObject jsonObj = new JSONObject();
@@ -119,7 +126,15 @@ public class SdWebServer extends NanoHTTPD {
answer = "Error Creating Data Object"; answer = "Error Creating Data Object";
} }
break; break;
case POST:
Log.v(TAG, "WebServer.serve() - POST /settings - receiving data from device: parameters=" + parameters.toString());
Log.v(TAG, " header=" + header.toString());
Log.v(TAG, " files=" + files.toString());
mSdServer.mSdDataSource.updateFromJSON(parameters.toString());
break;
default:
Log.v(TAG, "WebServer.serve() - Unrecognised method - " + method);
}
case "/spectrum": case "/spectrum":
Log.v(TAG, "WebServer.serve() - Returning spectrum - 1"); Log.v(TAG, "WebServer.serve() - Returning spectrum - 1");
try { try {