added legend and random colors for lines
This commit is contained in:
parent
17f1278c20
commit
b0596010cf
@ -1,5 +1,7 @@
|
|||||||
package com.example.aped.ui.plots;
|
package com.example.aped.ui.plots;
|
||||||
|
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.ColorSpace;
|
||||||
import android.net.sip.SipSession;
|
import android.net.sip.SipSession;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@ -15,6 +17,7 @@ import com.example.aped.R;
|
|||||||
import com.example.aped.communication.Communicator;
|
import com.example.aped.communication.Communicator;
|
||||||
import com.example.aped.utils.IXML;
|
import com.example.aped.utils.IXML;
|
||||||
import com.jjoe64.graphview.GraphView;
|
import com.jjoe64.graphview.GraphView;
|
||||||
|
import com.jjoe64.graphview.LegendRenderer;
|
||||||
import com.jjoe64.graphview.series.DataPoint;
|
import com.jjoe64.graphview.series.DataPoint;
|
||||||
import com.jjoe64.graphview.series.LineGraphSeries;
|
import com.jjoe64.graphview.series.LineGraphSeries;
|
||||||
|
|
||||||
@ -23,6 +26,7 @@ import org.json.JSONException;
|
|||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class PlotFragment extends Fragment {
|
public class PlotFragment extends Fragment {
|
||||||
|
|
||||||
@ -34,6 +38,8 @@ public class PlotFragment extends Fragment {
|
|||||||
private GraphView graphView;
|
private GraphView graphView;
|
||||||
/** List of all the devices with buffers. **/
|
/** List of all the devices with buffers. **/
|
||||||
private List<String> bufferedDevicesSelected;
|
private List<String> bufferedDevicesSelected;
|
||||||
|
/** maximum value on X axis. **/
|
||||||
|
private int maxX = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* paul
|
* paul
|
||||||
@ -103,7 +109,14 @@ public class PlotFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void getBufferedValues(final Communicator communicator, final IXML xml) {
|
private void getBufferedValues(final Communicator communicator, final IXML xml) {
|
||||||
|
Random random = new Random();
|
||||||
for (String deviceName : this.bufferedDevices) {
|
for (String deviceName : this.bufferedDevices) {
|
||||||
|
int factor;
|
||||||
|
if(xml.getPort(deviceName).get("protocol").equals("PWM")) {
|
||||||
|
factor = 1;
|
||||||
|
} else {
|
||||||
|
factor = 100;
|
||||||
|
}
|
||||||
communicator.readBuffer(deviceName, response -> {
|
communicator.readBuffer(deviceName, response -> {
|
||||||
try {
|
try {
|
||||||
JSONObject buffer = response.getJSONObject("buffer");
|
JSONObject buffer = response.getJSONObject("buffer");
|
||||||
@ -111,7 +124,7 @@ public class PlotFragment extends Fragment {
|
|||||||
String valueString = buffer.getString(pin);
|
String valueString = buffer.getString(pin);
|
||||||
valueString = valueString.substring(2, valueString.length() - 2);
|
valueString = valueString.substring(2, valueString.length() - 2);
|
||||||
String[] valueStringArray = valueString.split("', '");
|
String[] valueStringArray = valueString.split("', '");
|
||||||
int[] values = new int[valueString.length()];
|
int[] values = new int[valueStringArray.length];
|
||||||
for (int i = 0; i < valueStringArray.length; i++) {
|
for (int i = 0; i < valueStringArray.length; i++) {
|
||||||
values[i] = Integer.parseInt(valueStringArray[i]);
|
values[i] = Integer.parseInt(valueStringArray[i]);
|
||||||
}
|
}
|
||||||
@ -119,15 +132,23 @@ public class PlotFragment extends Fragment {
|
|||||||
//display data
|
//display data
|
||||||
DataPoint[] dataPoints = new DataPoint[values.length];
|
DataPoint[] dataPoints = new DataPoint[values.length];
|
||||||
for (int i = 0; i < values.length; i++){
|
for (int i = 0; i < values.length; i++){
|
||||||
dataPoints[i] = new DataPoint(i, values[i]);
|
dataPoints[i] = new DataPoint(i, values[i] * factor);
|
||||||
}
|
}
|
||||||
LineGraphSeries<DataPoint> lineGraphSeries = new LineGraphSeries<>(dataPoints);
|
LineGraphSeries<DataPoint> lineGraphSeries = new LineGraphSeries<>(dataPoints);
|
||||||
this.graphView.addSeries(lineGraphSeries);
|
lineGraphSeries.setTitle(deviceName +":"+ pin);
|
||||||
this.graphView.getViewport().setMaxX(600);
|
lineGraphSeries.setColor(Color.rgb(random.nextInt(256), random.nextInt(256), random.nextInt(256)));
|
||||||
this.graphView.getViewport().setMaxY(100);
|
graphView.addSeries(lineGraphSeries);
|
||||||
this.graphView.getViewport().setXAxisBoundsManual(true);
|
if (maxX < values.length) {
|
||||||
this.graphView.getViewport().setYAxisBoundsManual(true);
|
maxX = values.length;
|
||||||
}
|
}
|
||||||
|
graphView.getViewport().setMaxY(100);
|
||||||
|
graphView.getViewport().setMaxX(maxX);
|
||||||
|
graphView.getViewport().setXAxisBoundsManual(true);
|
||||||
|
graphView.getViewport().setYAxisBoundsManual(true);
|
||||||
|
}
|
||||||
|
graphView.getLegendRenderer().setVisible(true);
|
||||||
|
graphView.getLegendRenderer().setBackgroundColor(Color.rgb(200,200,200));
|
||||||
|
graphView.getLegendRenderer().setAlign(LegendRenderer.LegendAlign.TOP);
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
Log.e("PlotFragment", "error while parsing JSON on READ BUFFER: " + e.getMessage());
|
Log.e("PlotFragment", "error while parsing JSON on READ BUFFER: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user