display minDeviationSlope
This commit is contained in:
parent
fe0376206e
commit
29b075e700
3 changed files with 38 additions and 1 deletions
|
@ -28,6 +28,8 @@ public class Config {
|
||||||
|
|
||||||
public static final boolean ALLPREFERENCES = !BuildConfig.NSCLIENTOLNY;
|
public static final boolean ALLPREFERENCES = !BuildConfig.NSCLIENTOLNY;
|
||||||
|
|
||||||
|
public static final boolean displayDeviationSlope = true;
|
||||||
|
|
||||||
public static final boolean detailedLog = true;
|
public static final boolean detailedLog = true;
|
||||||
public static final boolean logFunctionCalls = true;
|
public static final boolean logFunctionCalls = true;
|
||||||
public static final boolean logIncommingData = true;
|
public static final boolean logIncommingData = true;
|
||||||
|
|
|
@ -1281,6 +1281,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
|
||||||
boolean useCobForScale = false;
|
boolean useCobForScale = false;
|
||||||
boolean useDevForScale = false;
|
boolean useDevForScale = false;
|
||||||
boolean useRatioForScale = false;
|
boolean useRatioForScale = false;
|
||||||
|
boolean useDSForScale = false;
|
||||||
|
|
||||||
if (showIobView.isChecked()) {
|
if (showIobView.isChecked()) {
|
||||||
useIobForScale = true;
|
useIobForScale = true;
|
||||||
|
@ -1290,6 +1291,8 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
|
||||||
useDevForScale = true;
|
useDevForScale = true;
|
||||||
} else if (showRatiosView.isChecked()) {
|
} else if (showRatiosView.isChecked()) {
|
||||||
useRatioForScale = true;
|
useRatioForScale = true;
|
||||||
|
} else if (Config.displayDeviationSlope) {
|
||||||
|
useDSForScale = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showIobView.isChecked())
|
if (showIobView.isChecked())
|
||||||
|
@ -1300,8 +1303,10 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
|
||||||
secondGraphData.addDeviations(iobGraph, fromTime, now, useDevForScale, 1d);
|
secondGraphData.addDeviations(iobGraph, fromTime, now, useDevForScale, 1d);
|
||||||
if (showRatiosView.isChecked())
|
if (showRatiosView.isChecked())
|
||||||
secondGraphData.addRatio(iobGraph, fromTime, now, useRatioForScale, 1d);
|
secondGraphData.addRatio(iobGraph, fromTime, now, useRatioForScale, 1d);
|
||||||
|
if (Config.displayDeviationSlope)
|
||||||
|
secondGraphData.addDeviationSlope(iobGraph, fromTime, now, useDSForScale, 1d);
|
||||||
|
|
||||||
if (showIobView.isChecked() || showCobView.isChecked() || showDeviationsView.isChecked() || showRatiosView.isChecked()) {
|
if (showIobView.isChecked() || showCobView.isChecked() || showDeviationsView.isChecked() || showRatiosView.isChecked() || Config.displayDeviationSlope) {
|
||||||
iobGraph.setVisibility(View.VISIBLE);
|
iobGraph.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
iobGraph.setVisibility(View.GONE);
|
iobGraph.setVisibility(View.GONE);
|
||||||
|
|
|
@ -428,6 +428,36 @@ public class GraphData {
|
||||||
addSeriesWithoutInvalidate(graph, ratioSeries);
|
addSeriesWithoutInvalidate(graph, ratioSeries);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// scale in % of vertical size (like 0.3)
|
||||||
|
public void addDeviationSlope(GraphView graph, long fromTime, long toTime, boolean useForScale, double scale) {
|
||||||
|
LineGraphSeries<DataPoint> dsSeries;
|
||||||
|
List<DataPoint> dsArray = new ArrayList<>();
|
||||||
|
Double maxDSValueFound = 0d;
|
||||||
|
Scale dsScale = new Scale();
|
||||||
|
|
||||||
|
for (long time = fromTime; time <= toTime; time += 5 * 60 * 1000L) {
|
||||||
|
AutosensData autosensData = IobCobCalculatorPlugin.getAutosensData(time);
|
||||||
|
if (autosensData != null) {
|
||||||
|
dsArray.add(new DataPoint(time, autosensData.minDeviationSlope));
|
||||||
|
maxDSValueFound = Math.max(maxDSValueFound, Math.abs(autosensData.minDeviationSlope));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RATIOS
|
||||||
|
DataPoint[] ratioData = new DataPoint[dsArray.size()];
|
||||||
|
ratioData = dsArray.toArray(ratioData);
|
||||||
|
dsSeries = new LineGraphSeries<>(ratioData);
|
||||||
|
dsSeries.setColor(Color.MAGENTA);
|
||||||
|
dsSeries.setThickness(3);
|
||||||
|
|
||||||
|
if (useForScale)
|
||||||
|
maxY = maxDSValueFound;
|
||||||
|
|
||||||
|
dsScale.setMultiplier(maxY * scale / maxDSValueFound);
|
||||||
|
|
||||||
|
addSeriesWithoutInvalidate(graph, dsSeries);
|
||||||
|
}
|
||||||
|
|
||||||
// scale in % of vertical size (like 0.3)
|
// scale in % of vertical size (like 0.3)
|
||||||
public void addNowLine(GraphView graph, long now) {
|
public void addNowLine(GraphView graph, long now) {
|
||||||
LineGraphSeries<DataPoint> seriesNow;
|
LineGraphSeries<DataPoint> seriesNow;
|
||||||
|
|
Loading…
Reference in a new issue