From 09ab2187db43d297170369f866d15ce70ccb39ce Mon Sep 17 00:00:00 2001 From: David Leuenberger Date: Thu, 28 Jan 2016 19:51:54 +0100 Subject: [PATCH 01/12] call tlmReader with inputstream to reduce memory usage during parsing. The performance is comparable with both solutions. --- .../src/android/ExportService.java | 247 +++++++++--------- .../src/android/Exporter.java | 1 + .../src/android/libs/tlmreader.jar | Bin 18198 -> 25837 bytes 3 files changed, 119 insertions(+), 129 deletions(-) diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/ExportService.java b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/ExportService.java index 511daeb..7f05834 100644 --- a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/ExportService.java +++ b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/ExportService.java @@ -1,142 +1,131 @@ package com.monstarmike.telemetry.plugins.tlmDecoder; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; + +import org.json.JSONObject; + +import com.monstarmike.tlmreader.TLMReader; + import android.app.IntentService; import android.content.Intent; import android.net.Uri; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; -import com.google.common.io.ByteStreams; -import com.monstarmike.tlmreader.TLMReader; - -import org.json.JSONObject; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; - /** * Created by mgardner on 6/5/15. */ public class ExportService extends IntentService { - private static final String TAG = "ExportService"; - - public ExportService() { - super(TAG); - } - - @Override - protected void onHandleIntent(Intent intent) { - String action = intent.getAction(); - - Log.d(TAG, "Export Service action: " + action); - if (action.equalsIgnoreCase(Constants.ExportServiceActions.READ_FLIGHT)) { - Uri fileUri = ServiceDataTransfer.getInstance().get_fileUri(); - JSONObject flightJO = ServiceDataTransfer.getInstance().get_flight(); - - if (fileUri == null) { - Log.w(TAG, "The file Uri pulled from the ServiceDataTransfer singleton was null!"); - } - if (flightJO == null) { - Log.w(TAG, "The flight object pulled from the ServiceDataTransfer singleton was null!"); - } - - JSONObject decodedFlight = null; - try { - decodedFlight = this.buildFlight(fileUri, flightJO); - } catch (Exception e) { - Log.e(TAG, "Error occurred decoding the flight!", e); - } - - if (decodedFlight == null) { - Log.w(TAG, "The decoded flight was null. This could be seriously not good!"); - } - - ServiceDataTransfer.getInstance().set_flight(decodedFlight); - - Intent localIntent = new Intent(Constants.READ_FLIGHT_BROADCAST_ACTION); - LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent); - } else if (action.equalsIgnoreCase(Constants.ExportServiceActions.READ_FILE)) { - Uri uri = intent.getData(); - - Log.d(TAG, "Reading file: " + uri.toString()); - - JSONObject file = null; - - try { - file = this.parseFile(uri); - } catch (IOException e) { - Log.e(TAG, "IO error when trying to get and parse the TLM data file.", e); - } - - if (file == null) { - Log.w(TAG, "This is interesting. The file JSONObject from the parse function is null!"); - } - - Log.d(TAG, "Done with the file. Broadcasting a local intent."); - ServiceDataTransfer.getInstance().set_file(file); - Intent localIntent = new Intent(Constants.READ_FILE_BROADCAST_ACTION); - LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent); - } - } - - private JSONObject buildFlight(Uri uri, JSONObject flightJO) { - - if (uri == null) { - Log.w(TAG, "Returning the default flight object that was passed in."); - return flightJO; - } else { - Log.d(TAG, "URI: " + uri.toString()); - } - - InputStream inputStream = null; - try { - inputStream = this.getContentResolver().openInputStream(uri); - } catch (FileNotFoundException e) { - Log.w(TAG, "Cannot find the file at " + uri.toString(), e); - } - if (inputStream == null) { - Log.w(TAG, "Returning the default flight object that was passed in."); - return flightJO; - } - - byte[] bytes = new byte[0]; - try { - bytes = ByteStreams.toByteArray(inputStream); - } catch (IOException e) { - Log.w(TAG, "Unable to read the input stream to a byte array.", e); - } - - if (bytes.length == 0) { - Log.w(TAG, "Returning the default flight object that was passed in."); - return flightJO; - } - - TLMReader reader = new TLMReader(); - - reader.Read(bytes); - - Exporter exporter = new Exporter(uri, reader, this.getApplicationContext()); - return exporter.exportFlightData(flightJO); - } - - private JSONObject parseFile(Uri uri) throws IOException { - InputStream inputStream = this.getApplicationContext().getContentResolver().openInputStream(uri); - Log.d(TAG, "Have an input stream."); - byte[] bytes = ByteStreams.toByteArray(inputStream); - Log.d(TAG, "Read bytes: " + bytes.length); - - TLMReader reader = new TLMReader(); - - reader.Read(bytes); - - Log.d(TAG, "The reader has read all the bytes. Going to export."); - - Exporter exporter = new Exporter(uri, reader, this.getApplicationContext()); - - JSONObject file = exporter.exportFlights(); - - - return file; - } + private static final String TAG = "ExportService"; + + public ExportService() { + super(TAG); + } + + @Override + protected void onHandleIntent(Intent intent) { + String action = intent.getAction(); + + Log.d(TAG, "Export Service action: " + action); + if (action.equalsIgnoreCase(Constants.ExportServiceActions.READ_FLIGHT)) { + Uri fileUri = ServiceDataTransfer.getInstance().get_fileUri(); + JSONObject flightJO = ServiceDataTransfer.getInstance().get_flight(); + + if (fileUri == null) { + Log.w(TAG, "The file Uri pulled from the ServiceDataTransfer singleton was null!"); + } + if (flightJO == null) { + Log.w(TAG, "The flight object pulled from the ServiceDataTransfer singleton was null!"); + } + + JSONObject decodedFlight = null; + try { + decodedFlight = this.buildFlight(fileUri, flightJO); + } catch (Exception e) { + Log.e(TAG, "Error occurred decoding the flight!", e); + } + + if (decodedFlight == null) { + Log.w(TAG, "The decoded flight was null. This could be seriously not good!"); + } + + ServiceDataTransfer.getInstance().set_flight(decodedFlight); + + Intent localIntent = new Intent(Constants.READ_FLIGHT_BROADCAST_ACTION); + LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent); + } else if (action.equalsIgnoreCase(Constants.ExportServiceActions.READ_FILE)) { + Uri uri = intent.getData(); + + Log.d(TAG, "Reading file: " + uri.toString()); + + JSONObject file = null; + + try { + file = this.parseFlights(uri); + } catch (IOException e) { + Log.e(TAG, "IO error when trying to get and parse the TLM data file.", e); + } + + if (file == null) { + Log.w(TAG, "This is interesting. The file JSONObject from the parse function is null!"); + } + + Log.d(TAG, "Done with the file. Broadcasting a local intent."); + ServiceDataTransfer.getInstance().set_file(file); + Intent localIntent = new Intent(Constants.READ_FILE_BROADCAST_ACTION); + LocalBroadcastManager.getInstance(this).sendBroadcast(localIntent); + } + } + + private JSONObject buildFlight(Uri uri, JSONObject flightJO) { + + if (uri == null) { + Log.w(TAG, "Returning the default flight object that was passed in."); + return flightJO; + } else { + Log.d(TAG, "URI: " + uri.toString()); + } + + InputStream inputStream = null; + try { + inputStream = this.getContentResolver().openInputStream(uri); + } catch (FileNotFoundException e) { + Log.w(TAG, "Cannot find the file at " + uri.toString(), e); + } + if (inputStream == null) { + Log.w(TAG, "Returning the default flight object that was passed in."); + return flightJO; + } + + final TLMReader reader = parseFile(inputStream); + if (!reader.hasFlights()) { + Log.w(TAG, "Returning the default flight object that was passed in."); + return flightJO; + } + + Exporter exporter = new Exporter(uri, reader, this.getApplicationContext()); + return exporter.exportFlightData(flightJO); + } + + private JSONObject parseFlights(Uri uri) throws IOException { + InputStream inputStream = this.getApplicationContext().getContentResolver().openInputStream(uri); + TLMReader reader = parseFile(inputStream); + Exporter exporter = new Exporter(uri, reader, this.getApplicationContext()); + JSONObject file = exporter.exportFlights(); + return file; + } + + private TLMReader parseFile(InputStream inputStream) { + Log.d(TAG, "Instantiate TLMReader."); + final TLMReader reader = new TLMReader(); + try { + reader.Read(inputStream); + } catch (final IOException e) { + Log.w(TAG, "Unable to read the input stream.", e); + } + Log.d(TAG, "Read bytes: " + reader.getNumberOfBytesRead()); + return reader; + } } diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java index 12e7807..12216a7 100644 --- a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java +++ b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java @@ -90,6 +90,7 @@ public JSONObject exportFlightData(JSONObject flightJO) { Log.d(TAG, "Found flight. Going to do a full decode."); newFlightJO = this.buildFlight(true, flight); + Log.d(TAG, "Full decode done"); if (newFlightJO != null) { try { newFlightJO.put("_id", joId); diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar index f4d4d1eed1bfcf289e94428da28960731d9bac93..55ccd6708703ae52c3998c1315a4791caa63fd34 100644 GIT binary patch delta 19113 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 oSAOh2HUC~;4+8%q0tIw5N5q5%Wud^ph(UisAV Date: Fri, 29 Jan 2016 17:49:25 +0100 Subject: [PATCH 02/12] Change to the new API calls decodeFlight,decodeFlightDefintions --- .../src/android/ExportService.java | 56 +- .../src/android/Exporter.java | 611 ++++++++---------- 2 files changed, 315 insertions(+), 352 deletions(-) diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/ExportService.java b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/ExportService.java index 7f05834..c76cc88 100644 --- a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/ExportService.java +++ b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/ExportService.java @@ -3,9 +3,14 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import org.json.JSONException; import org.json.JSONObject; +import com.monstarmike.tlmreader.Flight; +import com.monstarmike.tlmreader.IFlight; import com.monstarmike.tlmreader.TLMReader; import android.app.IntentService; @@ -42,7 +47,7 @@ protected void onHandleIntent(Intent intent) { JSONObject decodedFlight = null; try { - decodedFlight = this.buildFlight(fileUri, flightJO); + decodedFlight = this.decodeFlight(fileUri, flightJO); } catch (Exception e) { Log.e(TAG, "Error occurred decoding the flight!", e); } @@ -63,7 +68,7 @@ protected void onHandleIntent(Intent intent) { JSONObject file = null; try { - file = this.parseFlights(uri); + file = this.decodeFlightDefinitions(uri); } catch (IOException e) { Log.e(TAG, "IO error when trying to get and parse the TLM data file.", e); } @@ -79,7 +84,7 @@ protected void onHandleIntent(Intent intent) { } } - private JSONObject buildFlight(Uri uri, JSONObject flightJO) { + private JSONObject decodeFlight(Uri uri, JSONObject flightJO) throws IOException { if (uri == null) { Log.w(TAG, "Returning the default flight object that was passed in."); @@ -99,33 +104,46 @@ private JSONObject buildFlight(Uri uri, JSONObject flightJO) { return flightJO; } - final TLMReader reader = parseFile(inputStream); - if (!reader.hasFlights()) { - Log.w(TAG, "Returning the default flight object that was passed in."); - return flightJO; + int joId = 0; + try { + joId = flightJO.getInt("_id"); + Log.d(TAG, "FlightId: " + joId); + } catch (JSONException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } + + final TLMReader reader = new TLMReader(); + final Flight flight = reader.parseFlight(inputStream, joId); - Exporter exporter = new Exporter(uri, reader, this.getApplicationContext()); - return exporter.exportFlightData(flightJO); - } + Exporter exporter = new Exporter(uri, this.getApplicationContext()); + Log.d(TAG, "Found flight. Going to do a full decode."); + JSONObject exportFlightData = exporter.exportFlightData(flight); + Log.d(TAG, "Full decode done"); + if (exportFlightData != null) { + try { + exportFlightData.put("_id", joId); + } catch (JSONException e) { + e.printStackTrace(); + } + } + return exportFlightData; - private JSONObject parseFlights(Uri uri) throws IOException { - InputStream inputStream = this.getApplicationContext().getContentResolver().openInputStream(uri); - TLMReader reader = parseFile(inputStream); - Exporter exporter = new Exporter(uri, reader, this.getApplicationContext()); - JSONObject file = exporter.exportFlights(); - return file; } - private TLMReader parseFile(InputStream inputStream) { + private JSONObject decodeFlightDefinitions(Uri uri) throws IOException { + InputStream inputStream = this.getApplicationContext().getContentResolver().openInputStream(uri); Log.d(TAG, "Instantiate TLMReader."); + List flights = new ArrayList(); final TLMReader reader = new TLMReader(); try { - reader.Read(inputStream); + flights = reader.parseFlightDefinitions(inputStream); } catch (final IOException e) { Log.w(TAG, "Unable to read the input stream.", e); } Log.d(TAG, "Read bytes: " + reader.getNumberOfBytesRead()); - return reader; + Exporter exporter = new Exporter(uri, this.getApplicationContext()); + JSONObject file = exporter.exportFlightDefintions(flights); + return file; } } diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java index 12216a7..4098d3f 100644 --- a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java +++ b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.util.Iterator; +import java.util.List; import org.joda.time.Duration; import org.joda.time.Period; @@ -14,6 +15,7 @@ import org.json.JSONObject; import com.monstarmike.tlmreader.Flight; +import com.monstarmike.tlmreader.IFlight; import com.monstarmike.tlmreader.datablock.AirspeedBlock; import com.monstarmike.tlmreader.datablock.AltitudeBlock; import com.monstarmike.tlmreader.datablock.CurrentBlock; @@ -32,337 +34,280 @@ import android.util.Log; public class Exporter { - Iterable flights; - Uri uri; - Context context; - - private static final String TAG = "TLMDecoder"; - - public Exporter(Uri uri, Iterable flights, Context context) { - this.flights = flights; - this.uri = uri; - this.context = context; - } - - public JSONObject exportFlights() { - JSONObject file = new JSONObject(); - - JSONArray flightsArray = new JSONArray(); - try { - file.put("uri", uri); - file.put("flights", flightsArray); - } catch (JSONException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - int index = 0; - for (Flight flight : this.flights) { - JSONObject flightJO = this.buildFlight(false, flight); - try { - flightJO.put("_id", index++); - } catch (JSONException e) { - e.printStackTrace(); - } - flightsArray.put(flightJO); - } - - return file; - } - - public JSONObject exportFlightData(JSONObject flightJO) { - JSONObject newFlightJO = null; - int index = 0; - for (Flight flight : this.flights) { - int joId = 0; - try { - joId = flightJO.getInt("_id"); - } catch (JSONException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - if (index != joId) { - Log.d(TAG, "Flight index: " + index + " != passed in value: " + joId); - index++; - continue; - } - - Log.d(TAG, "Found flight. Going to do a full decode."); - newFlightJO = this.buildFlight(true, flight); - Log.d(TAG, "Full decode done"); - if (newFlightJO != null) { - try { - newFlightJO.put("_id", joId); - } catch (JSONException e) { - e.printStackTrace(); - } - } - break; - } - - return newFlightJO; - } - - private JSONObject buildFlight(boolean includeBlockData, Flight flight) { - JSONObject flightJO = new JSONObject(); - try { - flightJO.put("_id", flight.hashCode()); - - Duration flightDuration = flight.get_duration(); - Period period = flightDuration.toPeriod(); - PeriodFormatter hms = new PeriodFormatterBuilder() - .appendHours() - .appendSeparator(":") - .printZeroAlways() - .appendMinutes() - .appendSeparator(":") - .appendSecondsWithMillis() - .toFormatter(); - - flightJO.put("duration", hms.print(period)); - - Iterator iterator = flight.get_headerBlocks(); - while (iterator.hasNext()) { - HeaderBlock headerBlock = iterator.next(); - if (headerBlock instanceof HeaderNameBlock) { - HeaderNameBlock nameBlock = (HeaderNameBlock) headerBlock; - flightJO.put("name", nameBlock.get_modelName()); - flightJO.put("modelNumber", nameBlock.get_modelNumber()); - flightJO.put("bindInfo", nameBlock.get_bindInfo()); - flightJO.put("modelType", nameBlock.get_modelType()); - } - } - } catch (JSONException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - if (includeBlockData) { - JSONObject flightData = null; - try { - flightData = this.loadChartDataTemplate(); - } catch (JSONException e) { - e.printStackTrace(); - } - try { - flightJO.put("flightData", flightData); - } catch (JSONException e) { - e.printStackTrace(); - } - - Iterator headerBlockIterator = flight.get_headerBlocks(); - while (headerBlockIterator.hasNext()) { - HeaderBlock headerBlock = headerBlockIterator.next(); - try { - handleHeaderBlock(flightJO, headerBlock); - } catch (JSONException e) { - e.printStackTrace(); - } - } - Iterator dataBlockIterator = flight.get_dataBlocks(); - while (dataBlockIterator.hasNext()) { - DataBlock dataBlock = dataBlockIterator.next(); - try { - handleDataBlock(flightData, dataBlock); - } catch (JSONException e) { - Log.w(TAG, "JSON error when working with data block", e); - } - } - } - - return flightJO; - } - - private JSONObject loadChartDataTemplate() throws JSONException { - BufferedReader reader = null; - String jsonTemplate = null; - try { - reader = new BufferedReader(new InputStreamReader(context.getAssets().open("json/chartTemplate.json"))); - String line = reader.readLine(); - StringBuilder stringBuilder = new StringBuilder(); - while (line != null) { - stringBuilder.append(line); - line = reader.readLine(); - } - jsonTemplate = stringBuilder.toString(); - } catch (IOException e) { - Log.e(TAG, "Error while reading JSON template.", e); - } finally { - if (reader != null) { - try { - reader.close(); - } catch (IOException e) { - Log.e(TAG, "Error while trying to close JSON template reader", e); - } - } - } - - if (jsonTemplate == null || jsonTemplate.equalsIgnoreCase("")) { - Log.e(TAG, "The template read from assets is null!"); - } - - return new JSONObject(jsonTemplate); - } - - private JSONArray findDataPointsArray(JSONObject flightData, String sensorName, - int seriesPosition, int dataSetPosition) throws JSONException { - return flightData.getJSONObject(sensorName) - .getJSONArray("chartSeriesTypes") - .getJSONObject(seriesPosition) - .getJSONArray("data") - .getJSONObject(dataSetPosition) - .getJSONArray("dataPoints"); - } - - void handleHeaderBlock(JSONObject jsonFlight, HeaderBlock headerBlock) throws JSONException { - JSONObject jsonHeaderBlock = null; - - if (headerBlock instanceof HeaderNameBlock) { - HeaderNameBlock nameBlock = (HeaderNameBlock) headerBlock; - jsonHeaderBlock = new JSONObject(); - jsonHeaderBlock.put("modelNumber", nameBlock.get_modelNumber()); - jsonHeaderBlock.put("bindInfo", nameBlock.get_bindInfo()); - jsonHeaderBlock.put("modelName", nameBlock.get_modelName()); - jsonHeaderBlock.put("modelType", nameBlock.get_modelType()); - } - - if (jsonHeaderBlock == null) return; - - if (jsonFlight.has("headers")) { - jsonFlight.getJSONArray("headers").put(jsonHeaderBlock); - } else { - JSONArray headersArray = new JSONArray(); - headersArray.put(jsonHeaderBlock); - jsonFlight.put("headers", headersArray); - } - } - - void handleDataBlock(JSONObject flightData, DataBlock dataBlock) throws JSONException { - if (dataBlock instanceof AirspeedBlock) { - - } else if (dataBlock instanceof AltitudeBlock) { - JSONObject jsonBlock = new JSONObject(); - jsonBlock.put("x", dataBlock.get_timestamp()); - jsonBlock.put("y", - ((AltitudeBlock) dataBlock).get_altitudeInTenthsOfAMeter()); - - this.findDataPointsArray(flightData, "altitude", 0, 0).put(jsonBlock); - } else if (dataBlock instanceof CurrentBlock) { - JSONObject jsonBlock = new JSONObject(); - jsonBlock.put("x", dataBlock.get_timestamp()); - - CurrentBlock currentBlock = (CurrentBlock) dataBlock; - jsonBlock.put("y", currentBlock.get_Current()); - - this.findDataPointsArray(flightData, "current", 0, 0).put(jsonBlock); - } else if (dataBlock instanceof GForceBlock) { - JSONObject jsonBlock = new JSONObject(); - jsonBlock.put("x", dataBlock.get_timestamp()); - - GForceBlock gfBlock = (GForceBlock) dataBlock; - jsonBlock.put("maxX", gfBlock.get_maxX()); - jsonBlock.put("maxY", gfBlock.get_maxY()); - jsonBlock.put("maxZ", gfBlock.get_maxZ()); - jsonBlock.put("x", gfBlock.get_x()); - jsonBlock.put("y", gfBlock.get_y()); - jsonBlock.put("z", gfBlock.get_z()); - jsonBlock.put("minZ", gfBlock.get_minZ()); - - } else if (dataBlock instanceof PowerboxBlock) { - JSONObject v1Block = new JSONObject(), - v2Block = new JSONObject(), - cap1Block = new JSONObject(), - cap2Block = new JSONObject(); - - v1Block.put("x", dataBlock.get_timestamp()); - v2Block.put("x", dataBlock.get_timestamp()); - cap1Block.put("x", dataBlock.get_timestamp()); - cap2Block.put("x", dataBlock.get_timestamp()); - - PowerboxBlock pbBlock = (PowerboxBlock) dataBlock; - cap1Block.put("y", pbBlock.get_capacityOne()); - cap2Block.put("y", pbBlock.get_capacityTwo()); - v1Block.put("y", pbBlock.get_voltageOne()); - v2Block.put("y", pbBlock.get_voltageTwo()); - - this.findDataPointsArray(flightData, "powerbox", 0, 0).put(v1Block); - this.findDataPointsArray(flightData, "powerbox", 0, 1).put(v2Block); - this.findDataPointsArray(flightData, "powerbox", 1, 0).put(cap1Block); - this.findDataPointsArray(flightData, "powerbox", 1, 1).put(cap2Block); - } else if (dataBlock instanceof RXBlock) { - RXBlock rxBlock = (RXBlock) dataBlock; - - JSONObject aBlock = new JSONObject(), - bBlock = new JSONObject(), - lBlock = new JSONObject(), - rBlock = new JSONObject(), - frameLossBlock = new JSONObject(), - holdsBlock = new JSONObject(), - voltsBlock = new JSONObject(); - - aBlock.put("x", dataBlock.get_timestamp()); - bBlock.put("x", dataBlock.get_timestamp()); - lBlock.put("x", dataBlock.get_timestamp()); - rBlock.put("x", dataBlock.get_timestamp()); - frameLossBlock.put("x", dataBlock.get_timestamp()); - holdsBlock.put("x", dataBlock.get_timestamp()); - voltsBlock.put("x", dataBlock.get_timestamp()); - - aBlock.put("y", rxBlock.get_a()); - bBlock.put("y", rxBlock.get_b()); - lBlock.put("y", rxBlock.get_l()); - rBlock.put("y", rxBlock.get_r()); - - frameLossBlock.put("y", rxBlock.get_frameLoss()); - holdsBlock.put("y", rxBlock.get_holds()); - - voltsBlock.put("y", rxBlock.get_volts()); - - this.findDataPointsArray(flightData, "rx", 0, 0).put(aBlock); - this.findDataPointsArray(flightData, "rx", 0, 1).put(bBlock); - this.findDataPointsArray(flightData, "rx", 0, 2).put(lBlock); - this.findDataPointsArray(flightData, "rx", 0, 3).put(rBlock); - - this.findDataPointsArray(flightData, "rx", 1, 0).put(frameLossBlock); - this.findDataPointsArray(flightData, "rx", 1, 1).put(holdsBlock); - - this.findDataPointsArray(flightData, "rx", 2, 0).put(voltsBlock); - } else if (dataBlock instanceof StandardBlock) { - StandardBlock standard = (StandardBlock) dataBlock; - - JSONObject rpmBlock = new JSONObject(), - tempBlock = new JSONObject(), - voltBlock = new JSONObject(); - - rpmBlock.put("x", dataBlock.get_timestamp()); - tempBlock.put("x", dataBlock.get_timestamp()); - voltBlock.put("x", dataBlock.get_timestamp()); - - rpmBlock.put("y", standard.get_rpm()); - tempBlock.put("y", standard.get_temperature()); - voltBlock.put("y", standard.get_volt()); - - this.findDataPointsArray(flightData, "standard", 0, 0).put(rpmBlock); - this.findDataPointsArray(flightData, "standard", 1, 0).put(tempBlock); - this.findDataPointsArray(flightData, "standard", 2, 0).put(voltBlock); - - } else if (dataBlock instanceof VarioBlock) { -// VarioBlock varioBlock = (VarioBlock) dataBlock; -/* - jsonBlock.put("delta1000ms", varioBlock.get_1000ms()); - jsonBlock.put("delta2000ms", varioBlock.get_2000ms()); - jsonBlock.put("delta250ms", varioBlock.get_250ms()); - jsonBlock.put("delta3000ms", varioBlock.get_3000ms()); - jsonBlock.put("delta500ms", varioBlock.get_500ms()); - jsonBlock.put("altitude", varioBlock.get_altitude());*/ - - } else if (dataBlock instanceof VoltageBlock) { -// VoltageBlock voltageBlock = (VoltageBlock) dataBlock; - -// jsonBlock.put("delta3000ms", voltageBlock.g); -// jsonBlock.put("delta500ms", varioBlock.get_500ms()); -// jsonBlock.put("altitude", varioBlock.get_altitude()); - } - } + Uri uri; + Context context; + + private static final String TAG = "TLMDecoder"; + + public Exporter(Uri uri, Context context) { + this.uri = uri; + this.context = context; + } + + public JSONObject exportFlightDefintions(List flightDefinitions) { + JSONObject file = new JSONObject(); + + JSONArray flightsArray = new JSONArray(); + try { + file.put("uri", uri); + file.put("flights", flightsArray); + } catch (JSONException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + int index = 0; + for (IFlight flight : flightDefinitions) { + JSONObject flightJO = this.buildFlightDefinition(flight); + try { + flightJO.put("_id", index++); + } catch (JSONException e) { + e.printStackTrace(); + } + flightsArray.put(flightJO); + } + + return file; + } + + public JSONObject exportFlightData(Flight flight) { + JSONObject newFlightJO = this.buildFlightDefinition(flight); + JSONObject flightData = null; + try { + flightData = this.loadChartDataTemplate(); + } catch (JSONException e) { + e.printStackTrace(); + } + try { + newFlightJO.put("flightData", flightData); + } catch (JSONException e) { + e.printStackTrace(); + } + + Iterator headerBlockIterator = flight.get_headerBlocks(); + while (headerBlockIterator.hasNext()) { + HeaderBlock headerBlock = headerBlockIterator.next(); + try { + this.handleHeaderBlock(newFlightJO, headerBlock); + } catch (JSONException e) { + e.printStackTrace(); + } + } + Iterator dataBlockIterator = flight.get_dataBlocks(); + while (dataBlockIterator.hasNext()) { + DataBlock dataBlock = dataBlockIterator.next(); + try { + this.handleDataBlock(flightData, dataBlock); + } catch (JSONException e) { + Log.w(TAG, "JSON error when working with data block", e); + } + } + return newFlightJO; + } + + private JSONObject buildFlightDefinition(IFlight flight) { + JSONObject flightJO = new JSONObject(); + try { + Duration flightDuration = flight.get_duration(); + Period period = flightDuration.toPeriod(); + PeriodFormatter hms = new PeriodFormatterBuilder().appendHours().appendSeparator(":").printZeroAlways() + .appendMinutes().appendSeparator(":").appendSecondsWithMillis().toFormatter(); + + flightJO.put("duration", hms.print(period)); + + Iterator iterator = flight.get_headerBlocks(); + while (iterator.hasNext()) { + HeaderBlock headerBlock = iterator.next(); + if (headerBlock instanceof HeaderNameBlock) { + HeaderNameBlock nameBlock = (HeaderNameBlock) headerBlock; + flightJO.put("name", nameBlock.get_modelName()); + flightJO.put("modelNumber", nameBlock.get_modelNumber()); + flightJO.put("bindInfo", nameBlock.get_bindInfo()); + flightJO.put("modelType", nameBlock.get_modelType()); + } + } + } catch (JSONException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return flightJO; + } + + private JSONObject loadChartDataTemplate() throws JSONException { + BufferedReader reader = null; + String jsonTemplate = null; + try { + reader = new BufferedReader(new InputStreamReader(context.getAssets().open("json/chartTemplate.json"))); + String line = reader.readLine(); + StringBuilder stringBuilder = new StringBuilder(); + while (line != null) { + stringBuilder.append(line); + line = reader.readLine(); + } + jsonTemplate = stringBuilder.toString(); + } catch (IOException e) { + Log.e(TAG, "Error while reading JSON template.", e); + } finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e) { + Log.e(TAG, "Error while trying to close JSON template reader", e); + } + } + } + + if (jsonTemplate == null || jsonTemplate.equalsIgnoreCase("")) { + Log.e(TAG, "The template read from assets is null!"); + } + + return new JSONObject(jsonTemplate); + } + + private JSONArray findDataPointsArray(JSONObject flightData, String sensorName, int seriesPosition, + int dataSetPosition) throws JSONException { + return flightData.getJSONObject(sensorName).getJSONArray("chartSeriesTypes").getJSONObject(seriesPosition) + .getJSONArray("data").getJSONObject(dataSetPosition).getJSONArray("dataPoints"); + } + + void handleHeaderBlock(JSONObject jsonFlight, HeaderBlock headerBlock) throws JSONException { + JSONObject jsonHeaderBlock = null; + + if (headerBlock instanceof HeaderNameBlock) { + HeaderNameBlock nameBlock = (HeaderNameBlock) headerBlock; + jsonHeaderBlock = new JSONObject(); + jsonHeaderBlock.put("modelNumber", nameBlock.get_modelNumber()); + jsonHeaderBlock.put("bindInfo", nameBlock.get_bindInfo()); + jsonHeaderBlock.put("modelName", nameBlock.get_modelName()); + jsonHeaderBlock.put("modelType", nameBlock.get_modelType()); + } + + if (jsonHeaderBlock == null) + return; + + if (!jsonFlight.has("headers")) { + jsonFlight.put("headers", new JSONArray()); + } + jsonFlight.getJSONArray("headers").put(jsonHeaderBlock); + } + + void handleDataBlock(JSONObject flightData, DataBlock dataBlock) throws JSONException { + if (dataBlock instanceof AirspeedBlock) { + + } else if (dataBlock instanceof AltitudeBlock) { + JSONObject jsonBlock = new JSONObject(); + jsonBlock.put("x", dataBlock.get_timestamp()); + jsonBlock.put("y", ((AltitudeBlock) dataBlock).get_altitudeInTenthsOfAMeter()); + + this.findDataPointsArray(flightData, "altitude", 0, 0).put(jsonBlock); + } else if (dataBlock instanceof CurrentBlock) { + JSONObject jsonBlock = new JSONObject(); + jsonBlock.put("x", dataBlock.get_timestamp()); + + CurrentBlock currentBlock = (CurrentBlock) dataBlock; + jsonBlock.put("y", currentBlock.get_Current()); + + this.findDataPointsArray(flightData, "current", 0, 0).put(jsonBlock); + } else if (dataBlock instanceof GForceBlock) { + JSONObject jsonBlock = new JSONObject(); + jsonBlock.put("x", dataBlock.get_timestamp()); + + GForceBlock gfBlock = (GForceBlock) dataBlock; + jsonBlock.put("maxX", gfBlock.get_maxX()); + jsonBlock.put("maxY", gfBlock.get_maxY()); + jsonBlock.put("maxZ", gfBlock.get_maxZ()); + jsonBlock.put("x", gfBlock.get_x()); + jsonBlock.put("y", gfBlock.get_y()); + jsonBlock.put("z", gfBlock.get_z()); + jsonBlock.put("minZ", gfBlock.get_minZ()); + + } else if (dataBlock instanceof PowerboxBlock) { + JSONObject v1Block = new JSONObject(), v2Block = new JSONObject(), cap1Block = new JSONObject(), + cap2Block = new JSONObject(); + + v1Block.put("x", dataBlock.get_timestamp()); + v2Block.put("x", dataBlock.get_timestamp()); + cap1Block.put("x", dataBlock.get_timestamp()); + cap2Block.put("x", dataBlock.get_timestamp()); + + PowerboxBlock pbBlock = (PowerboxBlock) dataBlock; + cap1Block.put("y", pbBlock.get_capacityOne()); + cap2Block.put("y", pbBlock.get_capacityTwo()); + v1Block.put("y", pbBlock.get_voltageOne()); + v2Block.put("y", pbBlock.get_voltageTwo()); + + this.findDataPointsArray(flightData, "powerbox", 0, 0).put(v1Block); + this.findDataPointsArray(flightData, "powerbox", 0, 1).put(v2Block); + this.findDataPointsArray(flightData, "powerbox", 1, 0).put(cap1Block); + this.findDataPointsArray(flightData, "powerbox", 1, 1).put(cap2Block); + } else if (dataBlock instanceof RXBlock) { + RXBlock rxBlock = (RXBlock) dataBlock; + + JSONObject aBlock = new JSONObject(), bBlock = new JSONObject(), lBlock = new JSONObject(), + rBlock = new JSONObject(), frameLossBlock = new JSONObject(), holdsBlock = new JSONObject(), + voltsBlock = new JSONObject(); + + aBlock.put("x", dataBlock.get_timestamp()); + bBlock.put("x", dataBlock.get_timestamp()); + lBlock.put("x", dataBlock.get_timestamp()); + rBlock.put("x", dataBlock.get_timestamp()); + frameLossBlock.put("x", dataBlock.get_timestamp()); + holdsBlock.put("x", dataBlock.get_timestamp()); + voltsBlock.put("x", dataBlock.get_timestamp()); + + aBlock.put("y", rxBlock.get_a()); + bBlock.put("y", rxBlock.get_b()); + lBlock.put("y", rxBlock.get_l()); + rBlock.put("y", rxBlock.get_r()); + + frameLossBlock.put("y", rxBlock.get_frameLoss()); + holdsBlock.put("y", rxBlock.get_holds()); + + voltsBlock.put("y", rxBlock.get_volts()); + + this.findDataPointsArray(flightData, "rx", 0, 0).put(aBlock); + this.findDataPointsArray(flightData, "rx", 0, 1).put(bBlock); + this.findDataPointsArray(flightData, "rx", 0, 2).put(lBlock); + this.findDataPointsArray(flightData, "rx", 0, 3).put(rBlock); + + this.findDataPointsArray(flightData, "rx", 1, 0).put(frameLossBlock); + this.findDataPointsArray(flightData, "rx", 1, 1).put(holdsBlock); + + this.findDataPointsArray(flightData, "rx", 2, 0).put(voltsBlock); + } else if (dataBlock instanceof StandardBlock) { + StandardBlock standard = (StandardBlock) dataBlock; + + JSONObject rpmBlock = new JSONObject(), tempBlock = new JSONObject(), voltBlock = new JSONObject(); + + rpmBlock.put("x", dataBlock.get_timestamp()); + tempBlock.put("x", dataBlock.get_timestamp()); + voltBlock.put("x", dataBlock.get_timestamp()); + + rpmBlock.put("y", standard.get_rpm()); + tempBlock.put("y", standard.get_temperature()); + voltBlock.put("y", standard.get_volt()); + + this.findDataPointsArray(flightData, "standard", 0, 0).put(rpmBlock); + this.findDataPointsArray(flightData, "standard", 1, 0).put(tempBlock); + this.findDataPointsArray(flightData, "standard", 2, 0).put(voltBlock); + + } else if (dataBlock instanceof VarioBlock) { + // VarioBlock varioBlock = (VarioBlock) dataBlock; + /* + * jsonBlock.put("delta1000ms", varioBlock.get_1000ms()); + * jsonBlock.put("delta2000ms", varioBlock.get_2000ms()); + * jsonBlock.put("delta250ms", varioBlock.get_250ms()); + * jsonBlock.put("delta3000ms", varioBlock.get_3000ms()); + * jsonBlock.put("delta500ms", varioBlock.get_500ms()); + * jsonBlock.put("altitude", varioBlock.get_altitude()); + */ + + } else if (dataBlock instanceof VoltageBlock) { + // VoltageBlock voltageBlock = (VoltageBlock) dataBlock; + + // jsonBlock.put("delta3000ms", voltageBlock.g); + // jsonBlock.put("delta500ms", varioBlock.get_500ms()); + // jsonBlock.put("altitude", varioBlock.get_altitude()); + } + } } From ac289047e3f5d67534d97d31f601fea66305c7b5 Mon Sep 17 00:00:00 2001 From: David Leuenberger Date: Thu, 11 Feb 2016 07:47:42 +0100 Subject: [PATCH 03/12] increase Performance, reduce memory usage (changes from TLMReader) --- .../src/android/Exporter.java | 145 +++++++++--------- .../src/android/libs/tlmreader.jar | Bin 25837 -> 33782 bytes 2 files changed, 73 insertions(+), 72 deletions(-) diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java index 4098d3f..d575afe 100644 --- a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java +++ b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java @@ -3,7 +3,6 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; -import java.util.Iterator; import java.util.List; import org.joda.time.Duration; @@ -84,20 +83,21 @@ public JSONObject exportFlightData(Flight flight) { e.printStackTrace(); } - Iterator headerBlockIterator = flight.get_headerBlocks(); - while (headerBlockIterator.hasNext()) { - HeaderBlock headerBlock = headerBlockIterator.next(); + for (HeaderBlock headerBlock : flight.getHeaderBlocks()) { try { this.handleHeaderBlock(newFlightJO, headerBlock); } catch (JSONException e) { e.printStackTrace(); } } - Iterator dataBlockIterator = flight.get_dataBlocks(); - while (dataBlockIterator.hasNext()) { - DataBlock dataBlock = dataBlockIterator.next(); + int i = 0; + for (DataBlock dataBlock : flight.getDataBlocks()) { + if (i % 100 == 0) { + Log.d(TAG, "DataBlock: " + i); + } + i++; try { - this.handleDataBlock(flightData, dataBlock); + this.handleDataBlock(flightData, dataBlock, flight); } catch (JSONException e) { Log.w(TAG, "JSON error when working with data block", e); } @@ -108,22 +108,20 @@ public JSONObject exportFlightData(Flight flight) { private JSONObject buildFlightDefinition(IFlight flight) { JSONObject flightJO = new JSONObject(); try { - Duration flightDuration = flight.get_duration(); + Duration flightDuration = flight.getDuration(); Period period = flightDuration.toPeriod(); PeriodFormatter hms = new PeriodFormatterBuilder().appendHours().appendSeparator(":").printZeroAlways() .appendMinutes().appendSeparator(":").appendSecondsWithMillis().toFormatter(); flightJO.put("duration", hms.print(period)); - Iterator iterator = flight.get_headerBlocks(); - while (iterator.hasNext()) { - HeaderBlock headerBlock = iterator.next(); + for (HeaderBlock headerBlock : flight.getHeaderBlocks()) { if (headerBlock instanceof HeaderNameBlock) { HeaderNameBlock nameBlock = (HeaderNameBlock) headerBlock; - flightJO.put("name", nameBlock.get_modelName()); - flightJO.put("modelNumber", nameBlock.get_modelNumber()); - flightJO.put("bindInfo", nameBlock.get_bindInfo()); - flightJO.put("modelType", nameBlock.get_modelType()); + flightJO.put("name", nameBlock.getModelName()); + flightJO.put("modelNumber", nameBlock.getModelNumber()); + flightJO.put("bindInfo", nameBlock.getBindInfo()); + flightJO.put("modelType", nameBlock.getModelType()); } } } catch (JSONException e) { @@ -176,65 +174,63 @@ void handleHeaderBlock(JSONObject jsonFlight, HeaderBlock headerBlock) throws JS if (headerBlock instanceof HeaderNameBlock) { HeaderNameBlock nameBlock = (HeaderNameBlock) headerBlock; jsonHeaderBlock = new JSONObject(); - jsonHeaderBlock.put("modelNumber", nameBlock.get_modelNumber()); - jsonHeaderBlock.put("bindInfo", nameBlock.get_bindInfo()); - jsonHeaderBlock.put("modelName", nameBlock.get_modelName()); - jsonHeaderBlock.put("modelType", nameBlock.get_modelType()); + jsonHeaderBlock.put("modelNumber", nameBlock.getModelNumber()); + jsonHeaderBlock.put("bindInfo", nameBlock.getBindInfo()); + jsonHeaderBlock.put("modelName", nameBlock.getModelName()); + jsonHeaderBlock.put("modelType", nameBlock.getModelType()); + } else { + return; } - if (jsonHeaderBlock == null) - return; - if (!jsonFlight.has("headers")) { jsonFlight.put("headers", new JSONArray()); } jsonFlight.getJSONArray("headers").put(jsonHeaderBlock); } - void handleDataBlock(JSONObject flightData, DataBlock dataBlock) throws JSONException { + void handleDataBlock(JSONObject flightData, DataBlock dataBlock, Flight flight) throws JSONException { if (dataBlock instanceof AirspeedBlock) { - } else if (dataBlock instanceof AltitudeBlock) { JSONObject jsonBlock = new JSONObject(); - jsonBlock.put("x", dataBlock.get_timestamp()); - jsonBlock.put("y", ((AltitudeBlock) dataBlock).get_altitudeInTenthsOfAMeter()); + jsonBlock.put("x", dataBlock.getTimestamp()); + jsonBlock.put("y", ((AltitudeBlock) dataBlock).getAltitudeInTenthOfMeter()); this.findDataPointsArray(flightData, "altitude", 0, 0).put(jsonBlock); } else if (dataBlock instanceof CurrentBlock) { JSONObject jsonBlock = new JSONObject(); - jsonBlock.put("x", dataBlock.get_timestamp()); + jsonBlock.put("x", dataBlock.getTimestamp()); CurrentBlock currentBlock = (CurrentBlock) dataBlock; - jsonBlock.put("y", currentBlock.get_Current()); + jsonBlock.put("y", currentBlock.getCurrent()); this.findDataPointsArray(flightData, "current", 0, 0).put(jsonBlock); } else if (dataBlock instanceof GForceBlock) { JSONObject jsonBlock = new JSONObject(); - jsonBlock.put("x", dataBlock.get_timestamp()); + jsonBlock.put("x", dataBlock.getTimestamp()); GForceBlock gfBlock = (GForceBlock) dataBlock; - jsonBlock.put("maxX", gfBlock.get_maxX()); - jsonBlock.put("maxY", gfBlock.get_maxY()); - jsonBlock.put("maxZ", gfBlock.get_maxZ()); - jsonBlock.put("x", gfBlock.get_x()); - jsonBlock.put("y", gfBlock.get_y()); - jsonBlock.put("z", gfBlock.get_z()); - jsonBlock.put("minZ", gfBlock.get_minZ()); + jsonBlock.put("maxX", gfBlock.getMaxXInHunderthOfG()); + jsonBlock.put("maxY", gfBlock.getMaxYInHunderthOfG()); + jsonBlock.put("maxZ", gfBlock.getMaxZInHunderthOfG()); + jsonBlock.put("x", gfBlock.getXInHunderthOfG()); + jsonBlock.put("y", gfBlock.getYInHunderthOfG()); + jsonBlock.put("z", gfBlock.getZInHunderthOfG()); + jsonBlock.put("minZ", gfBlock.getMinZInHunderthOfG()); } else if (dataBlock instanceof PowerboxBlock) { JSONObject v1Block = new JSONObject(), v2Block = new JSONObject(), cap1Block = new JSONObject(), cap2Block = new JSONObject(); - v1Block.put("x", dataBlock.get_timestamp()); - v2Block.put("x", dataBlock.get_timestamp()); - cap1Block.put("x", dataBlock.get_timestamp()); - cap2Block.put("x", dataBlock.get_timestamp()); + v1Block.put("x", dataBlock.getTimestamp()); + v2Block.put("x", dataBlock.getTimestamp()); + cap1Block.put("x", dataBlock.getTimestamp()); + cap2Block.put("x", dataBlock.getTimestamp()); PowerboxBlock pbBlock = (PowerboxBlock) dataBlock; - cap1Block.put("y", pbBlock.get_capacityOne()); - cap2Block.put("y", pbBlock.get_capacityTwo()); - v1Block.put("y", pbBlock.get_voltageOne()); - v2Block.put("y", pbBlock.get_voltageTwo()); + cap1Block.put("y", pbBlock.getCapacityOneInmAh()); + cap2Block.put("y", pbBlock.getCapacityTwoInmAh()); + v1Block.put("y", pbBlock.getVoltageOneInHunderthOfVolts()); + v2Block.put("y", pbBlock.getVoltageTwoInHunderthOfVolts()); this.findDataPointsArray(flightData, "powerbox", 0, 0).put(v1Block); this.findDataPointsArray(flightData, "powerbox", 0, 1).put(v2Block); @@ -247,23 +243,23 @@ void handleDataBlock(JSONObject flightData, DataBlock dataBlock) throws JSONExce rBlock = new JSONObject(), frameLossBlock = new JSONObject(), holdsBlock = new JSONObject(), voltsBlock = new JSONObject(); - aBlock.put("x", dataBlock.get_timestamp()); - bBlock.put("x", dataBlock.get_timestamp()); - lBlock.put("x", dataBlock.get_timestamp()); - rBlock.put("x", dataBlock.get_timestamp()); - frameLossBlock.put("x", dataBlock.get_timestamp()); - holdsBlock.put("x", dataBlock.get_timestamp()); - voltsBlock.put("x", dataBlock.get_timestamp()); + aBlock.put("x", dataBlock.getTimestamp()); + bBlock.put("x", dataBlock.getTimestamp()); + lBlock.put("x", dataBlock.getTimestamp()); + rBlock.put("x", dataBlock.getTimestamp()); + frameLossBlock.put("x", dataBlock.getTimestamp()); + holdsBlock.put("x", dataBlock.getTimestamp()); + voltsBlock.put("x", dataBlock.getTimestamp()); - aBlock.put("y", rxBlock.get_a()); - bBlock.put("y", rxBlock.get_b()); - lBlock.put("y", rxBlock.get_l()); - rBlock.put("y", rxBlock.get_r()); + aBlock.put("y", rxBlock.getA()); + bBlock.put("y", rxBlock.getB()); + lBlock.put("y", rxBlock.getL()); + rBlock.put("y", rxBlock.getR()); - frameLossBlock.put("y", rxBlock.get_frameLoss()); - holdsBlock.put("y", rxBlock.get_holds()); + frameLossBlock.put("y", rxBlock.getFrameLoss()); + holdsBlock.put("y", rxBlock.getHolds()); - voltsBlock.put("y", rxBlock.get_volts()); + voltsBlock.put("y", rxBlock.getVoltageInHunderthOfVolts()); this.findDataPointsArray(flightData, "rx", 0, 0).put(aBlock); this.findDataPointsArray(flightData, "rx", 0, 1).put(bBlock); @@ -277,19 +273,24 @@ void handleDataBlock(JSONObject flightData, DataBlock dataBlock) throws JSONExce } else if (dataBlock instanceof StandardBlock) { StandardBlock standard = (StandardBlock) dataBlock; - JSONObject rpmBlock = new JSONObject(), tempBlock = new JSONObject(), voltBlock = new JSONObject(); - - rpmBlock.put("x", dataBlock.get_timestamp()); - tempBlock.put("x", dataBlock.get_timestamp()); - voltBlock.put("x", dataBlock.get_timestamp()); - - rpmBlock.put("y", standard.get_rpm()); - tempBlock.put("y", standard.get_temperature()); - voltBlock.put("y", standard.get_volt()); - - this.findDataPointsArray(flightData, "standard", 0, 0).put(rpmBlock); - this.findDataPointsArray(flightData, "standard", 1, 0).put(tempBlock); - this.findDataPointsArray(flightData, "standard", 2, 0).put(voltBlock); + if (flight.hasRpmHeader() && standard.hasRpmSensor()) { + JSONObject rpmBlock = new JSONObject(); + rpmBlock.put("x", dataBlock.getTimestamp()); + rpmBlock.put("y", standard.getRpm()); + this.findDataPointsArray(flightData, "standard", 0, 0).put(rpmBlock); + } + if (standard.hasTemperatureSensor()) { + JSONObject tempBlock = new JSONObject(); + tempBlock.put("x", dataBlock.getTimestamp()); + this.findDataPointsArray(flightData, "standard", 1, 0).put(tempBlock); + tempBlock.put("y", standard.getTemperatureInGradFahrenheit()); + } + if (standard.hasVoltageSensor()) { + JSONObject voltBlock = new JSONObject(); + voltBlock.put("y", standard.getVoltageInHunderthOfVolts()); + voltBlock.put("x", dataBlock.getTimestamp()); + this.findDataPointsArray(flightData, "standard", 2, 0).put(voltBlock); + } } else if (dataBlock instanceof VarioBlock) { // VarioBlock varioBlock = (VarioBlock) dataBlock; diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar index 55ccd6708703ae52c3998c1315a4791caa63fd34..c07ada257c0fa280d353da0cf5317a3a87eb8645 100644 GIT binary patch literal 33782 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 DJMcS* literal 25837 zcmb5V19WWNwk@2Uo$T1QZQHhO+xCua+qRwT*tTuk$;-LtzWaaQdF`G5ysB1JtJNBF z)|#{C?4$QF#*&rz2?P%CkH>T-r|5qj{P!E!_otMQA|I8Qv@nhAf17~F`Q-Riy*%wa!}ftarTFA9r34i} zD9C<+aso2NA41pG3~>eramP&ZNt4aM}L2{cC@szH_|gSvi~>j2>)$6Lp?`5eM=hyi@)^n zuOq?vw>>yHnpysv#xUQF|L3o?(sMSl{x`<|_@#d_{vI;*Ux)mEpK!AO|Hl94eEoA# zS@2!RnE?X;U_k-^{G*%y`#dX3O3DA%j8hv}>Nz+hDr+bxs33kqw`SO~>LUs&G;Y@X zA{3rc1{Oz3M90Vl?$7IVjlGq&DTSHG`eW)YFtv^(q{8{e>>v>c)P9)(n3|H%gcrCdvFCeQH&^KE$@j= zW_qSAl5>?FaDzhEhU+WWca?&ywrBwmP$gnyBq+r%)T{i%FyO6eNepyb5Clt!gfc)m zpn%RyP>D}qOg2(BY_?3!Jm)GPYN?lo;-8g3+W}!bjLZOP%ZK_G12RtM$ z6201FM`V4FX$}0)wQ@*FXh)HS)U&N(PIGa!rc@!t? zK3_vs>k_DKGP_&p!rl8K`hFjyIn%CEfoj--$hSHyEf|coHY)8Xu{9UOK*q`CSjNj? z$7UwYf$UY%QlaY~u6K}Ed+ykin`dT7DA`wVzceK3*4%dIC8;xN8&QXwC=2V=9~o$k zpD7_N6b(U93!hq#ysmiK(BJMiD5&ST-Y}u4X6GPOJH@4DSwpT?W5sZmU|yj6ws$sc zn1GK-ch>-_T2Z*OuR4`vtAWI#UzPDoYYcmS7|m*S_$e7oJSjtAnp2OR$Qd$ftRV?} zOo0AWQR(9s0?I_eoEA~+q*#`ECd?7I^Xz#u&;~k%;VJ=ulVGh1-yHoEp9sb(QUwi( z&hk(hM2Si^XpX;rOWq#ZJ?ZjuNFG=xHkQgwQdILzRFq4t%76#^<`5GW-1*GSk1Dd| z*Oq6*^Xk9=l0w}-!zpoLy&u8sReJtlr0RirC-lHn z0Ga+Es>|CP$0;Y2!KxRx4|?(R^fA-8iRLx2`azW<%6?E;PTX`8uaANl@UjLoli9L4 zp@hZ$Jk`|Gm`&fr81>e2<{wOfyUYzz=!NZM;BdX}`-Eb)Fj5UBQa{q}IC=4tlm#)wWcT>9w4+87(?voKS$>_8Uz{?~d2 zR(wR3b$$dSe)*kHeCA19%Kdcl+X?wkLpTj%*nRKvb({FNCf&PT2u2lZ*w*k1txwTm zoqlMvzHuKeh!OOoW}F(}hxcI%-BADKD5vEfB?{+Tn%=xClNFho^J2Ao21*YGi`f)6 zuZ11WVWvNp3_?d~WRXn@hyYz$S$p6oC)Z><8Lr*ERsEKlDeXXLk9P&NFmdesBqHC+ zBfP5YGCeX;ZsIb6KSBOC?Ee$5fefobcfav^>Km^K{w-ef+1mbZq<(QhP(u7Hg35Gc zM-0~Mf$CN23BgVLABqdIXI zSC()i6 zn9_#vsH3xJ2_z#{%=U`W02Ekwukq;d6tM`Thb)em>@I``9hV(%vlJZ-DA#04YHSTN zW__Icthf>8hIAT2&>>-5Q|=Iy#+g`gdr8XtL_)yppV;db?otadE~YXetTo9r40q7^ms53rJo~w;OR@xMZwX^PGGw#&}%WVd9 z84?nCbX0|>m-M@>`ihgepeZa_g;Y-}{G_l==Wp@G04yDbe zTeegV#3HLTQWTfguS)Dct1{3N4aBUK_ae52s5nYFfGfFOc3VdB1uHAC7+xh~X|=Hv zm3?J}Ak>L0Q$zq~RR*KXqGIjVmrXA;R-0Zl-o0i@x--2rvu~T5<+TPFSW9=6Et795 z!j5dk2k*$W|Adok_m088FG{@jY>}erg?GR3Br^c7=GO8)pR&6xUy(wn#IkYOZts(1t3rDz9jqU1@GRxNY~ z)s=XY8Fu%q-J8Y+Q5rCy!ryIUxE@lg?=DDOvkE+_ve-ti6w+#pEMx4IQ~JJgKaoU_ zZQx$C#k$k-G@$1$(;8psJKL8Syy%3qeykW2TacRQByMr{yTq~I;#kbC_ug?;G*()I zjlEtl5Ohu!iz&lECG3y*ZtEf4BfIjZC-J4eTnUAL)cQtQhN#q%39+K3{`8^&XGdez zSDYUe#E<$hD8=f41>eoqYmdOTVNPo5ApA4I@p@*IY8sgVBYIgG^#ZaNC2 zDaiCm)qY9Be*gTz+As=n(D8VtYX0Qu}D|oxb{s-+4tJM9SpA^F+xzC(2 zfmIO0w{85 z(65|ql%SsxWul}Yt=$JIu0+by%+O^-nnANCFJMf`Ir3h))y%;{6sEP$D3m+2AUe=a zN1tzJm>s>|E5NTe`Z$kw3u-63=7)0#CB+Rt8dZe?%Ec_8dQ~Mlq2})i!X8iug;6{} zZURZ$(VAmivDyZ-1ft|7*=GjeW)$2pJZOH^{A`{(!UA4&`@l9QTMpF%Ui6t;?E5rz zh*Ghx;kCn6&1vC;fBgwnJcHF15%dY)L?K#B6r9Lbaa%bVy%cgI^>U*gRZL*3eJ)70 zH?a?gyGML$O}vEr5;)ujEN~73zXWIA-1>_BdB#iQ>=5|N{-iIHdMe)r<)l6*rnF;unTJ1fWYAr`%(vZNX{j(=j+GcU4$nCgQm>423r9E z0ATyKF5>@_K%)P}?4|XrjQIZ{iT>$0G8HXkFpUtsH;q)zCgUzW=l$1Mu3Ih_!HNmrr%S9b`NajWHB&|<1h5L zq(5<89cX6VWiVXX_`JV@|Is=Ru=|O?$rVG3)`M6?VA=~QQ}4++G}jRkOpk16==u~D zAwrLAL^+}wh3kt37EK^~Qx)-~S|un-L1B=1@a9=ZY>>%tlz0*eph9mkci>q0N zIKEpaM-MzdAQK@2)oGgG@=&2wKia+rNLAJAO=hwPBzQP)_>dz`Y(GhkLVu7M_FMmg zDn+=bqIEJYUSn=U2FQ=0fNHwQG*N14tSpv-eTLjEzr}c-a?>MtqV?z6Is&Mr6hy;i z+T$FzhINc`))_Vw`qa!jomba$Qzxn-=8)rmK5T4Vfy@ zm!!>h<{{UMxkbP|y|uWr$t1tsowDoJFjqp;XcE_sQ719(Ld29Y88n@tie>>|tff(R z63Y?QB%?F6E00Ohwv;0osz5gHy=NIbxBNBY8u+E2qVEr_9*vgLZRED$myU;4HPMRp zSmg1%#A-#WN!$#k3jIXPRB-Ehb64he#uQX+R8&^2t-B=*AB}c)l_`SM&E~LxOyB+E zGzZ&yG@0iEbP3Yo{G1#d_M6po);{vB&PY6ETw?W34&x-7pcUQ|sf^h%6M~F$R-J-R z5k27hFY5!fmiwzUWx4FKg@~W#Wyt#X+c%Toa6OeWg_DMDt#bbT;v;5AI zBK8!v3AI@xf*#bIBNn=kESwDbzAO~KYjQZ(ZiO1_LjpGXW$ zuDN-?S^!gHAhPAwa63eu0!yfQQh^T-aJz(OH0+*1!U>_#A^`KzPmCMi&gTwgSCjDfE&3Y!$Ntt#tD?krW^&}9& z-U2M*xckY?kr&S!vUqqI;ds%gg-r`qb{vwr?zm?#LLxo zTC$m+sd8>PW6joaSXvUBpIOPl+Xd1rwztX%Pg7`a1akbgI)d2zkQ2YV_ zVEPYHN<`Sk-r%nYm6)(5gTRM4*iBZrW}Up*LJqDBv}&(b8zTOr5PrU3CKw(6S~saK zA<=rt5(VgsSVyu07RQt6CYnBLPD@$fkZMWmhnF;)J?{8@0+nNrDTMAj3a z+#0Lb!CI3Ihoy3QMYEZEb*Ya`u4?h<&}0``OqH6|-Aiq!NgGXMC-TC+xpbeY6gmD;Q2NO$r7pXqm-9$jwy`- zyvT?kGD!;6McJM(KP4y&*ODDLVMar?OoI~>G+i`9H2u~pDH&fIp}?9LD43>+P33*!pt-Jl^2lR$3V{s3e!q6iqDllsDg|*@h^b15B8ocsLX3W8l zQ|cXp=1b7IkrBh`%X1TB>BDCv>5c}d5st?pIw*w62}lkO845&ci_}{oPKO{b zN#DQkDd`g;X0Pt2Mk1L=iy;r$`S@e7KpXB>-|Ud0A#S^!;@KFC+oh)%-*pP8I)w1$ z2L71L{RE19TMdPA9|rk1YaR_kE>PpP_rTWQH^Fp9P0hj&004-e001oi;U?g-bTo5x zGW^>%ke9MSpo8_AT#BnSTWv^~MFejs6oaiO!{igyf(0d;7AO-{f*F>|=y!C9?2v~2 z3Wb2jK?11~eJAaAtw$k`+1_Sh$Vz3|L;HGudBFJX)lha_bGe-s4aMkbx!dNC!A-3< z)+YtijJhafn3xHDaJMf?>>P(31+6Vg0o7;!)R+>A3qQhoEY(m8gUUQK+x6-pUb}Ki zmwgs&sLr(hP(OV29A~+QZ%a*KO(O=vR{0 zR%cW`c(wtO3g`Oa@?cc3Rusqbo~fV1d~I*d*H$In`dc#Qk{NdQ#qN-LGyz(Scxn$u zzP{0dWYOKrTtXQ^{@!(FVyTBcYMb2>bwy|pEy9c2t^E1gwSYV;YMbdsnQH#4MKWh z>|~b*l)tYO-tEbp`EOFk_?fhL_?$d{m2J^p8fEq9tP(XqC8lG3!cC3#!5sRzvVIR95_cDpDG+ zUBtPS^TsjVX#@_LrRr^XxsCno7KkkLyK5C$8sjEJ4GF3W96@Ga`LBYgiGGFZ1HE}k zB>n+|KNrSNS}&3Tr~vB%@o z_$So)`TezV^Dhnv8^rDX#f2cVjS48^<&&qeqY|*y&gEIRnvAKI3$3Z{Y{M?*Am*f7 zIYuw6d)WH(wC?OfG#=bmWd(pRRwMP>3JtP!JS*om?}Yi$2_kt0 zAA#>iV7z@rlHomW@z{5jK;50YE_iB>S&5^9WnWF*QJraS2?l<>4^|~LeJ*SvG?_4U zjOzcM+hC5kh!{*&*sbj-HF4@X^4myagn!T|ij`WfS45E}#3yST8vRwAx~{??WaS-h zV%T&F#HiB187*G6irY{Sx!z^0?o2~@q6Urwt}X% zB4WXuA}gPdtzT7kp78-{V`Ub>yioKum*4tn{e%1BN7Lq?HvO~63YHajhO-|UHh43u z=4V!fQPZF0>B$M@R%ndR?D*}uh@#q&)p*S>w~e@ZO>iIjhZNrf@%IbK9A z1ddvS*%)+Fw|IVa_~Od=AmtoIp_bqBWco9TYSW2(s->kk!**fY8mf-L0jeobqLj}7 z+~9UYc6rlCs%;EQE|Y9e;}IWcPtn-`=%)KIL*md+H@w1XgJls+XfQ^KhKfcd^ycu3 zM3%Ia%lS=4kQKZxo_7g&T5OBu)oA@*KDu<8m&;iX=I4)<+r!5kigN5-W~^KUH7_3W zl22Q~iy?SU6%3*R6z8irC6tO~AcRO+%MFXiDP85QT`b^{e;Q?|s2taEFDs!UVgiPL zGn*6*#H=)OajZ*NK8SMAZgP>(_T`;;m?*(4ncvXyP1~6mtV{d(~H%}WfRYh zE;h_&5JwkDaEJ-9UQ44kd~qTLop#g0Tkc#z(Hp)=F10(V_ zOWOp)lKvzwn^qh+WD{pBGZRlTQ)Ea$G$nI_7JCPhd*)w83}ZCb*ZvjGcu0aSYa3`B zRNj(wY%@K+6rlft&%`5wR1n&*h2sOyWj)yl-wRoDeiL{9fTcM!^L?{H2PJT8vE)btGy+>n3S)0>ke4?D5J?ldaXr()SLH7zjGGn?<+F6 zg13G4+jnPwC-?tTmZ#vTXKkowZ}^urnW=2$@EynZZnCO7ah4KS2QTa>xJ{z;1r-8T zFDz*Mja&kSOaX44PNbD)xaX|UucFxS2{g3Ru9E?0Lg?r?2;&`tCh`@#_nfi8qIDrIdqUa&l*gME!b3)#^N>S*0mSxHF=xv7%{67a}P`e9xwMf!rg^?d16LM0!t zRk-wu!t{k&;_Az(+7e|{sza4hX1!%ya|J!wI9ruSc!-62Q(xy{LM1S8X1U{SGnZXi z66IAJPCZj5no$f~u_>8o#G2BXekZ*_YqC@jis)p8S{A*Q#w4DC!-PhB<7mlADtH3m zL?>Ii@2^3VO!2B+MHJ4t%H=!dNeUIsF-mpoD$#?~ItGqx3RmMs)3$+*j1VGXRX;)m ze(^kHg_3s2MiVR(1K<<@xbt;In|^YdWheY_=oO_k54E0=`-OLeT+Sng6e9ozhJie~ z3*4imayQ_M3Z0z7?dPwXk$JA-?N;Z;{x>NTWu3yQ!XRba)5{7bEWTpeZCv4Hz1o=CN@R$gXL+pnCSpT?t^Vubu>bs3Kw#>J0G{R${oT zT?*q&DXE*bK(>${z-#rTV-zgO;%f`@HcvzJ_}$@!L&GAZDz^8f7}7mEB(-qIxu4oI zG;GqPmItD<^ePS)VHYdmi~O{X=QWQQRSK~u_*h~`ce4qZXG5u64W>zFi-j2AO+_LM z=@T9zGsQ)MGJKvF$Mlns&9cLbCOE{4odB~Ef#bwieoeT7rWiZ8q6#jBcd3zAeYM3l zN4ha2{>3I%EG!NPk)hji;zcZAV*#LK=8NXajl=2UHkhH23h+&M6E0O$C&D)`L*X-1 zPi%cA+`Tj=qdvFwJCl4ntM~{9R~aOil&CIbhSzgIY~JLtnm&p#^5rvNaL)A3 z2m}oO2Gr|^EET{i9&hr@3ji1#OU=QX6Y3Mf-j8!VFXdiL%OJLmepd9L6THFw#A!5% zX{FOaWfS0r!!4^MS(xhE<+*#-2!`AtjtCl1$h~O+O9psvGNpVgv^AU@t~ZXh2+Neshlx#BlJ$~n!qy8TdE|%Zw5m@E z|F{l0zIhO+s~fNnYPNPrdb-bXDvW=uo*fdqc%KYuinz9fb}w^fpdr*MOc?3i#E8IA*jJ;%NgWI zSYnZ+;DY37(zKZBBOn*CHEjT|e!p~|L{|vngfmY>t(E5~#>+giaytbNr)A?${a`?) zh5OOCrww`&8#Wr8xV7t2rt8m{CPQp&cg`3_Bw$-4p%QXs!<7NwFnCw!ps*oU!|5*$ zroL0lv!xFPI?!HQ#JpNfLwHqZ%X_Lu$LS6qG|=v&E?6A2vfKG85&6^mjs25)`C}P0 zTpvUNO_kk7#9iP(>!0QGbnCoCkOpf1+iz-yk zHEtEwucy!LD@b8$cg$BHP|R|M^&OCD9)i@3U~FZNC1)S5L8v`_0{-1+6Oy38M}0HM z*Y6|>?^f7fkcMu8u?DkI(Log)q3I{+eI~hWd&7zE39wCal|~OS^a@(uG7SF1rd#m z4XIC?MKk;Zcln5`J`M0iexTICsd(ldve~+mmT9W0y-1EptJ2(6@k~+Mv}18*g-|+< zMS!G?%{D=su}`77L| z+~hloWF7;G%po4Eodz`e+vZYa@PMMU_l9F?KX+Y%jr)uNUJA=*@4Tk%&08uE#4DSx zRVg)dS`1mf<_{TM&pVyIQcPLeYdCo|NpeI&XS_EC3@5AzB6$9zFTq0UoFo6m?+f`C~KL~e!uk7fi^h4 z09Zx_GM~qAn418N{*?{OC<5Lf0u`Y)B2ZNr-;k7>0Er$xBZ{6l)Gh>7L?2C^QUDyS zYzh?=4Zb)(0+OyMlonxZc!+*KhVGbQ7Ej>NF@a7bBEElGA1%B#!f+V%7OfADVB~}} zUo=9YpA~B?M@86pNb5|0KFT4j`7;|fwpY5oaV)4Tl`lcv-1O#1NqmL;zUwBQAE&yw#2%@koi6noQXJ+qUYh?6SPM-MRk=OWYsiq>cIr*F)tMaDtxT;EQele=Bn)s|h zLS^nH>-|zvE_njST;#V?H&md#Mr+nHRO@+i~Lj(ChFqjhoqEkNEu@SFbxI_@2 z8W)8-<>Hd7F1m@Wv)PyH=ZMTg8#TqPbhhhK6PI!1KYk1%hSp~glQ%Q)D)VCutBfNs z@{g5FwFoNind?wG#=q2Ys~}*TbaT3tWCwl#6Y#w|XIJx>I_c6U8 zobyXZ7fFR{9d3D03+4&PxrSoe57tySu;yt?gn;uo8Qod;C=3Ed0FSTZb$D7x44>h^Bvqh)&%rguY6%TTD6DoF0gnuFZBo7!BgrV{5|}z2&g2T zo?nZyN223}-#V~@D4NCQF0LHh5{3P#J7*S8`Q28`9Los#W@fx#@$g=A)a^ZtQaHoT zY03LvGU%qqRcfN&z^@1Wp9fnNjO?9l1ix#F|LOo#zALYmkUoWz7!AxKjNE$W^PEV3 z(EJw1l@1A|5>1XbS#tt@lZjI(3&!y6xMf#;*3#LEcZm2l+_qcPCt)Q-8yTW&Ag zCZh8e>KT)B+%2c?BF5E$>#e46RRZnCL*7!nrn1{@M)DNN=`PxK!t_x+AzIE5^vhz0K3Skqz0%NEdeb@`M;G(kzoP?V42=;0bjs?lI+;u?S&o2SgS zk41>LoP5GFwiA=MG~gRlDx*9$*XE^}PAvzI(`=6pwi2ZJ)|;ciC~9-%I!R74mZWCK z*lwvgAOEdY&eXM=9(lf=0hdRZPG zvI&3Km^@u3?98hMzsi%_V`86mbNSN2?Kgu)RALCl`tN^04a zVBT5PFPs>;R|0#j42zuWjxP!&{eFX*vlRwvcc8AZv`7xzg9khkm9?v=Fu*Y8!>s_c zEffSjDKgO6ab3n(fRt&3No)`oN)R|Y4X|-)G(|3vlvr+nrd47Rmjp&?Qzp3?9k<61 z#=zrt#iOGia^w(MgnxYE3Q4_kR&xj&NstpgW6Q5d3@J=#Tsa6RBx+y*FhIu;sGk&=qTTX zagBDw*ykU>v5QCBoGIT$-b6uhItQElB7|IB91tALvK{L5Qij zQySG}ncu$7 zs9+?;vkB1LBX%YPw7n5iQwdiqd>ZC)SKnJ?)ymScDbLt3>ZKw=hqZDdx3k*Is`7R@AP#5p7=4OSD1BDx{Js#a=Nnew^2Ld9Jb5xyaJs{sqQ> zYMqDJ=lGtUraC9MltRjQ!{qWAja$XEA-k0}t@+5XXf%^JcjDcYBr3GOJXB<$b^|XN z?!BQ@{bo{GmP&FO@TQ(H1RaIrcG*t{wy_uK1hf}+X}Drs+TBj$z|;B0$jjM(6^7@H zCi-p?yxS6850Le{_l5TH?uC$ugcQPdo$>ldfe$~nsvxiAz!!WPpz9J7#*V|!v}eqN zr6E2+J5Z38)7uC#u4C^IOa3qpORzkGSCMxNyyQWQpDu8m^&!(%y$C#*5Lb2}Zd3R$ z&c$IQW>pgSS%m7zC0PZ9)GOO!>Su8&BxdCj@AbQz)00pK$`g%NriXWAZA?KE!?>Zv zC({h)(tFb@6*LC$)q5ppb*F55?U=A1>n`_7zexM-YDkzlaI!E?LPzfCjF@MFqK}F< zF~P%9th@XVC%3T#lVGiSOW6ZiyT7A#Xd9HwyR5%b(CyZ>Vd{`~`2LaS{Ut^(V1cHw zQNl7)`)J(Mwev5oo_ewXFb>KCF!@G0)+1=1-6XxnT_`r z-=%0}`Gi&Z$wVYGnL?=_zWmVu&~|g9!42Zxlo9Ly79t-VM7kS`W!}fV0*>J(KiflWZ{Jd*xL+y#jj9A+2w4^VhKy!1{(00ZmT zuBPGZ!x#>PO}mcWEoZnGvI6|$4nHCa(Qt~fNl>K(-7$Qj$x3SY4n4;m9c4`ye4o+lI5G8i%eEA_Mr#4Jk%AXfIAi;*cS9znQA z!$!X;emZ-0j2&n&o3l<16CDO7-HuTlD<)!8eR++B(jKr9bkXPADzNaE5tNRpEKmP~ z+u9_GWTd2eX(fm9jD4k4{W%YZ`;QxvD6M&&7UNWs{Id~AsOm$f*;MAp-k{d!0F!vJ zMUPG+<~q#-uHgt0vr#w$uMNt|*~dg4lh>mZ|Fz<%x5U=&VzXaA@96-g?qw7}zOW$g zb#oB1qIj?SMWJJ#LX<&ghZdq?w`ydFHm2cHuN58jK_WR!Ux9i~z|*!I3F;oBPBCl) z3^CBf9tp(n`F631WFFskP=mxEu-&ngDGdial{pOuSU*^l{ZxZPm=u!}A=O}hChM1=>p77Kn-Ao_FL9G`^pu;o zdCI&>ZhCc!o2xvn#;3A`y>)5aKGf{7a(Q>rX{a*&)n!Z*&)7_sF%Vd$aJoaLp#AXt zFTqbkfL)E4@9lW`eQ(GAThZ>nXpT&UDH}v3%&(5m)s>TFoamFk2zfPRzXnDaCT0)JrEz76_FL8&FGFR3~io67-Ne|jEaEJn&Nt^ug~dv z1B2_ixz@;-;BOZ<<+1g&`80I&X5iiCaPjN+2WyrPG=h6-gKR_1RIfLL0tyc_2oNgH>PBca(zSJ%wdGI(G|Wc48^1u52k!D@@m~&T;}DQ6O7ju%3ohuVs{7es zN>aSkod?->;kh`KC@QmrA&X;x0;S@oeEY?m%DpY_%Df%av~5+hb1>I*aWtI65>uL* z3V{9+dN01^L_+b69-J}+$G+uBo?>EgMu=eU%fX_;%$w+lPIzu6^~olxdl>f#5Gu`vb!Qi-@GIq#6x2bQG-nBR`Xtd{!&us8$Q3k zqf3%8S($7;FS5METj~Ks#&TUIl6}RIf+PKODffUf@Oga~77(KB5%hl3w8CkWCN?@h zw5f^bkwfXB=JTQawS*0-1yLmfu*>DB0Qh-BEwJ9Jv))Ee)Tv%Lwc}d%2Hr2UZoTDW z@cu4(kFZ*`8VU!$AsAj0>JqBA>%|X`14qzb+)sK#L?>(-&9-YlbXY{J4b%Kg_G!jhede3ePrzQh^iV**?NbAxn zTmh+z=TFJDQW5SCL;D+sE+l&76XE=iiRX)-WVb$5chM)2^0kM#c29gu6jw{n%F7QA zyKsS9hQS*M;v0&vXDEedETVT`v-i-S&ln=h7_@$+?3GU`;@pA7Ygj#em#-6#%(VC9 zsnD9MhUV$&Q+X(fRNCiKG?-UW$wubp8+bPFrQ1rf7CL)GDxgo@4b z^Z&u)RgW)7i9ug2>O~gT6;n*Yd-3}e#$lgJ=5EN;XE!3Q9>33L-$(=+96WIh1G(7j z6!Cbhn%wCA{Jg{Zz2=J1LwhL58JhF+4v(@%D`NXsR^5{tX!adGN-zAH2_C1(8-4)I zGBpD!4zZ0;zeH0xT>nj2CyfvyzG|PlZ4tl|jo%MXq`{@>kVw!V+5H5f zC{ui9p#)%{g}nSLGeGLYrUfpg(h_5}5p`uDg$c4BdAaH3$^&q;+ZPyR^@WBHw;9Uw zP>s9%^DNkcW$a}N<8tf=wYe)4r^12wHyKKb6y;@=cdIbJGN?Mqx2>y8(Zcjn`)x2@ql#FO`WENo zj46l~@G6wn<&ZZ3RMHNZRIJP292#hH47el?&XhJEY`w)S3|UH?^}*PbH)~5>e|XuS zj<0l(9zdKdsCB1*NQDUV5ExCUv74P7AWXj$wY9`|JuLTeTpX=u>g3nm+{{zK;7Sp9-A$1covx+Q1BY2&gR|A6+@bJi!O>rZ za6@u9h6~O!2(6FXeug9l?jMAg;@^%`lN5hWz`@xe=9_eq=>@v9k3|9_h$)?Q?nKZN zrPZUeRq1zuw^SrzEfEvtONtpR`JH8KMDHro%e^Uzy7w{u1)BhH(A|B|JwsN1?0(%HPbYia%YFosfaq3Hps6Hh*pO3koi zGbXbY>~XaKI(%6Wf<)yYQ;#LXN72T25_GT_J9n71%RbSqmzJb;FQe{2LIO70NVXLx zuE}w@3JcW5aj$5~Bt_8bZ%NDL4!Waq%YI$U;l+lY-(iRTo&$ECXA6SHq7nlv$=2Hv z{N`On5&$<0U9=_S&y&YPWemuZLxQDG@XMP&=k7?sF9+hnC0=6F;yFOx&$Erqdo(TE zeg_mQP{48Ur;}sh8R#P3pgd5DMQdTGgRokaO%1j=?GKtR)Ti$=p+&PBsGF6!oA;N{*G3A@r^ab z-=w7BI~L0DA1bYXp(BY(TiQ%-MMYeS%S<@k&OHtX7s%7yT~KZ+M-a*;y1s5 z0>SvD_So>GG(#rx!H=!?pZ8jCiy)D)0jhhyvLcCzxy|nv`c)8gG`cw$EJ49)GACM( z&NHt#zKd5TH$L2shC~3wT}eWJqAuEj2SxorWJ++%5LOd`BtV}$o}NEc!xAgpnx84W z*I=I&k3Kz?bC(nmKC#1kOXM!zvGTnSySH{tqFUmd(?$w0cBlueB`c-|c0a5r^0e8g z5`QXFv$8F=nJi6>6q;+Cf3jsb+^AawifBzUz-XE)pjc|Mmguusu3|i!WjZYqsZeOQ zlAJ3ewa~=1n>1J74B+K#*Bqe&H?49L`2mDKhBR0mdpW`^w2kgN1;#K}qipTA*UDuA zU+ujsmW8LK;i9#24=4gSq>U*V>%R}5rA3Yu4yf-dqNj&a(M}oNwO!H9#AZ;c?$n&0 z^*X#xtH2tD2ZcbEF%*cX-BS)&C>^JBJ#M_=c-BP$6;Gx}TZkzMfyi!Wd*H4*JBJk* ze;ITqh!d6>Q{<-}ln@o=G}212QFeEu%^IK7-b8NXC6f_k;&$eQW*;HVdNs*vX)uhs zITrx7&)yTfj2Eb7mysBx7#eF-@n5$D1ZgrDr(=UKz2u%PC+eCuS_Ve9HH+vlRsxbu z9waKg<#kioGOw)|fn5`FchTifb%#zF9wHkEymMjvcGrhx4M}dn-fc$fH~S%S3xf-9 z)HwLTbXYxe3lrkm_XLM|n08$&)-le6bp4E0fP9J_$W0OwMe5j96M6i>tnuVB7qNWd zfeI>{3u1JmKPv)1bgjNE@jl{dFt0|Jy)=q;zWJuFPwSsqouhDJt#5g4F+lYu_ZurL ztWjd58CGKyrAx#UBlLx;Kz%ytc5PYY&Bgsp%6eDVTc?$!HZ%)4?lg1K1?EMXZR61a zI*aHl;?J9221WvDA-aBA0^|X8Ve~CpVfHQC0rr8!XmNr~^K}n$QnPJmAT<*0z;6et zg2WA}H+~4N(aS=vS$^RauZDW6a}{Tv3xX-m<&mq^1!pytM1_DC$D6Ao*gG`636hl$ zGyKC9e~F6!RmoX^MYXMA7)3%tVH{GrVL)11rKP(;awzGpQMyC$fD%KONGKwpgwm~) z)PQshT}sOxuIHZd%uz3A^8my1%=+HF*IsMb>tFx>9V>a1HgujgrF#@uTii~4U*8k?4R)Yb5E70On{J%N2C&i4 zxX(H7)pdV(I!R1CRfowCw7t7%H!3k5Mtj9RLE>VTjB+->Fa?cKiuQ&L^wCT+ejZ1n zy(un3R6Ka>mbfwV8Xwa@_wHo(ZWiLvBv>M*-$pEFqOPv)WOZUK?eutM?>1U@PGT!o zb(fh^qnI^d-5iQYBM0jFwVDOBND^m6?bE%f#6M*=CCKBWn&vi01u$(%H9rCHjLe89 zmlUvyKDGvjU>WCareVQY{d#=DpkTtu@O^FnOk7fqwH4X7w(ycreFx#vD#dSX5MoHF z|8Dwom`sOF6$V2}td|(QTA9w$&kNgJs7iLdI(Iyqha?1yt@5}Vf;dh$$2?(jS0!!PggBS@X zJ4Rae=-Tz9m0GpZlP$TMX2_%Th^gsh3#)Cxet~bXC0nV;c~ZDWT@Bucd@ibpwdvE_ z-mQ-Y7q<(dL1809aka1KpUre6b0~G_`Zw;}gpPiBhJQ=!D{XE&^|7 z`0kfhdwLi@j8(Y192O??TzN531ZHC8d!u$@K7GGuxn6DO8zYs@Qs2|u0@>U+;em&t zrJ+8;gS=Vw#LJ_q8U_i9lJ6;i3Et#dTz7~|)E)$FVv-Q`L+Cp&j3aQ%dQWlCIcYa{ zaU)ln+!G|1_VU6_i!6Zx)(lwQPS@CME>O4d00`-cxcUj{8wTp4cbeM)=5$Hi)LnOF z@K{aoWTF{V_IPd(&hl_GnUhtSk(o6=LT`N&PP^^KX`VvLEA=!6%-+nSPH4_zf+rgd zM7$YjHg{sw%#HIh+O3)NGHDJWeGfv|+iaXphBirjL!o`7KrkJo3V`EpcizWyIPzC~ zPiFq%GDM-L)BuK6$ z?_E5CRB~c|Wh}3$KF$t1@n4;JwoH<F(kJ zcKC6Dlc;W>a!rlko3f+AlSGA*%*=~3V9zXel8wxz{w0N+2!18(2uqu*U@+&L8}1g# z{*sE?HTwvLda|6`oq|?+@%~p2off+1QyrOjcV-tCInfqWKg{x#$~!BCT#*ckU}epB z?V41madmuWsRdM1=gOhGszClqJ$0p_HV`9`r|kJs6F%!qdvRbYjsrK#mr4TBa8gWA zSsG>Ac3P&5mVhK72hZ+J?_HO90lJdw;LvXQktw_rB7rHDv2Vg8AEEAXq9O9Sp0z3T zhBnL}6f5ABqzj-gy;a9t*3z+?6C4iG>73OAQ;oKQgr-f0Nr{@}dE%d36&$8y_Q=W) zQ|t!|^`=*oF84gre?{h#{et|mfHe=$eb)Nuu& z7;2i9I7JjXdP<2d2{%@s(*zvnHVZVpfICNNc2-n|tklHUG#Ox}=7r1&NG-w2=szdS zzP8Vi2Z?#0@oiGJ-QOv=?($x1mJ=(xGFSa^;r^|nm$_Q=X>0aWe1(vcIWy&THZoRj z%iVIdrb|$}_}GlT9Ljjb$I7k@-m%3b?aeQ3cIZb0qEmJYFkNuB3fNa^>%zL3xyaUO zj`G9DheR3+xFpKsM*J@Vi+E&Kb1ZDI`~>50osIM%>MPvfyrm8Pg11ZDWPJ|=W%vWx z53>OAx#YtB%$n*sxb!?sj*PSr8M5-s`nY3TlA=**M=bqmU<72hB!zOVeX4_j%rDBa#f^&F>-7?G&>s~ZLXrlZ z#hX^X^Xydu(RLA{(|;uL${U2*2CY75nF27gFrq%YMYeAt@B(JipC zH&(BIAl6=cJ2h9EgmiEjn*iQkbk-clr3?N_ zcuEXtU=976|FCXmQ?yE&hOn8>5?dvM`jvRMX*yeUjEbT%W4@K;Vv2otEX6dB+-kbbRUKINI4$64d<8OW(jJaU`iHvtZ8Dgi4NT6<*E0?PyZX{fAo7JA(#@d!=$Y`~#Zxj%kH;Qbw-FOr(%>;9Pu**WV zMRcoSVCA9MYgRWKS>3G4oVTnS!G|{|y+)39GORWo+Ei#EwNg&hIM4@&z(9_-MWlCd znP@8WO_GRWqKqF`^II$vXPv;o-qEfM#Ca$IyEl8>`)LL5@ep!Nv>#G_w zk#mB(#SXp&&PzCR{;p*>tVRBC!h0aMY5B7LttQvi^|Cj_FB`HY$`+} zV$~o-iVV|lr-h82jg__A_sNi_ZKDCy0gB=Ce(2?k@~<|Pn&rWZzY=K;l)Dp16NTeo z9c^QolI3if!Y9U*0^#;GtNeI?aX|3AQJ1Jl{lHS|fhOCchX5~jkSVrS?SmCW{h{Xu zWM}X8!{f`D*KX@fqm|xu)e4Ec-)|UaA}>uUKv(^YE^t_rqPYb7-jf!C^1aGP0h7Cq z`U`-51^JKBCNk3K4swqp&9v*2_+0zPBj`9LqxnX$?T9$at1x!dYM%jG2pchoZn*G3 z1Olt*ybJ<_?~}_7kZ~DGHdOWr&6Z{@8iGppgkqf?2lbs)K!qt4>UvE*LivGN>b^cQ z*F0oCj*MaqJMj!rYIqKiwMh;=4o+8wMTi_e66oVR8K?^`iDz_N8o25}HgB@6XWJ#K6^uq5TaNi7AQKC;H97992(b&FyvIT=dDi3?M-=P?NfIx?@ph zZ~-KIHdR9PMIswhk`YzAkXme7;Hk5{_(;PjVuQ4Bg@iJf&kF)2|Rdo5rB%BWN?l-*Yl< z67kY$h%cweoE95jBucu0P42T<&u0bXODc>azcTG~iQ0OfV3u4s^Zq_I^?ffwDEX}m zT@pt!wVyIx^#cp1HAGGLh4Q9({Ys~CMSC~%1U_X=gUBE;jzBwOh;+!#l!k^B&=G=Ctf_t|{Iuj{fQMJKTd&d?fjc-Iod^aEBlRAYJt>uLi#|vnG&v z>m=*ds7u8oilN=2ajhQ|S}9>tdN}X3MTruN)g|hZs@E{l$8gF6>bVvc^`3^2N_3M! zl;95+Aa@Cl7MWdnd5Mje>qo|RSxCxT!zf;r3k@5xL^JmULzQj-S=x%-^wSe;hpE^t zjqQSn+jnMWx#;C1?=goS`%L9*&EJz;EOQzTh-shlCW^{-c{{6wFBI-T%BauCC=a-zf>?OduT!koOg>+Dqr7&dF9h6Rve*GFrCRe@3gkj zb=g1Gl)v@DLTtaa!$QR>W`xq--wT&Er*L0lZL32$`36KYfipY&`K)Y9#mM?)hl*z}QvyN#zB~EJ!-qLm9 zqf$CCJ`9#Yv&-^1UABkL)+VdfVdC|tOR zPGEF3JjE{?9O!jKx2*HZEq-3mccL(_h8&(xr=Ss#7r_ptQsA6eer1TQyPR&x3g9Ck zzl7a4Z0b{!6c#n*jSEFYAMz|H9&2g{q2U206!C>O;@UYg3vciQ?hm31Vnw_ zb{v=^#E##_Bcq}*?>^v3TO7YDmlg>Sq+gkdc8TSbHd&R#%q*nRlR!5w;f~7>wfE** zd?~iSZao5rc+S7{b-TC}NV>f_AyF0<;Z~S- z%U6ub4*eV^R#?Rp%%FD3-LgJ8!ecI+`%&m2KE{=~si}+nIhM6Ssa7LJPi#a0YVI4; z;aB<@+gs#26VnEkcy56y{{W=y!E&1c^s_7 z>M(lyZpbzL&c-gDET(UsE@kxs<#X#CjO183k6VLtJEK+vpsD&aSgw*pt%=56KX~h% z^}*|*1Dtq7Qi<`Ok9z;A54`N{V${2oo45!>tBeDD;wG>Hi*Vuv{qNXbc;;VC?khLZ z>R};bf8aX=2MJa0CXGTTlA{GUO7t%7=@@8Pdk!0T87s4B+2N00i--Tv9`rUh@2chiH1civeJ2wh=Iy1OPiK;biS<%*)A5tRHxE#KkA*Uw4K zSDH(o4vGd=KXDg%#&a=J<;9gfD|b*{i9U(k8-A?=b{+?y8k25?d?`&{7^ch9FWX_x zaqT3Cd#&kd;eve`3&bAm;EP2;;SN#3G#CU6GIo<-&-{`?t)^4! zKm=fipP`CFhomd4rZc7km&Utgh<)8`GFFH*y6HrQ<9L=f%|o3F+V%xj>_s537-;?e zP&GCz$^8_O@_peV5dGIi%ZPD~I0(?z#Ls^Jb-R(xzUPXg8ZV!{`RvFIU`G7>tJx1W z%t(cQdLJVO*PjOg+KG5G;`N#5?(bThxg~!;&RQ%WUZT46{@D6w?#am3K*ab)ZH=7F zztds(^Bm4P>_lAgw>lO-cq=1s!Oz^4k!KeBTg5-UmVYgF=C+I!>q3bAbz}bLz5MIO zXYR|$#{2(ljOa2HFXms1o!KZO#rP3xN0c)`75iELe;;|M?#%xat_bi$$o~31qIfkU zZ|iqiR1;C8EIT6N`)k?1EJaZTQ7z|?f+~ph!LJ38g~? zB2XQ9kcdN~^C5oX&w~m?Qs<5eL9Gi#La-Rm2l>qvpw{^z#s5HjxS!_=P^Pan0?2uW}QosaO7x+7Ew zYQ+i?63=ly$j|CmP${UHw@3;n!fE4No%N4ATvP^XUMiB|jtC~7hw+mvRa6LSwjC03 zN%(w_?-LMZvl|tIn(c$cAiV9*buHg9D7inV7}RZgBqmwne3<`p9jN<(NI<;I`2c_0 z9Yj5U)C~iq{73oo$^Ucv0F{9n#ziuqO21?LJgAGRjv5U^s#mD~PW{K&*pHe&Tah6( vgSG#~BgNm>XQ&X=B@Yr3uJbP;hy{?U0tOY@#TbzhGwOA_Sb&^cO{fC From 167f23113062223f24300ace1d68a3daf3502d80 Mon Sep 17 00:00:00 2001 From: David Leuenberger Date: Thu, 11 Feb 2016 07:51:26 +0100 Subject: [PATCH 04/12] Fix: bottom line in legend is not visible --- telemetryReaderForAndroid/www/css/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/telemetryReaderForAndroid/www/css/style.css b/telemetryReaderForAndroid/www/css/style.css index bdbb0da..5c7b326 100644 --- a/telemetryReaderForAndroid/www/css/style.css +++ b/telemetryReaderForAndroid/www/css/style.css @@ -6,8 +6,8 @@ .grid-container { width: 100%; height: 100%; - padding: 20px; - padding-bottom: 100px; + padding: 10px; + padding-bottom: 120px; } .grid-container figure { From 54680ab867c400a22b679d77abaa7a573634f92d Mon Sep 17 00:00:00 2001 From: David Leuenberger Date: Thu, 11 Feb 2016 07:53:20 +0100 Subject: [PATCH 05/12] Fix bug: Increased number of dataseries after every switch of the series --- telemetryReaderForAndroid/www/js/controllers.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/telemetryReaderForAndroid/www/js/controllers.js b/telemetryReaderForAndroid/www/js/controllers.js index 56def2b..c803226 100644 --- a/telemetryReaderForAndroid/www/js/controllers.js +++ b/telemetryReaderForAndroid/www/js/controllers.js @@ -102,10 +102,12 @@ angular.module('telemetryReaderForAndroid.controllers', ['telemetryReaderForAndr if (chartSeriesTypes[0].tooltip) { canvasJSChartOptions['toolTip'] = chartSeriesTypes[0].tooltip; } - canvasJSChartOptions['data'] = chartSeriesTypes[0].data; - _.forEach(canvasJSChartOptions['data'], function (dataSet) { + canvasJSChartOptions['data'] = []; + _.forEach(chartSeriesTypes[0].data, function (dataSet) { + console.log('data set series 1', dataSet); dataSet['axisYType'] = 'primary'; - }) + canvasJSChartOptions['data'].push(dataSet); + }); console.log('canvasJSChartOptions - 0', canvasJSChartOptions); From 401422decfc222bdd18ffc0508a2fa46c1380565 Mon Sep 17 00:00:00 2001 From: David Leuenberger Date: Thu, 11 Feb 2016 14:18:54 +0100 Subject: [PATCH 06/12] Label changed --- telemetryReaderForAndroid/www/js/chartDefinitionService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telemetryReaderForAndroid/www/js/chartDefinitionService.js b/telemetryReaderForAndroid/www/js/chartDefinitionService.js index 2476ba8..98fa1e5 100644 --- a/telemetryReaderForAndroid/www/js/chartDefinitionService.js +++ b/telemetryReaderForAndroid/www/js/chartDefinitionService.js @@ -367,7 +367,7 @@ angular.module('telemetryReaderForAndroid.services') { "selected": true, "axis": { - "title": "Temperature", + "title": "Temperature in °F", "labelFormatter": function (e) { return e.value; }, From 0a71ece864ee9339ff110b110998c42ef7fcbf08 Mon Sep 17 00:00:00 2001 From: David Leuenberger Date: Sat, 13 Feb 2016 15:12:34 +0100 Subject: [PATCH 07/12] rename methods --- .../src/android/Exporter.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java index d575afe..7bba6f1 100644 --- a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java +++ b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java @@ -273,19 +273,19 @@ void handleDataBlock(JSONObject flightData, DataBlock dataBlock, Flight flight) } else if (dataBlock instanceof StandardBlock) { StandardBlock standard = (StandardBlock) dataBlock; - if (flight.hasRpmHeader() && standard.hasRpmSensor()) { + if (flight.hasRpmHeader() && standard.hasValidRpmData()) { JSONObject rpmBlock = new JSONObject(); rpmBlock.put("x", dataBlock.getTimestamp()); rpmBlock.put("y", standard.getRpm()); this.findDataPointsArray(flightData, "standard", 0, 0).put(rpmBlock); } - if (standard.hasTemperatureSensor()) { + if (standard.hasValidTemperatureData()) { JSONObject tempBlock = new JSONObject(); tempBlock.put("x", dataBlock.getTimestamp()); this.findDataPointsArray(flightData, "standard", 1, 0).put(tempBlock); tempBlock.put("y", standard.getTemperatureInGradFahrenheit()); } - if (standard.hasVoltageSensor()) { + if (standard.hasValidVoltageData()) { JSONObject voltBlock = new JSONObject(); voltBlock.put("y", standard.getVoltageInHunderthOfVolts()); voltBlock.put("x", dataBlock.getTimestamp()); From 45766b8db1243cc36f45ed4825348a4619d8859d Mon Sep 17 00:00:00 2001 From: David Leuenberger Date: Sat, 13 Feb 2016 15:21:16 +0100 Subject: [PATCH 08/12] change min value in chart for temperature --- telemetryReaderForAndroid/www/js/chartDefinitionService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telemetryReaderForAndroid/www/js/chartDefinitionService.js b/telemetryReaderForAndroid/www/js/chartDefinitionService.js index 98fa1e5..e7a0725 100644 --- a/telemetryReaderForAndroid/www/js/chartDefinitionService.js +++ b/telemetryReaderForAndroid/www/js/chartDefinitionService.js @@ -371,7 +371,7 @@ angular.module('telemetryReaderForAndroid.services') "labelFormatter": function (e) { return e.value; }, - "minimum": -100 + "minimum": 23 }, "tooltip": { "contentFormatter": function (e) { From 53f033aa710354d7ee7a1f41cc5a8d190960c35f Mon Sep 17 00:00:00 2001 From: David Leuenberger Date: Sat, 13 Feb 2016 15:23:02 +0100 Subject: [PATCH 09/12] New version of the tlmReaderLib --- .../src/android/libs/tlmreader.jar | Bin 33782 -> 33572 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar index c07ada257c0fa280d353da0cf5317a3a87eb8645..0153c276b76151b779046dbed3e67ad6527b1a15 100644 GIT binary patch delta 9821 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 Date: Thu, 3 Mar 2016 14:38:32 +0100 Subject: [PATCH 10/12] add new tlmreader.jar, do not add datapoint, if the value is invalid --- .../src/android/Exporter.java | 65 ++++++++++-------- .../src/android/libs/tlmreader.jar | Bin 33572 -> 54421 bytes 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java index 7bba6f1..177c54e 100644 --- a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java +++ b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/Exporter.java @@ -239,36 +239,47 @@ void handleDataBlock(JSONObject flightData, DataBlock dataBlock, Flight flight) } else if (dataBlock instanceof RXBlock) { RXBlock rxBlock = (RXBlock) dataBlock; - JSONObject aBlock = new JSONObject(), bBlock = new JSONObject(), lBlock = new JSONObject(), - rBlock = new JSONObject(), frameLossBlock = new JSONObject(), holdsBlock = new JSONObject(), - voltsBlock = new JSONObject(); - - aBlock.put("x", dataBlock.getTimestamp()); - bBlock.put("x", dataBlock.getTimestamp()); - lBlock.put("x", dataBlock.getTimestamp()); - rBlock.put("x", dataBlock.getTimestamp()); - frameLossBlock.put("x", dataBlock.getTimestamp()); - holdsBlock.put("x", dataBlock.getTimestamp()); - voltsBlock.put("x", dataBlock.getTimestamp()); - - aBlock.put("y", rxBlock.getA()); - bBlock.put("y", rxBlock.getB()); - lBlock.put("y", rxBlock.getL()); - rBlock.put("y", rxBlock.getR()); + if (rxBlock.hasValidDataLostPacketsReceiverA()) { + JSONObject aBlock = new JSONObject(); + aBlock.put("x", dataBlock.getTimestamp()); + aBlock.put("y", rxBlock.getLostPacketsReceiverA()); + this.findDataPointsArray(flightData, "rx", 0, 0).put(aBlock); + } + if (rxBlock.hasValidDataLostPacketsReceiverB()) { + JSONObject bBlock = new JSONObject(); + bBlock.put("x", dataBlock.getTimestamp()); + bBlock.put("y", rxBlock.getLostPacketsReceiverB()); + this.findDataPointsArray(flightData, "rx", 0, 1).put(bBlock); + } + if (rxBlock.hasValidDataLostPacketsReceiverL()) { + JSONObject lBlock = new JSONObject(); + lBlock.put("x", dataBlock.getTimestamp()); + lBlock.put("y", rxBlock.getLostPacketsReceiverL()); + this.findDataPointsArray(flightData, "rx", 0, 2).put(lBlock); + } + if (rxBlock.hasValidDataLostPacketsReceiverR()) { + JSONObject rBlock = new JSONObject(); + rBlock.put("x", dataBlock.getTimestamp()); + rBlock.put("y", rxBlock.getLostPacketsReceiverR()); + this.findDataPointsArray(flightData, "rx", 0, 3).put(rBlock); + } - frameLossBlock.put("y", rxBlock.getFrameLoss()); - holdsBlock.put("y", rxBlock.getHolds()); + if (rxBlock.hasValidFrameLosssData()) { + JSONObject frameLossBlock = new JSONObject(); + frameLossBlock.put("x", dataBlock.getTimestamp()); + frameLossBlock.put("y", rxBlock.getFrameLoss()); + this.findDataPointsArray(flightData, "rx", 1, 0).put(frameLossBlock); + } + if (rxBlock.hasValidHoldsData()) { + JSONObject holdsBlock = new JSONObject(); + holdsBlock.put("x", dataBlock.getTimestamp()); + holdsBlock.put("y", rxBlock.getHolds()); + this.findDataPointsArray(flightData, "rx", 1, 1).put(holdsBlock); + } + JSONObject voltsBlock = new JSONObject(); + voltsBlock.put("x", dataBlock.getTimestamp()); voltsBlock.put("y", rxBlock.getVoltageInHunderthOfVolts()); - - this.findDataPointsArray(flightData, "rx", 0, 0).put(aBlock); - this.findDataPointsArray(flightData, "rx", 0, 1).put(bBlock); - this.findDataPointsArray(flightData, "rx", 0, 2).put(lBlock); - this.findDataPointsArray(flightData, "rx", 0, 3).put(rBlock); - - this.findDataPointsArray(flightData, "rx", 1, 0).put(frameLossBlock); - this.findDataPointsArray(flightData, "rx", 1, 1).put(holdsBlock); - this.findDataPointsArray(flightData, "rx", 2, 0).put(voltsBlock); } else if (dataBlock instanceof StandardBlock) { StandardBlock standard = (StandardBlock) dataBlock; diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar index 0153c276b76151b779046dbed3e67ad6527b1a15..f2070d007a3da60558411c8bedb6010174a36979 100644 GIT binary patch literal 54421 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

69<36pfV>-B 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�T_xm(2vPD)4{_G#nCe1e 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 qK4 Date: Thu, 10 Mar 2016 23:08:11 +0100 Subject: [PATCH 11/12] add new TLMReaderLib.jar --- .../src/android/libs/tlmreader.jar | Bin 54421 -> 57887 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar b/plugins/com.monstarmike.telemetry.plugins.tlmDecoder/src/android/libs/tlmreader.jar index f2070d007a3da60558411c8bedb6010174a36979..258680ab1bdaedad96f61c3a91882c43bc3f85ce 100644 GIT binary patch literal 57887 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 literal 54421 zcmbq*1C(W3mTlO!ZQGGy+l~y|%5Y@Zwr$(CZ7YKrHh;XTuCCYBf4pD)``&Re?p=GI zea={GuDP&}yc9496u=*k2q#1FzkT_SH^{F~84+axS_xTEdinnlg8&Hs5_|sX>tXrz zx8K(b<D|7e1 zTn@|sd@^SzbF05t9_RmjMmq;vLt{rr+rPSQ_njHLh@b!fnlJzWe@yd-w*L8`{~V_*Eu;81J)<+U z(sy*MR5e#x7sc>KgJBYFOeuH5YgP zi1-Nh7B|)OD9SQ_ZS^Ve$(uiEr`G4*DL9qpHT-R{edad3i0|`xL;aKbNmc;7zqLb0 zGTCbU-l^E={Hnn;38xCZC0=)&u5u*P52An8`aLv@&DoNBC9Oj*>ZD!K0qk@~R+Y~EZYYSHwMI3f+ zk|Aq^EmP|rr+;mNnzCg_Z!$nieMjpdmHBv_EkqYiP zH&EX5omJN2+sZ^_gdbuMvIp2DCfRa@!ys{{Ha#Ure@+vUAxC6O$g@UJuM5GFA;u7A zFXNOQ%??BWY2t227@#zhG+QYx+d3$P;!-DV>>ThziK?dGv|S@C8SQhLIEXJoOObK` z!z9Bpo*D)#i1YeViE!PnCvjvl zBI^Xxft+L3G;rlwYZ(R#5loBb-r8wYi|gd#Q5!egyop9+h;&t2qdmIenvh4~oI052 zPe%JSY9{jYO_asPiakI)#Q>N`o6_^&W4n*yy;S}3^|PvGirA!E7^+ZP+t^gJksRL{ zrJ1k>!4uH=pfm~bvLp0i?XO)6_J}>D`*rD)TSatO;%4H&UpVFCL-&-*szzIkJ+6s1 zQ3G4_2esySX_dX{lusAdtMO8-m7zyF!hk4x6{a6Top4Fu!VoUQ`1$;4QNf~SLF^(; zwQZa5FqGm`YFm?&CGPBM`6OPJ?n8kV~Z zjyl?>GT_)C6bEuUDVZk?W`ZjH(2-?7VNZBq*laXO!V9St%*Nu4E)S^AtkKCYHtf8_L*IK#PkOl9JBlw1J9Uuuv zsz7LA%QeIoH3`)L1H0~zSSq>;c7$ZGy)OR#9z8w&^Esp{JM+3ospNvuql2~?2F+pV zsvv49=ZRm6rQxg{8pEvmd`g3`<{e5{m&Bw!9EYZU59}x0hpNyqvtTg_6NbJMBBMLF z8>Ie^erB)am*Qr3gmwf_K1ki<8a~ zp0VZ;#yoSS$xOcoWX%`{oeIswKcu*ZX6H7K>f3^bE_yZL~=g))f}y#~z! zOXRw4lf+FRD2Wp{LZ1eTy>%igE9Yi?V}5yP78MHmm_EFf@)S8k=uHXy)Ph;6me^Yt zALjc93xEKysxc5x_py3`|DrJb$N&Jue~GICc6NV9)I>FKPvm9HPd*;mICwjw{oXM3 zC@ZUgOvMl@GwG1p(n#EOM!mEm(-RtevwJ54XLcE}xlV~6T*o;w;#z>YG7@d`ohMt? zZS%ZyL+{<~@wA4k_6*(a^B&uepTAzaE_t7hJ0AgCH2Hgpd{ttVi4w#~nUhS&BKqA& z!pNm{!cR>~m@`%7spQ?nx$^?|G?~y&@wp4cXnb$rh|SfxK_vYmiGd223-j9GNw3N% zgj##%bcstZC&`AK9M!SI&wxI*l!e2i&58(p+QSQ%0%8$c>VD{wu1TcKL=^DLTe1SP^M1>I!W4y7m-hF$`>-PBG)32t;i< z-_+35*q}p9S-@1Tq8$nVD`jaSdKrdY3u&4BjV{x22F3Tjmk5koN@F}E*gZ00QP;Oo zy;?7`CoYwniY-T=$56ekRD)8h`P(ZMO zdWEFMLssOZ^OYsW7TwWGls6>s(lRaYc)dnAikm!hN;|fN#e+IMOzUJM-F(9hG@hzJ$&AL85N1IbUdWfQ zZJBKPpo&UA5T4>cOBwZRM;k`OVctJ^hJ4bO$D>Ca49UeYR_xNHL%LT=LLNtcaNOAN zMp3_*(CtdnVgqL;x=_RCzGU9=bvTo2FXh<+wYt|5lfdEd5!w>g(m0w&r#kuQ2KI*J zapDIIx1Hi3t}8My;kzop0sNGO1k_fa|F<97#(X&O=ed*wdqa&8n@*!K;>_*poyxBO zaCnXqYro2)MfiW8>|_FAqxZ44Z2yW?IoPaI?>MRxJZ9tOymrl>w+O~7mgK24*~&@+ zy>1JOozJcoJEt;P&{eq-@LdY*nb5o4p-cKCq{f0vISH8Po#)8k!}Cl5^#{b0CO=0x ziKDzxNG0M-CDOS?eRYh`kO$f<-}AGYkXlU_D=@X|8SCT9>i73>@^2b zg4&F;i6?(8;VG#H>WsZxhBogJw|QRGW-fCVJx)qq987X=s_dysC7-C)V;n2#dgX?l z4*Y$s_rouYUh;f#0Pj~>hDROQ^^bJT2C4KN298|pB$D^Kuxjz0H6A;_PT&t#E?@tJ zJ?Y$L&?;T|0@HvJouxqA(kHeq!^bYbO%}z9Hs^Y(#QJ`vN1dXViOTDQ)ES!Oyz!6T z)~Wk?_~ZkAPe?xbYoWIg(pmGf&C&`9+aMFjH1tS?SI9_ssh;f8Cr<-44))xHday%f);)?`PS~eOQ?^bRWHIjst;cu2e_KanzMCj zI!?+Fmm|>@al_q(%e%)DRaJJi?|ZYd?GnmLJb|tOWJnHB-%}dv0vObY+Hk~E3OcH+ z(cDDP10Nt zWfru&15v?e96C9{sbqe<*p>Q-v{ZD_Xm{0i@dT^r7wU3GvjXW~QYtTdOz%_qhMPfp zobnza#6fp_Y%x9~jPi0?C7y9MaHo4}ORZFHdDNT%wZT62N-umEZmgiIjctjsOn*>8gOs7*J1&8 zd~A*^D!iPTZ0+T#i&flbuwdC?({s$NG#D}sA?~mHYcT-&E2`l165g()$%PsRbafnbwd32jOeXI=U$uD^WvYosmnfe3lluN9l!619@x>jA z?Ko2%2{9!&+Xf}0OG+9Wd*p*jFIpQD9-6^~6@#P|^Nv(OE%Rd+En!$6#37elWmDL# zux7-!fXbyj2{M}Zc|x3S*U(#+j((LrvN@@X)1p`VBMBPowh(TQlekFE4ol54!;Qv+ z9WU2z>Q<1vunGJWqDa^v^YoZIkd6+RMGKF+7&(w5yxp`dpPp`8o0*}a%M zPp-h-V2HbpIQ^hY14R{>gUi>j%V|s@V&cc~O3jwjka6RBEX?lP=bb;LDgd{~cV9p7 zkFMr%yi@yyE{-l8o(#V;tGtbGDm^O-iRj7`Wa+pyg+1XvwzpbNrp?>&_ zQ8fA<9d$q9BZA;H#*%%)|C3MskyVM_Z0DBvN~b)40|5NH!M^z4!c|#)Yh%GbvKxPA zS((b#a@b-B-b>Y{j)WJBF$MN#LY(*piU3M$rtvl?vVw&Ef zi?;8IrDZ6kd;Y|zN~{*%{NA$P)T~V(qxylART`bSx!ajD|Z9iV#S%2bW1??J+ zsHELXcdo89IhWhmU}CnbHp6sUsHc|MoSikA7*p31pk16f=l9$*0KuewUQlFU5Z#+B zmRwW7jO{VMw`P@|L{3VtHcbqfWaSPsu9Q||qXARnw9))-8WGWC$6hor%pWC4Ul&Wj z@EcteJcSh6q0?Z_&|$$2LN*R{g=jDlsir+k8g>4`*wST*y$;i*0>q`%bU&slVcVL1 zQ>339bvzVb8XrKccbtqU9Fp_9m~61E_K9yyBK6VT&gSOBsBC1P+$ez1`Fgi;2V2cZ zm_VXs3?Y-bo3-qec#lN?=N)LiiE0|{dJRd3oCwXCNu|gHWh`EplHJ)zKZ&uh8%E@W z$#@~-y$M@-B7;MTEW~|V{x_G!^W3pWOhF}+{sz+xNA;+_XnRb2JsL>>c4N;FMy4_> zRC_LcsZWz6NyH%%p>tP-{FFXvjQLs1d$UIW;kuQ|XI z)jEeVmGjm4Lrs5V=hC~?QM!J>WRJO`+uOX#i(*O*2-!A9h$iaau@oaq(Is{S7+V}8 zHlCT-!NEiuYxj8I>_UpE7ph92ebP=PFC5t5YzfIGR2ypxYWvCJvgP6FGMH8q8IFwh z#xPDxVbQYxs0d>;y}?G}TN+&EWT}eF&(2B)@N#18@mc5*6xGH=RV3;JXIjlBw9e|l z7;SmrLVLmN)Z{3ZXvIf_Ie&gM+l{2cLbT*Q9j#0vewm-WF zyQ&J-B-<(@ni3}vJ^2Db!A|%B^ht7OeG)#zQ0jD01R-EvK)~BBwiI53qj)u6064#G zxSk|dt2qs0_#TwN4~eXJ4{yMZn<6_E-7(xI_rtz`3)oM`B_%n$ww#BmhaA{RXL$os zBC5Z7b0K2CLB=`}J@#+gHmbEW#zl>WZpZNTWWqtc9?#G1YU}-O_tN$}F|I_!M9@yj z@i;*|8765I%o^hpq0KCQGnLPIG(~I%HC`m#SD zg)Lqr*VWe-d42*2*93>>dXj$5088UL)f0K{OZ6FCUe0*t3WY2CZ8(@g8uSS9qvm55d z<%NVyg(2h_cmx(6>1W_aL5&e{O)d#nPY7C!VPPPQpB)A1{TiB>ga*ym6J6KA%RIz! z0&4a0(E6A)pSoUrd-nJ&2Oz=|Eu=qF-c+dNQh$gQWsK*zX{`>&Zm}_I8Dx3Retufp z)vC{}qKov(kp~kP90QLns`Q{EOICgOv5w1D<4zy{Kyim~eqr>RI2Q{vVN|>CH=g4Uu4> zQ>JtUYnV@pO@iAkm(#l4B*~&bMmDcjh*PaN1@=>CW`a|;Z$DW>PJv;syB8(pSo3qg zD~pxBFnQMJ5mpn}^U-ul|fGETQAzomigMvn4s=zsBhU^eEY*hP$d(Hs!V~_QF zF6$w#b2wa^OanItG0U&!eX1(JtqU%j7>s_I(>oD#iZD9To7Q~Pd>n?^!dxd7l)3JG z^NqnyexXN(ndH~7>zauK^89C5UlKV^djP;eQG%QX~QQR|EP!yT$1nMN~-lmKRAbK z(lclucesx_JjGq7bJHC6`I9~T;jc@wZ}E7)?BNv{0D%49v7h0mu*l+ubNLXeVEWXrszNsD zk~@%vw|X{V3+Tmk6x6apS^DqedoJP%31PxL758TCs+P-}LpM-t~TEyj~m$1X))#*J!F{H6?BZ^`pq z9U@tp>Kt##`&jBzoW!Oae~_uRHjo;o)t>|Ethzvaq3raY>Gza{Nd5})qgSV|4@k## z1iro1JPf6~T|q8ZKn2Tcg9?}90dG!=z~`#uJu!{*itQ*XgWOR@&@adq0O+Hgm}U;y zVT~{$EodhpddQ;_8|^#NLy7~R56t72K=uK zQdI@Ag!-$}vGY}KM4GKcM zho)BDPXNOJ(H~Z0=td7r3d@+K&KCh<^|9avl&64-o`*z5phyrEKPDQAlb1O*P+n0! zX|dUM+wo$l`F?rZ=Nni|uN)Q^hzt6;Vw+KNdDU)0g&Xs4G^r@_i8NXFCA-MfJe?G| z>^l_XL`79=)&S7C>F8U2piI&kv z<xkI1OV-9w||A$#uZ-K)d-56__FrUP#mk z;evXN16TuQ+?Hsr;@h0%R#D56%tek_0!ql!tDyND<{U|D;A1r&iw4IY4)nT}h=7xf zXwlc|Is1yL{basdmP3BAbXbS2P7guj1nfk)ejCzi5@6LRTBJ?8sJ>O0n$lQsi!kW%JUUI`$QDg>9-bN7Z$EDxu3)T>I^NE2N1cDv96HaYv~8fRS`U zs7`W(o9S_rV!G~vgyD%K$0YBF`fPsbpl)s)%{t0&@&(5m$=N11WZ)-qvZ)Dzl(u zAdFSZoIR3$%mAWVSx1U*$*FQFG)OW9eTg@m4nlpxpJgOPz?FP*+~Mvjz@USMX?A?e zmZr-2LAs?hxmbBxB35z?Bf_4)m-5lgfnmNZ--j)L8q|Xt%4r9&|AlGJOm5$AxT@T0 zUx82k!;nZpPl=8rikJ0YRk!Y5RPn_*V5#M*{o}E*C0U}IY}*NHLl|W#tZ!wCxoocH z;7PO6yzy^x2WUY<5gl@$)f4xd1|*zU`upwIDKSOPirUojJ9ws<7Z1V6Doxx{{n&pa zZ{46D=v|DXC~ORxp00UasH|Xr(vx=eEqn5yEfi#R63q-J6F%Pc?>c{Kg|C8b?n$q3m4-4f%ZI{YiedH74-5 zbfK5nyN0}S?_N#3hv>;ZdqCUKdwT*Lj zt+-PfV6I~d`7dV z4z3^Ooxq=OvZol+JyxbGQbuNU)12f7x%dUeAq!WQ9yJ#W1ne-vURi#0HhGz@FWbh9 zLz^8AxgS$>yt>_Hj5|*Fo8KZOEpodTJTK*@7I*)n&?EM&D9`+)uJBxNt=zkIv^$#t zZz4|K&sWpJJ@;osS(!mcDGXDA?XrE(Hv`=HgzeJ(ch}xznZjmIH{DU=?^P77r{k=2 z*JoXx@lv?>?@KMn_5shGnZ_HwI6gCUin?%j4)R>Rb6z+D&D22Eb`6VvPs zUh~Ur+7YVUnQht`912`PN6{_{`F4Zwec@WhayFXXegtf|@&PCRH|Nlr!`qI=`_sRK z@K12HvE^Ts0Qd`p|6PjwcL4q~`YLJ3eNp6(q8}EN#)v402Z}kg$+Rd4GyQhS3J;R4&~1h=h#h>u7DY8a2X+ zLvlgDuEZ^tOOnRxV~O<=FLi)! z2+z@@qHO?Dq$VmgN)|3IgL;w={O+ZR8V`w3! zj5~x(+9=JKCw-1C`c2nxp?h&mPmP+f5Ty?ztMrX}QPS-Ke5iYrX(jfzpD6T1{7D^L zjbxLoD#`kii6`y8CFl3_$3~Iwt; z;p`*MnGGA9=BatvO7Ie#iR#~GJ`n5arkk(-Mf(R8s$s^zG#~P-(c<4F#7a*3Hb(jm zMt{=(OjS!IWK$GxU8FdKrLf&R5zYO|Nl+P35f&;I3Ix!`pXMUg?J=OLaWWe;>K={k z=kHp4D<={7uYoS-(!H|W^R@3YCwJeSistcWPZqviULetlib6A=yG>`^W*lWaX4JoZ zT*C7Knhl$JD?^@R(;px|`zh2ZGgr%5LQ*HQv$B?_hE`aV8n*U5IT@@dMpjsuDBTDAEGLmRX#G9{&ckI4CF^FH7m0Q>u$g^~;!tY7VH2xGh&}7z9p)t^f=#$g;bV zAVh`(a}vVU14@Gy0{#@$N*GuOi6*Vomp|T*07!8yF9%H$Vbbi{u$+HAA6)4QBnt&X z#$st^jfOY&xCR8CdL;@M2oNjN8R@88IR?gsa)oyFxo(XEvR)OqEjKf3G}`IWXYm#gHim(xyFBgM z-CGDV;^G36g^eh6W(!mPFYzYY8~L5XAt_NYHE7 zLeSttTB|~dUx2t&yipWa#00!il*e&+a&v|OGUc@*rqb5dmy*S%s0#!=U|5btgx4V& zF?OS4bp%Qlp`f$%hbE>(`AmY{ez2|+z#Hx4^4&(i$o5ifbmyuF&N@~#DgE(i)#gkk zx2n3y$ox3`kKQ<_YjlvZX;8=M#R3!^w%M0`%GWOFT>tp0}>WzwD zh$%mW=eKT4{-9eaBBL z(nd;$jQVED-d$r?t5k|j?r_eqd&X&I6uHOW;&*fF{e$}jwEI$U?(BVsM&3(iBN}E< zq<{K)S=5$bcElx#U%sPksE-0T!HIJa@fH`FMy1yyJpdybo;X9vF%BUVWUsFCzt-y`TAVnvRuR8w<=ZUJnem?gzfuaV%)Mqbf3 zd*sXhu97-vCUtOsciK|1lN9XwIsFR812dS7p<*Pg?c!pvkj@GNj{x|=N__K9y2k)nf!Xwdz>r1k%t^(b?0fTF9 zh{4l3XtM}6^qSUtwS{3#^y?PotJX*^^ZHvYO^+*-&x@MtGmP$~Crb(e z@t1H7`sB?gHcnR!6W#R_-N=-8F^Pf&`wN_J>^-mWX`{LdAHSpswblx^#E?^MfS>OI z=bCfGeG}AXZ&umtxeNAI+6f=m*!)oAw6;KHRs?=pq<*qLfYRrasOBiQQwXxPoo!q) zStJ~;IpM+;8W~IertZN~Qz|Qt`<@7u5O-@yfm7)9`UE_T2Em zyU95%(kt$_2b37&NQbOrYewxe8)wECt=BBBgoY43x;wNn9T9u5o2u9^(~l6TBO&@t zU#$HNS|aQ;%>m=FXAu;^BH|xgWGmo~-?CD!s!dgMXtXORU1+4o-r*%O3M^#k5>gq@j0@SZ zo(oxKZqiwF2Mzn|13Rbf|B48L5u4-IvyF;acdsR<|iy$5i!gLzGxJqWZ7 z35Ty7BsXZ8WPf5hz+y_y8;vY1alx!Ek0G-$QK0DWV)biF1sRwkI0bGIv-HZFQzpOS zRvCNZW7eB|7loNzQW>jYK2XB%_pD4z;9;2ip~=K_&(ZIx^&n^imPXVxCB{NGfd9Co z;#tNHIoBr>^r-Y}b9oF^p`hVb-_zZ3;2n@%a$TLjw-2d*SStU5@?Q4gp_CU_5S21C zQUt}oZ(U@gS0|_rjh9OMm?c2Jne8_Q*+BZ{h}lINN)#8$?Iyhes4-|p+D^n(Fp11vmmRi^}!ixzAH_12it z;Z()wZHsV)pG%T={atJ-q0G7@lN@_63o&oIH_)rt9$nl7sVMfc1X?g)i!bLK%eMr| zvbcdMa)NCL9wGN<6zFU@`OPhkK_c9wXnV{3RmO|Ko>Y()Kbldb>*SMZRGQcb3DqC~ z;<%@VFmPeCVcr4aJa_3Os*~JHiBpd>Wo4;3jaTS@rbP(8^e%<11G4=~-v|K#0EGVM zdMEtVJN&PT7a7$F=f{8&X!{P>J2;R$GYA(|;!h|m436{&%~CKkSAYVJKiLa@l^a0| z94fnYl97J7<*0i(j117k@Tf1WmrX5EXrbw^d6T9k0-3nnprDzz^P@fD z_YIFaJ{bra>Q)Stm8AP9RT4H(ubqHitE77lv-V6tGnwXh+Sr>qfq8SOf$jmi=ifx4)ZZp^BvvwhD%~EFDci;civJ%v?ArWP?I2 zyG^3vOagycuJUOlDQ6(}LQC^li`y&}@&@j{uCiZ~Fm z^~~B^QTs_d>Bh%E!XN7!$SIQ@q~QSzwWOPih9wXIEt-*n`jZq%Diy9=wP?KzQ8GfJ zZ8uh!b**hqo-pbUij!c&HxVL;sHXIF`!j=xZup0Ricp%JK@gWrtF#q6i*{HbGsK(s z>6oz4R)19+&eaAOKV*}38&Y*%lQmejh*hQY+lrxOpNvp~(@F>M779N)S5PWYi+DqC z3?6YUUB|$7SfA5+)VhMVpuYkY-yABonzj7u^5N~n<2;`>38?3Jk6gajYj!a%-Yyfw z(Np2NEG1mdnB+!;i}Q<;yP{m3UNt7CN0+Ydj?#Ii9#iC((@Jvs6*jb$bwC2?ak7KM z3&L3l{ASN&U+mVd`oWp~RArQ5rOn-OOC-}E@*Nek?s1ne6;PI5e{v3ygtnBCsUI` zpeeYIsCubf%$H-#@|{iqZ~o7iZfw{c)F2-ri+uNQ!kbXvVDmpU=TcE%{VN?d_a;^^?!jZZMKvrg*1d(w)aP1k=`L&c+~eh%6R=W5bm$> z)+@}&! za-WDzPs)i?4q-OU4ex)7Kk2@3UYXeiAMUFd)A|30WlH9zHu_foiu9E#XR^o&2p@2j z2}?i@$?ZQ4w4kW-T=xxfcPf826)1dIugBNbpx1dMgxg!6`qufk#qvF$kt$81+iJvs=3#ss2Hd@Q@Ph< zpxKmrx(2TJtD&y+w7iQbfS|vT)>%!(X_1E7GLTjmg>Zp+LKlHcW(-*`Xh>$7@EKwL3!nKVg_y8_3%ev5jEx{BHl^O z5vg`M&73K%Nm(AjW4>Y_ryopi@a`gL>E()QEO(SKb#-)Mp^nNA75!C2r+mf$@1Vpq zh53%1q-E{eeJDPD5HGWY9riqoJ_e!i$?*i1W-sKR##6X{eE%Y-sG7w+3E^rkc1#CW zp)Q6}D$UXA7DuXdM2*6AnCG?f0#1=})>fsFuy`CxZ5mFp`y55+v{}*MrkAu-6kxQWAI8r;R{8D5TyWsyLcGg-le1x%N=1wU zoZu_4e!NfNz}RU%Db@OcE~&i`4&r5Gz?*8{>a9x579nIUq)a;o=TeRTPlH;Yn=w9PnrYQBwES9l-w1 zb2jyr%`}^3;qF9oWO#1?z65(sJScM5;LOx1X>aCF7ryQ-K7bvVD4Y=ljz?o*VodV1 zQgLaHMg0N}=$1Udc`FP_A3?)XBD64c=?9|;kMMk8PM}0a4+9pX>yRzj;f-ZDln?j| zgBx(^oEfy*8C;;%q0yiG7n)!jfizZ0J-)C&#&SDk<}3%Nc;*@Wi}Bx}!KEP`vq&9Z z1V}*WIvSmtAW+anfEt5LS&KCT7LY@2Qc=Ub7{gL!QC*zWxYv9%d$ju!Lp5>3o&4Q^ zSd~?SkxJ;LyuCBVyR<$MY$HareY%5aCg{1M&K} zgWXWmqRXXSDFD_olbQ!x31V_j0Owv&Y3yW$Zf#^-f+2W?-qGau(#!yqZh-bMJA-Z+ zJztlBqdC38{;%Xuz>ER<`$vqX zBZsYqz`NY8XO%Q04@9?JK(Zng0(r;$lQO7?)cGgBMWX_KTSart;Fd@`bl6%J7(eW~Sy z)Y+K|jHj~+RM1;hV9w?@jU0Q&9dGAsy!c{RB0vTjIg3e&=&c%@TM1E#H??(yF;Q|IpsGtqnT|_zb&no1wu$f?7SE^@yw!t@-=1@S%unjpX7M);mX7Ov>V2ZGn z+x%_0uvlicX8m9=4UpPY?OFA0-?tt7UP;a%oD#j(%Ty|Q5?@zJ#JFuJ?5f}RzW35_ zUV_TvkTE23D+NYYODazNqBf5p&K8!{+rt5eO-Vt(Sgq{~6K>!dEk1XfCa2Y-;G!R2zrh&fz)me%OF8+=BaPY>6gFaLUyN~C^w=Wk&t zR%)2#u6Ua0%2v;3kFy@C1sdD-oVS3CHK%4?>NWV3A}20`3+An{XZ9i3W^9UpzqbHtdJ6KmsIgxV)kp-8xqYW-Zf5 zuA!PK+I-$1XbUG6hoWQMDJk*j)(#o=%i`R1b1tf-AZVPg9k6e6#n zL`Tn{z*cYcwfAi^tQ-bx;Onb84_RGV zx%{%J+)x3gha?Cayu|t;XYYw~~@e{xMCCMAPY#UrKg?^6fAsY=Y={GfL?YGe2)4 zl#lTPDH}IaoK%@A=xPN+b<6I2s-7Kp-$$eJhv7r{C(wTdoHwCJuj4O=(fSo}%KvWw zN5H_*$wA-H>Azu(%pbipUT2=O@@X@IIfwOoaem5DcEp5=TE~DI33DaETWk+;HkKaw z_h69T$mp`-I8T6Y6a(jE_GtmYB8>;DN9^^sSte>9_pifp0Q5B)zQb2+%AwgMEX>;E zH`-5RvJE@2Gu{KRmxEM1k4lBec;ocKa1Br*NtC}Y@0jx4%(moGpu%A8nLk2b8RcF- z1TLimf^s*KN?CA&1Rc*(a$Aat6hr`}#wl_qz*H3Tt<}R+FUK`psRfE%1z%?VrF|yb{OZzPa+tC`&uacsS_zq1< zM)g}I>XK+$CBZ)9{G5mi`1iBc){67TWJQGYnAQ(xKUa8C)ro7C&`s!nX}DZ5RueR} zqDo(ej>kvdi!{AkF|`u2F66ExKbT=b18+6GVr(_E)6<_cAy0f?QME^A!CWa84!NKh zg!1}5Ge+}z$6e(`EYF{4uo~;EUEIP$m2(ePNzE)hDY0aajHe3ertVl53(DR3 zCOTSMAku7?zBeXam2`w-g$t zOy7J?tN!5NY-^P2jr&F1EJVHVW?pA<#SDL4|0#!28fG9KchU_I`b9w$z8Vuv{x@1B zZ0>0IhYK^eakh1K{98%tpWck*k37&OFpOJ5FU>a&y=7`FQaH zGDK>i>cCveOwZy@!wOz-FICM5tzUy~BXxBR3T@T#I;#EP-QI1w56$rCG7TfR^7I;n zlBRbM8jtLtP>=KN9m-yvMU`X|#DhYG49ddons!caUw&IdmVY*YLRa+n` zCVgWk5n?zf%NqR+_DCCQXo?2)5+e6B3l-A$t(jN=Sb;)U$gmD$PzhD81pEjDA0*d~ zg-6Jju-_{iKV@qRQ0T-{>$DPAKgcmrN*i@mk5yIiv!}*Kf<1gWSEjcmh$xGBBBQv* z>Xsm-Jz{>_G@wal>56C@rJCmXTJ%H9O^{5f8^&_|Q2#(l&{eUfXWY@+F#m7H}fTnuTR&P=} z+96;|=x%t&g$V2!V?$<0kKjHtW=^zwR=OdUJ#CZ?EJ6szD_5k=E_zF&uE%n%2fGE| z<4{PfL&+g5M6%4n-0BGeehNtm<)>^MTC@sJ!ba#bafH*HsYJH)bTi|Ewvr_IWZgkS z6%6kF_0th_d94x@=302+6c*{t$f{LTVie;8@cFhI6xm*E)aZ)rt_V%sEN^6LVDI)n zAvW{N7+`dv$<@E$)dBj;ApSST@So5s^2P0(^_^@T{)5k{N-5!}pnO~~FvG_GLfyh3 zrlMlz5e=0DK{_mz2vWlc)mva;rgch5Eo#I5$_Ue0CQEn&oGFV?G>kd??rZE8eY?oa z$^zE_DJUv?-E#cenep{}ynDO9wDkdK36g;&^yS9n&YoBYU1rYcXf!12)ZSu@tT-X5 z4>Gm-bv_|mr^oF^Y|2|?w_M9ybhakz(Ato;&hFq5WXg@z2Sf`W=|!B%45c+%I2mj* zgd74YN;j<}sXtxsFq&}ajtm4_zNFfF^?;*9pybGt%Jt)?QhL=91|~g(6H{hZ%V;*g z(;SuhmW*$k?^7DT>(Eph<3g^27_b3W8tB@Xy)P;H8c?Xf0C(Ve1uF`!fchEHHpc?I2u39UJY3f;f;}$T0e07YmvP8qI;QWw ziO_PYMO=Brq41!mw5n1rr0qTgy0bvdo}7(h*R?^G9bv_C&Ypg9Zuro@y4R%8t1`gT_^wE9){s z?T7irGU1@Sczl*JoQyM^#C_Q2@ZsPv!R?|u=P>reQ)tLZYS?;1;dTQisQ38H`N#9# z=oapvUz7-qeVG;ZMP3=0SgoMOtUWqoQgsB=wE1tFbPczRrE6B#a-t+|YolrZZo=#C z*;+b5GOsG%QNc)z`33;%Ho`;7x3nBu>{V-J+f239W+Pv3ZHr3`||1Ash*Q@N$$ErS$o&A&0WHVeIQ6Gp$3x)O4 zRR!NN@DeU0j0(X;U}ZP9f|O3p^g`EBm4w$LqNRJ21 zaws#-%+vRONPDLsTcB)9^rUUuwsq3BZQJ%q+qP}nwr$%!sh8DV-CegLUPpD@kDVX; zZ)dEv<{X$~HnNg3LEjR6BTAjQ)~HAjyEC#g6@Kx1zHEBVyiL3II9~tF`1bh%`IB*5 z7W}8TE;2#(2&dx|!)9B9UQvhkCS7FNNl|^^$9O7ZLSW2gvpuQ~H>+ls6{$|mX>%^a zq*>n(e1)^yPS95E*2q{!Ky0^R+<}`(>rowdSN;XeY+I*?%K!<8C2}0~9;r0e;6Q=- z7dU->xzgH=WChu+-KDwbBc17TO=;bc#P;|_#gID3$-rx!gzh11zSabUiUu}b> z0Dj}nSULl6os1}w0VXSWa=`(p6`I*Jd$XyU%bkm(d~VYNA(-L9gURs4Mf!ZL zpx*KLC`B-=lf;q}gxBZ5yzV=KZrS{4dhDg^#cB}lvPj+`#AZF@P(|#vS$wqur%!m! z9100xtzpxG1+%z>?R*^wF9LYQCa{7fa&jdn$(UO~e`#f-sSzqUrE(so2MFsjT|^!p z5a#ouR1(7ZYJ@kSJZTfJ>1cjO`NRJ2#5i;4y+6U9mq^ZvoUr@w@^-%K<7f`YrEz47 z(peRWKuoQ2TOq4W;f^LM3S5;3teY~(#aC?+=3};!Lw@BL>29E+^u_v(#i{Ih2jthg zIulIV0}0+1V=>pq6a)36&5Sv8@ zHfQ((glg0CPBGD*MdA)z`iBzb-OxA-qpyKnBpZs}o@z2_oF<2hOPQ3e`*msM#}ghY zRTeTKLGA|Bu}U>Ie!a=lBKsjB#w>+#3vnS+v}~rxqRRP^+$bQnowu*6ue;#(#>Az4 zS~7glP^UISJ&Zw10ClQSl>z~sBqdZ&qM54Y^X|J%swh!k&QFsT?B6vn&PYBHU@RZi z%@Sx4*=Z|xp1%i)?2Rh!F`6?M<=rO-%`x32ZV|HWxIgmZlZY0{aS!sgPzDCv1YGXO zF0PSzSE?b}_9<|Dd-2Lt3*_jpsBb2hl37zf2WqFh3^ zoyA`0F5iV)smsrlIgPB`1_!TD4QWrbMYEA4q?b2iN0g`oR3~nLwsij*P_Z8!)tMfd zNW28RId_AzO~9y7)7%JDHJ>+RTG9pt!+Ll2eZdr*xEWPjr-<7TOs3AXPMLqQ!I0VQ zo2W?-j=A}o_*DtF(R@}OD1HAkdc5w2T)tfwrOhPP1P**SLYsrR0~mTwaVW~@n_-Tz zPuX`ee8~8C=w6wlH9Y*Cdz7i+jpDmP#XAMAkHdP~7G~?=4yRG4KD4WS^X{2ZclfvO zx@Oh|G|zGD+SrOa{)0`!rE0hR*R)=Q2S-fwSfSeRGzxJ5`!(GvPH)QTsZM_sBA*;U zs|vsEo^9qW8-g5FGoxKN|4W`UfJ9=z-#>?^C$As`RVTbgYzHY)N2nSZ@S#2-IG8p? zemmVf$38=d@Wz|nB+xzzQ{4IY*vbT~DJx2XLZ9%xHI!E2F7?EHw7~BHo<?9{b@ zI*eU;u6DUJjs9F9ioY4w8~iCa+MC!W_ry6aPou1?BdGTl%f4LRCbQQQte~hOJhX=^ zo%lX;-o6@)HrLi=A`U4Ed#_c-3LzXblMP$5S3KdOnI4c1%@IQwhUOTyhg=PD$&?j< zq~h#83jsTgePL3@0_h_NMFBk8FmNRfTfnx$C+N9J?eKgCx?bK5$ZIqXDaRbC0CyCT z^d+Rl_KN&$A^6*KUO0TCGX%Y^Kat@wM+Oq^L{skA-*|C+(|K2@_h#;T>}P4gW+W!g zo)@M`fA`b|qV4;Z=tF#~^;e)7VX9usAcXnx@PMV3Owy~vDsne>QG(@(*p@*bo#tSV z3B00#Xo0@Mn-&(kutKt9|JI~iah+B<(g0-~_%M0n8R>mM6L&I28I{rHMOZ!u2@@gc z7OYSz?R^h#aM<$6<$Ic?%mX{Hej;?HrJT&gBMxn_SPJP*h`Fr;MAw@^c@3OF3UsEO zfBcs`mVdzD%m>G^WHF(R`rcG4dfc z&b`9Wdcslty!i-CR_nb0o7wA03f;BR<5~i>(Y|%8tozay2|h3z-CbjeqhN92qQ@}U zLYd@>HI#w{T{S7WXjpb1%uk^-t~umTrBJ~LU7cc?vGCNSV4Vf;>&aoX?_OZI zUfk1B1szhOz4A38(;WhWR! z&8PLp9>soe&_Y2N5OTn7tkIpLHhps|Uw~b({t(@xq`ITHH&4MY5MlqoHUn3Fb%hI{ zM3^h9EpeGVbyyGst`y3f1ka79Md`OdIze7XwT~XVCm8hF*RWDL*XFI`kfW0DoB>B= z(S7#b0LSN~mW(r^iL%jcs(x9HP+ozj&h>8f>K_^_&}|~wn44yt!$ zCU5l1Pr9X^AYPQvkfKx-o(tp9GFgkl3^#K=ok%g?1qt|17&ao}NTODi zpA+cOs+lK48~|kd2{E=J)HHCuLH-XaUUxJU<8BWUNBvPc)_(4W;(zOI7#ld7$~rsQ zIsZHNnDtLSs2C(U`A9`bNS!BW9mB5?G1tF{TdFw zfMss*)hN<;Y|zc5J>Nn6Pe|Gp$3xbQ*U4ns+ug+i+AqUYHhBG1I=AQ}Hyix6o7IZ` zc;gYYPI9k`Q4(DW&miTAC$Er{D>S3ZR~>#}zY|R+gCY%$(s2o8+Aju7GriOeHe(Z# zSRT5MBg4=ncl?q>r~x|{wn<4iW-tFd^LZC*_bh^RsUr-`;;#HqqHt6s&~!sRGnTnf z(%|RHtMGSaQ{mSMAtH1{^_t!Z_v;M{989c3BrZL*)ud=`w5Y^ks%~(8=#zNQai*l0 z0xWJ&SVripzPUkyN5)6qJ^pMbR8#QSC&0E*s0sm4$$b1vmOWFaH{3FGQK`p0azR<~ zQJlCo^k~CgK3>5Q#qQxMMpsFdYj^x0!+l^G#PJG=;OolmW^T*57VWeI;>9$2yKumd z19I~QX62@dL?Nc>*)kKRwxhc*cF;Hlur$(gBbNqIwd4lUV1|CZ_(S6j1SRy6eCKIO ze@D`3!$fxXBEn5VL0t#drXZ?Fp1DXUXerU|LToxkNgFhGQNSbjr9t-7(TpP19V7PG z&2xcO%U1nA?JbrWoN29Ph-{SON-k$JzNp*r%bA6aX(vgw<{jiu=Iz3L{f5qi1mzb! zsUA5(Lk=!uNA>3kJBuoVhuN49oCwj^)hTR&XNHEUEOC5jTM?P6Pf+{KRfuO>*Y}a+ zVbF9hz9cQbIX$NkfeP6rY$*%)XCS6v9%W^rrx-M(3G-j}&tjNY!BQ_8!*ipKS+CZ_ za6$F4=47ZEqD8k#=@=4gPXZ+M>IM80Ij%(%b(f ziXT@3;;$T3tBS^Fr?G5R7$}^FU&2HjEZ=v|584JsS|}7aV^@noIhXUr7?0)@q%z@! z7&V)Ozf6`nZARsgQc2=tp8Iqmnjy88_(;%goZg5dxX7aKLC#a2RP#8cYPW3d=nng1 z?jMTl=+TWfJpBdwf3D#_1mi^CZB?oAxNLta(#ZG9bODTb1}O<&o?I>;E+7E1s#u9YlARIvkLhn*UElAwpTSxdKvF3x^z6YE?Y5Xeuk4w3<mc+RRv|+&0!0ZbQxKWqU1R8~ddZUZlS(?_glX`fVL_Rx@=;=@2+j-8x zrDw|SDSJL&O0T3@4HLpGn3u~?Gl-*mUf3t-*I$kvh-kG!+UFQN6bahvr2LHW`qq%# zgYW=h2xP*v-m|*{wGrx+iVdwN+&N;v7N z<6V@$AS6QxMI19-AWh)&SUv%nNyqZ%Ce5Nzc?q86gC`fzGtlFT88E8RV&nMEMN>D) z)Z~a2IS1FOmRcfG-CuC$M%8cdfhki9A=JaAGNfVKjQ6)^qVph`bBia`n>JA&v z+Z*Q}fXzd$sh)~KR*MI%7(Z>~Ik6ME)nAMeV4w9|{zOU?TV)BDRv%ME}QA58>o zFbUbCH7_*bP|-~_l%{((awkdQ)_!=6TV8_=Sl(mX$(Q&r3+{#rlrG~1vf+Sk~f=ynoY|D5Ogr+jcbATNN~{3!z;i@{cBv_4P5t_bqtv0vsdn5 zdMs+RVJtz%SeF`gH6ya*!%v1{3&qw$Y><9tVOkZ0Gt)B*-ugGy_K`cGv9R0TfUx@o z|74e0{dg~GX#Ka^jB3TOJU237YUQ$javin}`E}*a9u|cC8w>>^B6@id&|Qm@t;&t! zkqNGGq=~#fx;4>kKYBPc+08?#xTD!roFI4PqIS7dshK!?{}%F3PE}5WUcfmnzCrh~ z;qdG%vW(i}Z#qWo{VEkjMVS_V@REr11r&6n;Jaqd!nq4Sx8LEYswZDl^SXb%VvjSu z9AR8(b}5sAxjS|Y+i6ZQB-rh1-7is0Nc-)k`Y|$#)>!-1IQN??z_=f$pnPOj#%@<$ zda}HEb6hlsz>~7_@u;^9KCi{cW2JmiG#m@3<|zugTJAC5#<|pbx

69<36pfV>-B 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 mALPED~ye Date: Fri, 11 Mar 2016 08:00:08 +0100 Subject: [PATCH 12/12] add my email address --- telemetryReaderForAndroid/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telemetryReaderForAndroid/package.json b/telemetryReaderForAndroid/package.json index 013f766..95ad410 100644 --- a/telemetryReaderForAndroid/package.json +++ b/telemetryReaderForAndroid/package.json @@ -6,7 +6,7 @@ "author": "Michael Gardner (http://blog.itsnotfound.com/)", "contributors": [ "Michael Gardner (http://blog.itsnotfound.com/)", - "David Leuenberger" + "David Leuenberger " ], "repository": { "type": "git",