X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FAltosAscent.java;h=81b08d2c3aa7cae5ee67c6124dc90199d7b71ee1;hp=1d9af54679d4f637a82aadb7d32306eed069337d;hb=4ac7797d3efb9cc2d9fae88519f55e40b1050224;hpb=488a527267decece48e6682e0e0c7fc29cbed329 diff --git a/altosui/AltosAscent.java b/altosui/AltosAscent.java index 1d9af546..81b08d2c 100644 --- a/altosui/AltosAscent.java +++ b/altosui/AltosAscent.java @@ -19,7 +19,7 @@ package altosui; import java.awt.*; import javax.swing.*; -import org.altusmetrum.altoslib_2.*; +import org.altusmetrum.altoslib_3.*; public class AltosAscent extends JComponent implements AltosFlightDisplay { GridBagLayout layout; @@ -48,7 +48,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { show(); value.setText(s); } - + void show(AltosUnits units, double v) { show(units.show(8, v)); } @@ -122,7 +122,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { show(); value.setText(s); } - + void show(AltosUnits units, double v) { show(units.show(8, v)); } @@ -200,6 +200,13 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { } } } + + void hide() { + label.setVisible(false); + value.setVisible(false); + max_value.setVisible(false); + } + public AscentValueHold (GridBagLayout layout, int y, String text) { GridBagConstraints c = new GridBagConstraints(); c.weighty = 1; @@ -271,6 +278,17 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { Accel accel; + class Orient extends AscentValueHold { + void show (AltosState state, AltosListenerState listener_state) { + show(AltosConvert.orient, state.orient()); + } + public Orient (GridBagLayout layout, int y) { + super (layout, y, "Tilt Angle"); + } + } + + Orient orient; + String pos(double p, String pos, String neg) { String h = pos; if (p < 0) { @@ -285,7 +303,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { class Apogee extends AscentStatus { void show (AltosState state, AltosListenerState listener_state) { show("%4.2f V", state.apogee_voltage); - lights.set(state.apogee_voltage > 3.7); + lights.set(state.apogee_voltage >= AltosLib.ao_igniter_good); } public Apogee (GridBagLayout layout, int y) { super(layout, y, "Apogee Igniter Voltage"); @@ -297,7 +315,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { class Main extends AscentStatus { void show (AltosState state, AltosListenerState listener_state) { show("%4.2f V", state.main_voltage); - lights.set(state.main_voltage > 3.7); + lights.set(state.main_voltage >= AltosLib.ao_igniter_good); } public Main (GridBagLayout layout, int y) { super(layout, y, "Main Igniter Voltage"); @@ -342,6 +360,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { height.reset(); speed.reset(); accel.reset(); + orient.reset(); } public void set_font() { @@ -354,6 +373,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { height.set_font(); speed.set_font(); accel.set_font(); + orient.set_font(); } public void show(AltosState state, AltosListenerState listener_state) { @@ -375,6 +395,10 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { apogee.hide(); speed.show(state, listener_state); accel.show(state, listener_state); + if (state.orient() != AltosLib.MISSING) + orient.show(state, listener_state); + else + orient.hide(); } public void labels(GridBagLayout layout, int y) { @@ -410,13 +434,15 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay { * lon * height */ - labels(layout, 0); - height = new Height(layout, 1); - speed = new Speed(layout, 2); - accel = new Accel(layout, 3); - lat = new Lat(layout, 4); - lon = new Lon(layout, 5); - apogee = new Apogee(layout, 6); - main = new Main(layout, 7); + int y = 0; + labels(layout, y++); + height = new Height(layout, y++); + speed = new Speed(layout, y++); + accel = new Accel(layout, y++); + orient = new Orient(layout, y++); + lat = new Lat(layout, y++); + lon = new Lon(layout, y++); + apogee = new Apogee(layout, y++); + main = new Main(layout, y++); } }