X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosui%2FAltosConfigUI.java;h=eddb223ffda155a942facc12b87f05d7d24114ff;hb=97663f922e236f4ee7bd08277ca80d419b5cd10f;hp=c8ec06d26fc18495981735434939f0e75af8cbec;hpb=d8ebb83e64d66fa159e75aa560d39d80bb6d9d04;p=fw%2Faltos diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index c8ec06d2..eddb223f 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -43,6 +43,7 @@ public class AltosConfigUI JLabel serial_label; JLabel main_deploy_label; JLabel apogee_delay_label; + JLabel apogee_lockout_label; JLabel frequency_label; JLabel radio_calibration_label; JLabel radio_frequency_label; @@ -60,6 +61,7 @@ public class AltosConfigUI JLabel serial_value; JComboBox main_deploy_value; JComboBox apogee_delay_value; + JComboBox apogee_lockout_value; AltosFreqList radio_frequency_value; JTextField radio_calibration_value; JRadioButton radio_enable_value; @@ -84,6 +86,10 @@ public class AltosConfigUI "0", "1", "2", "3", "4", "5" }; + static String[] apogee_lockout_values = { + "0", "5", "10", "15", "20" + }; + static String[] flight_log_max_values = { "64", "128", "192", "256", "320", "384", "448", "512", "576", "640", @@ -179,6 +185,7 @@ public class AltosConfigUI owner = in_owner; GridBagConstraints c; + int row = 0; Insets il = new Insets(4,4,4,4); Insets ir = new Insets(4,4,4,4); @@ -188,7 +195,7 @@ public class AltosConfigUI /* Product */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 0; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -197,7 +204,7 @@ public class AltosConfigUI pane.add(product_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 0; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -205,10 +212,11 @@ public class AltosConfigUI c.insets = ir; product_value = new JLabel(""); pane.add(product_value, c); + row++; /* Version */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 1; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -218,7 +226,7 @@ public class AltosConfigUI pane.add(version_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 1; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -227,10 +235,11 @@ public class AltosConfigUI c.ipady = 5; version_value = new JLabel(""); pane.add(version_value, c); + row++; /* Serial */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 2; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -240,7 +249,7 @@ public class AltosConfigUI pane.add(serial_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 2; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -249,10 +258,11 @@ public class AltosConfigUI c.ipady = 5; serial_value = new JLabel(""); pane.add(serial_value, c); + row++; /* Main deploy */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 3; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -262,7 +272,7 @@ public class AltosConfigUI pane.add(main_deploy_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 3; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -274,10 +284,11 @@ public class AltosConfigUI main_deploy_value.addItemListener(this); pane.add(main_deploy_value, c); main_deploy_value.setToolTipText("Height above pad altitude to fire main charge"); + row++; /* Apogee delay */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 4; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -287,7 +298,7 @@ public class AltosConfigUI pane.add(apogee_delay_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 4; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -299,10 +310,37 @@ public class AltosConfigUI apogee_delay_value.addItemListener(this); pane.add(apogee_delay_value, c); apogee_delay_value.setToolTipText("Delay after apogee before charge fires"); + row++; + + /* Apogee lockout */ + c = new GridBagConstraints(); + c.gridx = 0; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.NONE; + c.anchor = GridBagConstraints.LINE_START; + c.insets = il; + c.ipady = 5; + apogee_lockout_label = new JLabel("Apogee Lockout(s):"); + pane.add(apogee_lockout_label, c); + + c = new GridBagConstraints(); + c.gridx = 4; c.gridy = row; + c.gridwidth = 4; + c.fill = GridBagConstraints.HORIZONTAL; + c.weightx = 1; + c.anchor = GridBagConstraints.LINE_START; + c.insets = ir; + c.ipady = 5; + apogee_lockout_value = new JComboBox(apogee_lockout_values); + apogee_lockout_value.setEditable(true); + apogee_lockout_value.addItemListener(this); + pane.add(apogee_lockout_value, c); + apogee_lockout_value.setToolTipText("Time after boost while apogee detection is locked out"); + row++; /* Frequency */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 5; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -312,7 +350,7 @@ public class AltosConfigUI pane.add(radio_frequency_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 5; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -323,10 +361,11 @@ public class AltosConfigUI radio_frequency_value.addItemListener(this); pane.add(radio_frequency_value, c); radio_frequency_value.setToolTipText("Telemetry, RDF and packet frequency"); + row++; /* Radio Calibration */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 6; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -336,7 +375,7 @@ public class AltosConfigUI pane.add(radio_calibration_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 6; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -349,10 +388,11 @@ public class AltosConfigUI radio_calibration_value.setEnabled(false); pane.add(radio_calibration_value, c); set_radio_calibration_tool_tip(); + row++; /* Radio Enable */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 7; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -362,7 +402,7 @@ public class AltosConfigUI pane.add(radio_enable_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 7; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -373,10 +413,11 @@ public class AltosConfigUI radio_enable_value.addItemListener(this); pane.add(radio_enable_value, c); set_radio_enable_tool_tip(); + row++; /* Callsign */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 8; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -386,21 +427,22 @@ public class AltosConfigUI pane.add(callsign_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 8; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; c.anchor = GridBagConstraints.LINE_START; c.insets = ir; c.ipady = 5; - callsign_value = new JTextField(AltosPreferences.callsign()); + callsign_value = new JTextField(AltosUIPreferences.callsign()); callsign_value.getDocument().addDocumentListener(this); pane.add(callsign_value, c); callsign_value.setToolTipText("Callsign reported in telemetry data"); + row++; /* Flight log max */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 9; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -410,7 +452,7 @@ public class AltosConfigUI pane.add(flight_log_max_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 9; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -422,10 +464,11 @@ public class AltosConfigUI flight_log_max_value.addItemListener(this); pane.add(flight_log_max_value, c); set_flight_log_max_tool_tip(); + row++; /* Ignite mode */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 10; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -435,7 +478,7 @@ public class AltosConfigUI pane.add(ignite_mode_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 10; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -447,10 +490,11 @@ public class AltosConfigUI ignite_mode_value.addItemListener(this); pane.add(ignite_mode_value, c); set_ignite_mode_tool_tip(); + row++; /* Pad orientation */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 11; + c.gridx = 0; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -460,7 +504,7 @@ public class AltosConfigUI pane.add(pad_orientation_label, c); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 11; + c.gridx = 4; c.gridy = row; c.gridwidth = 4; c.fill = GridBagConstraints.HORIZONTAL; c.weightx = 1; @@ -472,10 +516,11 @@ public class AltosConfigUI pad_orientation_value.addItemListener(this); pane.add(pad_orientation_value, c); set_pad_orientation_tool_tip(); + row++; /* Buttons */ c = new GridBagConstraints(); - c.gridx = 0; c.gridy = 12; + c.gridx = 0; c.gridy = row; c.gridwidth = 2; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_START; @@ -486,7 +531,7 @@ public class AltosConfigUI save.setActionCommand("Save"); c = new GridBagConstraints(); - c.gridx = 2; c.gridy = 12; + c.gridx = 2; c.gridy = row; c.gridwidth = 2; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.CENTER; @@ -497,7 +542,7 @@ public class AltosConfigUI reset.setActionCommand("Reset"); c = new GridBagConstraints(); - c.gridx = 4; c.gridy = 12; + c.gridx = 4; c.gridy = row; c.gridwidth = 2; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.CENTER; @@ -508,7 +553,7 @@ public class AltosConfigUI reboot.setActionCommand("Reboot"); c = new GridBagConstraints(); - c.gridx = 6; c.gridy = 12; + c.gridx = 6; c.gridy = row; c.gridwidth = 2; c.fill = GridBagConstraints.NONE; c.anchor = GridBagConstraints.LINE_END; @@ -616,6 +661,14 @@ public class AltosConfigUI return Integer.parseInt(apogee_delay_value.getSelectedItem().toString()); } + public void set_apogee_lockout(int new_apogee_lockout) { + apogee_lockout_value.setSelectedItem(Integer.toString(new_apogee_lockout)); + } + + public int apogee_lockout() { + return Integer.parseInt(apogee_lockout_value.getSelectedItem().toString()); + } + public void set_radio_frequency(double new_radio_frequency) { int i; for (i = 0; i < radio_frequency_value.getItemCount(); i++) { @@ -636,7 +689,7 @@ public class AltosConfigUI product_value.getText(), serial_value.getText()); AltosFrequency new_frequency = new AltosFrequency(new_radio_frequency, description); - AltosPreferences.add_common_frequency(new_frequency); + AltosUIPreferences.add_common_frequency(new_frequency); radio_frequency_value.insertItemAt(new_frequency, i); radio_frequency_value.setSelectedIndex(i); } @@ -708,6 +761,8 @@ public class AltosConfigUI } public void set_ignite_mode(int new_ignite_mode) { + if (new_ignite_mode >= ignite_mode_values.length) + new_ignite_mode = 0; if (new_ignite_mode < 0) { ignite_mode_value.setEnabled(false); new_ignite_mode = 0; @@ -727,6 +782,8 @@ public class AltosConfigUI public void set_pad_orientation(int new_pad_orientation) { + if (new_pad_orientation >= pad_orientation_values.length) + new_pad_orientation = 0; if (new_pad_orientation < 0) { pad_orientation_value.setEnabled(false); new_pad_orientation = 0;