Fixed issue with all events being uploaded as WARNING type even if they contain ALARM events. Fixes #37

This commit is contained in:
Graham Jones
2022-03-10 20:43:30 +00:00
parent 7d307529b4
commit fcbd8e95e0

View File

@@ -661,43 +661,48 @@ public class LogManager {
//int eventId = -1; //int eventId = -1;
Log.v(TAG, "uploadSdData()"); Log.v(TAG, "uploadSdData()");
// First try uploading full alarms, and only if we do not have any of those, upload warnings. // First try uploading full alarms, and only if we do not have any of those, upload warnings.
getNextEventToUpload(true, (Long eventId) -> { boolean warningsArr[] = { false, true };
if (eventId != -1) { for (int n=0; n<warningsArr.length; n++) {
Log.v(TAG, "uploadSdData() - eventId=" + eventId); boolean warningsVal = warningsArr[n];
String eventJsonStr = getDatapointById(eventId); Log.i(TAG, "uploadSdData(): warningsVal=" + warningsVal);
Log.v(TAG, "uploadSdData() - eventJsonStr=" + eventJsonStr); getNextEventToUpload(warningsVal, (Long eventId) -> {
//int eventType; if (eventId != -1) {
JSONObject eventObj; Log.v(TAG, "uploadSdData() - eventId=" + eventId);
int eventAlarmStatus; String eventJsonStr = getDatapointById(eventId);
String eventDateStr; Log.v(TAG, "uploadSdData() - eventJsonStr=" + eventJsonStr);
Date eventDate; //int eventType;
try { JSONObject eventObj;
JSONArray datapointJsonArr = new JSONArray(eventJsonStr); int eventAlarmStatus;
eventObj = datapointJsonArr.getJSONObject(0); // We only look at the first (and hopefully only) item in the array. String eventDateStr;
eventAlarmStatus = Integer.parseInt(eventObj.getString("status")); Date eventDate;
eventDateStr = eventObj.getString("dataTime"); try {
Log.v(TAG, "uploadSdData - data from local DB is:" + eventJsonStr + ", eventAlarmStatus=" JSONArray datapointJsonArr = new JSONArray(eventJsonStr);
+ eventAlarmStatus + ", eventDateStr=" + eventDateStr); eventObj = datapointJsonArr.getJSONObject(0); // We only look at the first (and hopefully only) item in the array.
} catch (JSONException e) { eventAlarmStatus = Integer.parseInt(eventObj.getString("status"));
Log.e(TAG, "ERROR parsing event JSON Data" + eventJsonStr); eventDateStr = eventObj.getString("dataTime");
e.printStackTrace(); Log.v(TAG, "uploadSdData - data from local DB is:" + eventJsonStr + ", eventAlarmStatus="
return; + eventAlarmStatus + ", eventDateStr=" + eventDateStr);
} catch (NullPointerException e) { } catch (JSONException e) {
Log.e(TAG, "ERROR null pointer exception parsing event JSON Data" + eventJsonStr); Log.e(TAG, "ERROR parsing event JSON Data" + eventJsonStr);
e.printStackTrace(); e.printStackTrace();
return; return;
} catch (NullPointerException e) {
Log.e(TAG, "ERROR null pointer exception parsing event JSON Data" + eventJsonStr);
e.printStackTrace();
return;
}
try {
eventDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(eventDateStr);
} catch (ParseException e) {
Log.e(TAG, "Error parsing date " + eventDateStr);
return;
}
mWac.createEvent(eventAlarmStatus, eventDate, "", this::createEventCallback);
} else {
Log.v(TAG, "UploadSdData - no data to upload");
} }
try { });
eventDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(eventDateStr); }
} catch (ParseException e) {
Log.e(TAG, "Error parsing date " + eventDateStr);
return;
}
mWac.createEvent(eventAlarmStatus, eventDate, "", this::createEventCallback);
} else {
Log.v(TAG, "UploadSdData - no data to upload");
}
});
} }