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");
String dataTypeStr = dataObject.getString("dataType");
Log.v(TAG,"updateFromJSON - dataType="+dataTypeStr);
JSONArray accelVals = dataObject.getJSONArray("data");
Log.v(TAG,"Received " + accelVals.length() + " acceleration values");
int i;
for (i=0;i<accelVals.length();i++)
{
mAccData[i] = accelVals.getInt(i);
if (dataTypeStr.equals("raw")) {
Log.v(TAG,"updateFromJSON - processing raw data");
JSONArray accelVals = dataObject.getJSONArray("data");
Log.v(TAG, "Received " + accelVals.length() + " acceleration values");
int i;
for (i = 0; i < accelVals.length(); i++) {
mAccData[i] = accelVals.getInt(i);
}
mNSamp = accelVals.length();
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;
}
mNSamp = accelVals.length();
doAnalysis();
} catch (Exception e) {
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);
// Send the data to the SdDataSource so the app can pick it up.
mSdServer.mSdDataSource.updateFromJSON(parameters.toString());
if (mSdData.haveSettings) {
answer = "OK";
} else {
answer = "sendSettings";
}
break;
default:
Log.v(TAG, "WebServer.serve() - Unrecognised method - " + method);
@@ -101,25 +106,35 @@ public class SdWebServer extends NanoHTTPD {
break;
case "/settings":
//Log.v(TAG,"WebServer.serve() - Returning settings");
try {
JSONObject jsonObj = new JSONObject();
jsonObj.put("alarmFreqMin", mSdData.alarmFreqMin);
jsonObj.put("alarmFreqMax", mSdData.alarmFreqMax);
jsonObj.put("nMin", mSdData.nMin);
jsonObj.put("nMax", mSdData.nMax);
jsonObj.put("warnTime", mSdData.warnTime);
jsonObj.put("alarmTime", mSdData.alarmTime);
jsonObj.put("alarmThresh", mSdData.alarmThresh);
jsonObj.put("alarmRatioThresh", mSdData.alarmRatioThresh);
jsonObj.put("batteryPc", mSdData.batteryPc);
answer = jsonObj.toString();
} catch (Exception ex) {
Log.v(TAG, "Error Creating Data Object - " + ex.toString());
answer = "Error Creating Data Object";
switch (method) {
case GET:
//Log.v(TAG,"WebServer.serve() - Returning settings");
try {
JSONObject jsonObj = new JSONObject();
jsonObj.put("alarmFreqMin", mSdData.alarmFreqMin);
jsonObj.put("alarmFreqMax", mSdData.alarmFreqMax);
jsonObj.put("nMin", mSdData.nMin);
jsonObj.put("nMax", mSdData.nMax);
jsonObj.put("warnTime", mSdData.warnTime);
jsonObj.put("alarmTime", mSdData.alarmTime);
jsonObj.put("alarmThresh", mSdData.alarmThresh);
jsonObj.put("alarmRatioThresh", mSdData.alarmRatioThresh);
jsonObj.put("batteryPc", mSdData.batteryPc);
answer = jsonObj.toString();
} catch (Exception ex) {
Log.v(TAG, "Error Creating Data Object - " + ex.toString());
answer = "Error Creating Data Object";
}
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);
}
break;
case "/spectrum":
Log.v(TAG, "WebServer.serve() - Returning spectrum - 1");
try {