summaryrefslogtreecommitdiff
path: root/micropeak
diff options
context:
space:
mode:
Diffstat (limited to 'micropeak')
-rw-r--r--micropeak/.gitignore13
-rw-r--r--micropeak/Info.plist50
-rw-r--r--micropeak/Makefile.am19
-rw-r--r--micropeak/MicroData.java49
-rw-r--r--micropeak/MicroDataPoint.java58
-rw-r--r--micropeak/MicroDeviceDialog.java2
-rw-r--r--micropeak/MicroDownload.java4
-rw-r--r--micropeak/MicroExport.java4
-rw-r--r--micropeak/MicroFile.java4
-rw-r--r--micropeak/MicroFileChooser.java4
-rw-r--r--micropeak/MicroFrame.java2
-rw-r--r--micropeak/MicroGraph.java146
-rw-r--r--micropeak/MicroPeak.java22
-rw-r--r--micropeak/MicroRaw.java4
-rw-r--r--micropeak/MicroSave.java4
-rw-r--r--micropeak/MicroSerial.java2
-rw-r--r--micropeak/MicroStats.java41
-rw-r--r--micropeak/MicroStatsTable.java35
-rw-r--r--micropeak/MicroUSB.java2
19 files changed, 279 insertions, 186 deletions
diff --git a/micropeak/.gitignore b/micropeak/.gitignore
index fc99b31c..ab80492b 100644
--- a/micropeak/.gitignore
+++ b/micropeak/.gitignore
@@ -1,6 +1,19 @@
*.jar
Manifest.txt
+Manifest-fat.txt
classes
*.stamp
micropeak
micropeak-test
+micropeak-jdb
+micropeak-windows.log
+MicroPeak-Linux-*
+MicroPeak-Mac-*
+MicroPeak-Windows-*
+*.dll
+*.dylib
+*.so
+linux
+macosx
+CDM*.exe
+FTDI*.dmg
diff --git a/micropeak/Info.plist b/micropeak/Info.plist
new file mode 100644
index 00000000..7837f992
--- /dev/null
+++ b/micropeak/Info.plist
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+ <key>CFBundleName</key>
+ <string>MicroPeak</string>
+ <key>CFBundleVersion</key>
+ <string>1.1.9.3</string>
+ <key>CFBundleAllowMixedLocalizations</key>
+ <string>true</string>
+ <key>CFBundleExecutable</key>
+ <string>JavaApplicationStub</string>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleIdentifier</key>
+ <string>org.altusmetrum.micropeak</string>
+ <key>CFBundleSignature</key>
+ <string>Altu</string>
+ <key>CFBundleGetInfoString</key>
+ <string>MicroPeak UI version 1.1.9.3</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleIconFile</key>
+ <string>MicroPeak.icns</string>
+ <key>Java</key>
+ <dict>
+ <key>MainClass</key>
+ <string>org.altusmetrum.micropeak.MicroPeak</string>
+ <key>JVMVersion</key>
+ <string>1.5+</string>
+ <key>ClassPath</key>
+ <array>
+ <string>$JAVAROOT/micropeak.jar</string>
+ </array>
+ <key>Properties</key>
+ <dict>
+ <key>apple.laf.useScreenMenuBar</key>
+ <string>true</string>
+ </dict>
+ <key>VMOptions</key>
+ <array>
+ <string>-Xms512M</string>
+ <string>-Xmx512M</string>
+ <string>-Dosgi.clean=true</string>
+ </array>
+ </dict>
+</dict>
+</plist>
diff --git a/micropeak/Makefile.am b/micropeak/Makefile.am
index 06eb3115..d45ecab9 100644
--- a/micropeak/Makefile.am
+++ b/micropeak/Makefile.am
@@ -44,10 +44,10 @@ LIBALTOS= \
altos.dll
ALTOSLIB_CLASS=\
- AltosLib.jar
+ altoslib_$(ALTOSLIB_VERSION).jar
ALTOSUILIB_CLASS=\
- altosuilib.jar
+ altosuilib_$(ALTOSUILIB_VERSION).jar
# Icons
ICONDIR=$(top_srcdir)/icon
@@ -74,16 +74,20 @@ all-local: micropeak-test micropeak-jdb $(JAR)
clean-local:
-rm -rf classes $(JAR) $(FATJAR) \
- $(LINUX_DIST) $(MACOSX_DIST) windows $(WINDOWS_DIST) \
+ MicroPeak-Linux-*.tar.bz2 MicroPeak-Mac-*.dmg MicroPeak-Windows-*.exe \
$(ALTOSLIB_CLASS) \
$(ALTOSUILIB_CLASS) \
- $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) Manifest.txt \
- micropeak micropeak-test macosx linux windows
+ $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) Manifest.txt Manifest-fat.txt \
+ micropeak micropeak-test micropeak-jdb macosx linux windows micropeak-windows.log
LINUX_DIST=MicroPeak-Linux-$(VERSION).tar.bz2
MACOSX_DIST=MicroPeak-Mac-$(VERSION).dmg
WINDOWS_DIST=MicroPeak-Windows-$(VERSION_DASH).exe
+MICROPEAK_DOC=$(top_srcdir)/doc/micropeak.pdf
+
+DOC=$(MICROPEAK_DOC)
+
FAT_FILES=$(FATJAR) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS)
LINUX_FILES=$(FAT_FILES) libaltos.so $(FIRMWARE) $(DOC)
@@ -93,7 +97,7 @@ MACOSX_DRIVER_URL=http://www.ftdichip.com/Drivers/VCP/MacOSX/FTDIUSBSerialDriver
MACOSX_DRIVER=FTDIUSBSerialDriver_v2_2_18.dmg
MACOSX_INFO_PLIST=Info.plist
MACOSX_README=ReadMe-Mac.rtf
-MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(MACOSX_DRIVER) $(MACOSX_README)
+MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(MACOSX_DRIVER) $(MACOSX_README) $(DOC)
$(MACOSX_DRIVER):
wget $(MACOSX_DRIVER_URL)
@@ -104,7 +108,7 @@ WINDOWS_DRIVER=CDM20824_Setup.exe
$(WINDOWS_DRIVER):
wget $(WINDOWS_DRIVER_URL)
-WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(top_srcdir)/telemetrum.inf $(WINDOWS_ICON) $(WINDOWS_DRIVER)
+WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(DOC) $(WINDOWS_ICON) $(WINDOWS_DRIVER)
if FATINSTALL
@@ -228,6 +232,7 @@ $(MACOSX_DIST): $(MACOSX_FILES)
mkdir macosx
cp -a MicroPeak.app macosx/
cp -a $(MACOSX_README) macosx/ReadMe.rtf
+ cp -a $(DOC) macosx
cp -p Info.plist macosx/MicroPeak.app/Contents
cp -p $(MACOSX_DRIVER) macosx
mkdir -p macosx/MicroPeak.app/Contents/Resources/Java
diff --git a/micropeak/MicroData.java b/micropeak/MicroData.java
index 71919ddb..4c0ed4c3 100644
--- a/micropeak/MicroData.java
+++ b/micropeak/MicroData.java
@@ -20,7 +20,8 @@ package org.altusmetrum.micropeak;
import java.lang.*;
import java.io.*;
import java.util.*;
-import org.altusmetrum.AltosLib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
class MicroIterator implements Iterator<MicroDataPoint> {
int i;
@@ -56,7 +57,40 @@ class MicroIterable implements Iterable<MicroDataPoint> {
}
}
-public class MicroData {
+class MicroUIIterator implements Iterator<AltosUIDataPoint> {
+ int i;
+ MicroData data;
+
+ public boolean hasNext() {
+ return i < data.pressures.length;
+ }
+
+ public AltosUIDataPoint next() {
+ return new MicroDataPoint(data, i++);
+ }
+
+ public MicroUIIterator (MicroData data) {
+ this.data = data;
+ i = 0;
+ }
+
+ public void remove() {
+ }
+}
+
+class MicroUIIterable implements Iterable<AltosUIDataPoint> {
+ MicroData data;
+
+ public Iterator<AltosUIDataPoint> iterator() {
+ return new MicroUIIterator(data);
+ }
+
+ public MicroUIIterable(MicroData data) {
+ this.data = data;
+ }
+}
+
+public class MicroData implements AltosUIDataSet {
public int ground_pressure;
public int min_pressure;
public int[] pressures;
@@ -64,8 +98,8 @@ public class MicroData {
private double ground_altitude;
private ArrayList<Integer> bytes;
String name;
+ MicroStats stats;
-
class FileEndedException extends Exception {
}
@@ -178,6 +212,14 @@ public class MicroData {
return AltosConvert.pressure_to_altitude(pressures[i]);
}
+ public String name() {
+ return name;
+ }
+
+ public Iterable<AltosUIDataPoint> dataPoints() {
+ return new MicroUIIterable(this);
+ }
+
public Iterable<MicroDataPoint> points() {
return new MicroIterable(this);
}
@@ -339,6 +381,7 @@ public class MicroData {
crc_valid = crc == current_crc;
time_step = 0.192;
+ stats = new MicroStats(this);
} catch (FileEndedException fe) {
throw new IOException("File Ended Unexpectedly");
} catch (NonHexcharException ne) {
diff --git a/micropeak/MicroDataPoint.java b/micropeak/MicroDataPoint.java
index c58708e6..61faf794 100644
--- a/micropeak/MicroDataPoint.java
+++ b/micropeak/MicroDataPoint.java
@@ -17,19 +17,58 @@
package org.altusmetrum.micropeak;
-public class MicroDataPoint {
- public double time;
- public double pressure;
- public double height;
- public double speed;
- public double accel;
-
- public MicroDataPoint (double pressure, double height, double speed, double accel, double time) {
+import org.altusmetrum.altosuilib_1.*;
+
+public class MicroDataPoint implements AltosUIDataPoint {
+ public double time;
+ public double pressure;
+ public double height;
+ public double speed;
+ public double accel;
+ public MicroStats stats;
+
+ public static final int data_height = 0;
+ public static final int data_speed = 1;
+ public static final int data_accel = 2;
+ public static final int data_state = 3;
+
+ public double x() {
+ return time;
+ }
+
+ public double y(int index) {
+ switch (index) {
+ case data_height:
+ return height;
+ case data_speed:
+ return speed;
+ case data_accel:
+ return accel;
+ default:
+ return 0;
+ }
+ }
+
+ public int id(int index) {
+ if (index == data_state) {
+ return stats.state(time);
+ }
+ return 0;
+ }
+
+ public String id_name(int index) {
+ if (index == data_state)
+ return stats.state_name(time);
+ return "";
+ }
+
+ public MicroDataPoint (double pressure, double height, double speed, double accel, double time, MicroStats stats) {
this.pressure = pressure;
this.height = height;
this.speed = speed;
this.accel = accel;
this.time = time;
+ this.stats = stats;
}
public MicroDataPoint(MicroData data, int i) {
@@ -37,6 +76,7 @@ public class MicroDataPoint {
data.height(i),
data.speed(i),
data.acceleration(i),
- data.time(i));
+ data.time(i),
+ data.stats);
}
} \ No newline at end of file
diff --git a/micropeak/MicroDeviceDialog.java b/micropeak/MicroDeviceDialog.java
index 23195dac..533605d6 100644
--- a/micropeak/MicroDeviceDialog.java
+++ b/micropeak/MicroDeviceDialog.java
@@ -21,7 +21,7 @@ import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroDeviceDialog extends AltosDeviceDialog {
diff --git a/micropeak/MicroDownload.java b/micropeak/MicroDownload.java
index 28a7550d..6f0ca4f6 100644
--- a/micropeak/MicroDownload.java
+++ b/micropeak/MicroDownload.java
@@ -23,8 +23,8 @@ import javax.swing.*;
import java.io.*;
import java.util.concurrent.*;
import java.util.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroDownload extends AltosUIDialog implements Runnable, ActionListener {
MicroPeak owner;
diff --git a/micropeak/MicroExport.java b/micropeak/MicroExport.java
index 4b83bb4d..20a6f79a 100644
--- a/micropeak/MicroExport.java
+++ b/micropeak/MicroExport.java
@@ -23,8 +23,8 @@ import java.util.ArrayList;
import java.awt.*;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroExport extends JFileChooser {
diff --git a/micropeak/MicroFile.java b/micropeak/MicroFile.java
index 13d48380..cdd42e66 100644
--- a/micropeak/MicroFile.java
+++ b/micropeak/MicroFile.java
@@ -19,8 +19,8 @@ package org.altusmetrum.micropeak;
import java.io.*;
import java.util.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroFile {
diff --git a/micropeak/MicroFileChooser.java b/micropeak/MicroFileChooser.java
index 21ddb0f8..7a3423b4 100644
--- a/micropeak/MicroFileChooser.java
+++ b/micropeak/MicroFileChooser.java
@@ -20,8 +20,8 @@ package org.altusmetrum.micropeak;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroFileChooser extends JFileChooser {
JFrame frame;
diff --git a/micropeak/MicroFrame.java b/micropeak/MicroFrame.java
index 03e3af0c..ef8b24cc 100644
--- a/micropeak/MicroFrame.java
+++ b/micropeak/MicroFrame.java
@@ -21,7 +21,7 @@ import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroFrame extends AltosUIFrame {
static String[] micro_icon_names = {
diff --git a/micropeak/MicroGraph.java b/micropeak/MicroGraph.java
index 5aa127bb..50508a61 100644
--- a/micropeak/MicroGraph.java
+++ b/micropeak/MicroGraph.java
@@ -22,7 +22,8 @@ import java.util.ArrayList;
import java.awt.*;
import javax.swing.*;
-import org.altusmetrum.AltosLib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
import org.jfree.ui.*;
import org.jfree.chart.*;
@@ -34,146 +35,19 @@ import org.jfree.chart.labels.*;
import org.jfree.data.xy.*;
import org.jfree.data.*;
-class MicroSeries extends XYSeries {
- NumberAxis axis;
- String label;
- String units;
- Color color;
- XYItemRenderer renderer;
-
- void set_units(String units) {
- this.units = units;
-
- axis.setLabel(String.format("%s (%s)", label, units));
-
- StandardXYToolTipGenerator ttg;
-
- ttg = new StandardXYToolTipGenerator(String.format("{1}s: {2}%s ({0})", units),
- new java.text.DecimalFormat("0.00"),
- new java.text.DecimalFormat("0.00"));
- renderer.setBaseToolTipGenerator(ttg);
- }
-
- void set_enable(boolean enable) {
- renderer.setSeriesVisible(0, enable);
- axis.setVisible(enable);
- }
-
- public MicroSeries (String label, String units, Color color) {
- super(label);
- this.label = label;
- this.units = units;
- this.color = color;
-
- axis = new NumberAxis();
- axis.setLabelPaint(color);
- axis.setTickLabelPaint(color);
-
- renderer = new XYLineAndShapeRenderer(true, false);
- renderer.setSeriesPaint(0, color);
- set_units(units);
- }
-}
-
-public class MicroGraph implements AltosUnitsListener {
-
- XYPlot plot;
- JFreeChart chart;
- ChartPanel panel;
- NumberAxis xAxis;
- MicroSeries heightSeries;
- MicroSeries speedSeries;
- MicroSeries accelSeries;
+public class MicroGraph extends AltosUIGraph {
static final private Color height_color = new Color(194,31,31);
static final private Color speed_color = new Color(31,194,31);
static final private Color accel_color = new Color(31,31,194);
- static final private Color gridline_color = new Color(0, 0, 0);
- static final private Color border_color = new Color(255, 255, 255);
- static final private Color background_color = new Color(255, 255, 255);
-
- MicroData data;
-
- public JPanel panel() {
- return panel;
- }
-
- private MicroSeries addSeries(int index, String label, String units, Color color) {
- MicroSeries series = new MicroSeries(label, units, color);
- XYSeriesCollection dataset = new XYSeriesCollection(series);
-
- series.renderer.setPlot(plot);
- plot.setRangeAxis(index, series.axis);
- plot.setDataset(index, dataset);
- plot.setRenderer(index, series.renderer);
- plot.mapDatasetToRangeAxis(index, index);
- return series;
- }
-
- public void resetData() {
- heightSeries.clear();
- speedSeries.clear();
- accelSeries.clear();
- if (data != null) {
- for (MicroDataPoint point : data.points()) {
- heightSeries.add(point.time, AltosConvert.height.value(point.height));
- speedSeries.add(point.time, AltosConvert.speed.value(point.speed));
- accelSeries.add(point.time, AltosConvert.accel.value(point.accel));
- }
- }
-// accelSeries.set_enable(false);
- }
-
- public void setName (String name) {
- chart.setTitle(name);
- }
-
- public void setData (MicroData data) {
- this.data = data;
- if (data != null)
- setName(data.name);
- resetData();
- }
-
- public void units_changed(boolean imperial_units) {
- heightSeries.set_units(AltosConvert.height.show_units());
- speedSeries.set_units(AltosConvert.speed.show_units());
- accelSeries.set_units(AltosConvert.accel.show_units());
- resetData();
- }
-
- public MicroGraph() {
-
- xAxis = new NumberAxis("Time (s)");
-
- xAxis.setAutoRangeIncludesZero(true);
-
- plot = new XYPlot();
- plot.setDomainAxis(xAxis);
- plot.setOrientation(PlotOrientation.VERTICAL);
- plot.setDomainPannable(true);
- plot.setRangePannable(true);
-
- chart = new JFreeChart("Flight", JFreeChart.DEFAULT_TITLE_FONT,
- plot, true);
-
- ChartUtilities.applyCurrentTheme(chart);
-
- heightSeries = addSeries(0, "Height", AltosConvert.height.show_units(), height_color);
- speedSeries = addSeries(1, "Speed", AltosConvert.speed.show_units(), speed_color);
- accelSeries = addSeries(2, "Acceleration", AltosConvert.accel.show_units(), accel_color);
-
- plot.setDomainGridlinePaint(gridline_color);
- plot.setRangeGridlinePaint(gridline_color);
- plot.setBackgroundPaint(background_color);
- plot.setBackgroundAlpha((float) 1);
+ static final private Color state_color = new Color(3,3,3);
- chart.setBackgroundPaint(background_color);
- chart.setBorderPaint(border_color);
- panel = new ChartPanel(chart);
- panel.setMouseWheelEnabled(true);
- panel.setPreferredSize(new java.awt.Dimension(800, 500));
+ public MicroGraph(AltosUIEnable enable) {
+ super(enable);
- AltosPreferences.register_units_listener(this);
+ addSeries("Height", MicroDataPoint.data_height, AltosConvert.height, height_color);
+ addSeries("Speed", MicroDataPoint.data_speed, AltosConvert.speed, speed_color);
+ addSeries("Acceleration", MicroDataPoint.data_accel, AltosConvert.accel, accel_color);
+ addMarker("State", MicroDataPoint.data_state, state_color);
}
} \ No newline at end of file
diff --git a/micropeak/MicroPeak.java b/micropeak/MicroPeak.java
index 6f5e432c..57f17dbe 100644
--- a/micropeak/MicroPeak.java
+++ b/micropeak/MicroPeak.java
@@ -23,16 +23,18 @@ import javax.swing.*;
import java.io.*;
import java.util.concurrent.*;
import java.util.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroPeak extends MicroFrame implements ActionListener, ItemListener {
File filename;
MicroGraph graph;
- MicroStatsTable stats;
+ AltosUIEnable enable;
+ MicroStatsTable statsTable;
MicroRaw raw;
MicroData data;
+ MicroStats stats;
Container container;
JTabbedPane pane;
static int number_of_windows;
@@ -44,8 +46,9 @@ public class MicroPeak extends MicroFrame implements ActionListener, ItemListene
return mp.SetData(data);
}
this.data = data;
- graph.setData(data);
- stats.setData(data);
+ stats = new MicroStats(data);
+ graph.setDataSet(data);
+ statsTable.setStats(stats);
raw.setData(data);
setTitle(data.name);
return this;
@@ -231,15 +234,18 @@ public class MicroPeak extends MicroFrame implements ActionListener, ItemListene
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
+ statsTable.tell_closing();
Close();
}
});
- graph = new MicroGraph();
- stats = new MicroStatsTable();
+ enable = new AltosUIEnable();
+ graph = new MicroGraph(enable);
+ statsTable = new MicroStatsTable();
raw = new MicroRaw();
pane.add(graph.panel, "Graph");
- pane.add(stats, "Statistics");
+ pane.add(enable, "Configure Graph");
+ pane.add(statsTable, "Statistics");
JScrollPane scroll = new JScrollPane(raw);
pane.add(scroll, "Raw Data");
pane.doLayout();
diff --git a/micropeak/MicroRaw.java b/micropeak/MicroRaw.java
index 8546cffb..7337a1de 100644
--- a/micropeak/MicroRaw.java
+++ b/micropeak/MicroRaw.java
@@ -20,8 +20,8 @@ package org.altusmetrum.micropeak;
import java.awt.*;
import java.io.*;
import javax.swing.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroRaw extends JTextArea {
diff --git a/micropeak/MicroSave.java b/micropeak/MicroSave.java
index 7879ff90..5088b7d7 100644
--- a/micropeak/MicroSave.java
+++ b/micropeak/MicroSave.java
@@ -24,8 +24,8 @@ import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.*;
import java.util.concurrent.*;
import java.util.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroSave extends JFileChooser {
diff --git a/micropeak/MicroSerial.java b/micropeak/MicroSerial.java
index 15ef8582..376223f1 100644
--- a/micropeak/MicroSerial.java
+++ b/micropeak/MicroSerial.java
@@ -20,7 +20,7 @@ package org.altusmetrum.micropeak;
import java.util.*;
import java.io.*;
import libaltosJNI.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroSerial extends InputStream {
SWIGTYPE_p_altos_file file;
diff --git a/micropeak/MicroStats.java b/micropeak/MicroStats.java
index 90e9dd1f..99479cb4 100644
--- a/micropeak/MicroStats.java
+++ b/micropeak/MicroStats.java
@@ -18,8 +18,8 @@
package org.altusmetrum.micropeak;
import java.io.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroStats {
double coast_height;
@@ -150,6 +150,43 @@ public class MicroStats {
return descent_height() / descent_duration();
}
+ public static final int state_startup = -1;
+ public static final int state_pad = 0;
+ public static final int state_boost = 1;
+ public static final int state_coast = 2;
+ public static final int state_descent = 3;
+ public static final int state_landed = 4;
+
+ static final String state_names[] = {
+ "pad",
+ "boost",
+ "coast",
+ "descent",
+ "landed"
+ };
+
+ public int state(double t) {
+ if (t >= landed_time)
+ return state_landed;
+ if (t >= apogee_time)
+ return state_descent;
+ if (t >= coast_time)
+ return state_coast;
+ if (t >= 0)
+ return state_boost;
+ return state_pad;
+ }
+
+ public static String state_name(int state) {
+ if (state < 0 || state > state_landed)
+ return "unknown";
+ return state_names[state];
+ }
+
+ public String state_name(double t) {
+ return state_name(state(t));
+ }
+
public MicroStats(MicroData data) {
this.data = data;
diff --git a/micropeak/MicroStatsTable.java b/micropeak/MicroStatsTable.java
index cf30fcb7..145bb70e 100644
--- a/micropeak/MicroStatsTable.java
+++ b/micropeak/MicroStatsTable.java
@@ -19,10 +19,10 @@ package org.altusmetrum.micropeak;
import java.awt.*;
import javax.swing.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
-public class MicroStatsTable extends JComponent {
+public class MicroStatsTable extends JComponent implements AltosFontListener {
GridBagLayout layout;
class MicroStat {
@@ -35,6 +35,12 @@ public class MicroStatsTable extends JComponent {
}
}
+ public void set_font() {
+ for (int j = 0; j < texts.length; j++)
+ texts[j].setFont(AltosUILib.value_font);
+ label.setFont(AltosUILib.label_font);
+ }
+
public MicroStat(GridBagLayout layout, int y, String label_text, String ... values) {
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(AltosUILib.tab_elt_pad, AltosUILib.tab_elt_pad, AltosUILib.tab_elt_pad, AltosUILib.tab_elt_pad);
@@ -94,8 +100,20 @@ public class MicroStatsTable extends JComponent {
flight_time.set_values(String.format("%6.1f s", stats.landed_time));
}
- public void setData(MicroData data) {
- setStats(new MicroStats(data));
+ public void set_font() {
+ max_height.set_font();
+ max_speed.set_font();
+ max_accel.set_font();
+ avg_accel.set_font();
+ boost_duration.set_font();
+ coast_duration.set_font();
+ descent_speed.set_font();
+ descent_duration.set_font();
+ flight_time.set_font();
+ }
+
+ public void font_size_changed(int font_size) {
+ set_font();
}
public MicroStatsTable(MicroStats stats) {
@@ -129,6 +147,13 @@ public class MicroStatsTable extends JComponent {
String.format("%6.1f s", stats.descent_duration()));
flight_time = new MicroStat(layout, y++, "Flight Time",
String.format("%6.1f s", stats.landed_time));
+ set_font();
+
+ AltosUIPreferences.register_font_listener(this);
+ }
+
+ public void tell_closing() {
+ AltosUIPreferences.unregister_font_listener(this);
}
public MicroStatsTable() {
diff --git a/micropeak/MicroUSB.java b/micropeak/MicroUSB.java
index f56d81d4..3bd61470 100644
--- a/micropeak/MicroUSB.java
+++ b/micropeak/MicroUSB.java
@@ -19,7 +19,7 @@ package org.altusmetrum.micropeak;
import java.util.*;
import libaltosJNI.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altosuilib_1.*;
public class MicroUSB extends altos_device implements AltosDevice {