can read and isolate buffered data from raspberry
This commit is contained in:
parent
9c30a011e8
commit
55f4998f78
@ -1,13 +1,25 @@
|
||||
package com.example.aped.ui.plots;
|
||||
|
||||
import android.net.sip.SipSession;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import com.example.aped.MainActivity;
|
||||
import com.example.aped.R;
|
||||
import com.example.aped.communication.Communicator;
|
||||
import com.example.aped.utils.IXML;
|
||||
import com.example.aped.utils.XMLHandler;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Dictionary;
|
||||
import java.util.List;
|
||||
import lecho.lib.hellocharts.model.AxisValue;
|
||||
import lecho.lib.hellocharts.model.Line;
|
||||
@ -19,6 +31,10 @@ public class PlotFragment extends Fragment {
|
||||
|
||||
/** Include the MainActivity.*/
|
||||
private MainActivity mainActivity;
|
||||
/** List of all the devices with buffers. **/
|
||||
private List<String> bufferedDevices;
|
||||
/** Line Chart View that is displayed **/
|
||||
private LineChartView lineChartView;
|
||||
|
||||
/**
|
||||
* paul
|
||||
@ -32,35 +48,57 @@ public class PlotFragment extends Fragment {
|
||||
final ViewGroup container,
|
||||
final Bundle savedInstanceState) {
|
||||
this.mainActivity = (MainActivity) getActivity();
|
||||
this.bufferedDevices = getBufferedDevices(mainActivity.getXml());
|
||||
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_plot, container, false);
|
||||
LineChartView lineChartView = view.findViewById(R.id.test_plot);
|
||||
this.lineChartView = view.findViewById(R.id.test_plot);
|
||||
|
||||
String[] xAxisData = {"15:30", "15:31", "15:32"};
|
||||
int[] yAxisData = {1, 3, 2};
|
||||
|
||||
List yAxisValues = new ArrayList();
|
||||
List xAxisValues = new ArrayList();
|
||||
|
||||
Line line = new Line(yAxisValues);
|
||||
|
||||
for (int i = 0; i < xAxisData.length; i++) {
|
||||
xAxisValues.add(i, new AxisValue(i).setLabel(xAxisData[i]));
|
||||
}
|
||||
|
||||
for (int i = 0; i < yAxisData.length; i++) {
|
||||
yAxisValues.add(new PointValue(i, yAxisData[i]));
|
||||
}
|
||||
|
||||
List lines = new ArrayList();
|
||||
|
||||
lines.add(line);
|
||||
|
||||
LineChartData lineChartData = new LineChartData();
|
||||
lineChartData.setLines(lines);
|
||||
|
||||
lineChartView.setLineChartData(lineChartData);
|
||||
getBufferedValues(mainActivity.getDelivery(), mainActivity.getXml());
|
||||
mainActivity.getConfigurationHandler().setCurrentView(R.id.nav_plots);
|
||||
return view;
|
||||
}
|
||||
|
||||
private List<String> getBufferedDevices(IXML xml){
|
||||
List<String> returnList = new ArrayList<>();
|
||||
for (String deviceName : xml.getDeviceNames()){
|
||||
if (xml.getBufferSize(deviceName) > 0) {
|
||||
returnList.add(deviceName);
|
||||
}
|
||||
}
|
||||
return returnList;
|
||||
}
|
||||
|
||||
private void getBufferedValues(Communicator communicator, IXML xml){
|
||||
for (String deviceName : this.bufferedDevices){
|
||||
communicator.readBuffer(deviceName,response -> {
|
||||
try {
|
||||
JSONObject buffer = response.getJSONObject("buffer");
|
||||
for(String pin : (List<String>) (xml.getPort(deviceName)).get("pins")) {
|
||||
String valueString = buffer.getString(pin);
|
||||
valueString = valueString.substring(2,valueString.length()-2);
|
||||
String[] valueStringArray = valueString.split("', '");
|
||||
int[] values = new int[valueString.length()];
|
||||
for (int i = 0; i < valueStringArray.length; i++){
|
||||
values[i] = Integer.parseInt(valueStringArray[i]);
|
||||
}
|
||||
|
||||
//display data
|
||||
List yAxisValues = new ArrayList();
|
||||
for (int i = 0; i < values.length; i++){
|
||||
yAxisValues.add(values[i]);
|
||||
}
|
||||
Line line = new Line(yAxisValues);
|
||||
List lines = new ArrayList();
|
||||
lines.add(line);
|
||||
LineChartData lineChartData = new LineChartData();
|
||||
lineChartData.setLines(lines);
|
||||
this.lineChartView.setLineChartData(lineChartData);
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
Log.e("PlotFragment", "error while parsing JSON on READ BUFFER: " + e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user