+ callsign_value.setToolTipText("Callsign reported in telemetry data");
+ row++;
+
+ /* Flight log max */
+ 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;
+ flight_log_max_label = new JLabel("Maximum Flight Log Size (kB):");
+ pane.add(flight_log_max_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;
+ flight_log_max_value = new JComboBox<String>();
+ flight_log_max_value.setEditable(true);
+ 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 = row;
+ c.gridwidth = 4;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = il;
+ c.ipady = 5;
+ ignite_mode_label = new JLabel("Igniter Firing Mode:");
+ pane.add(ignite_mode_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;
+ ignite_mode_value = new JComboBox<String>(ignite_mode_values);
+ ignite_mode_value.setEditable(false);
+ 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 = row;
+ c.gridwidth = 4;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = il;
+ c.ipady = 5;
+ pad_orientation_label = new JLabel("Pad Orientation:");
+ pane.add(pad_orientation_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;
+ pad_orientation_value = new JComboBox<String>(pad_orientation_values);
+ pad_orientation_value.setEditable(false);
+ pad_orientation_value.addItemListener(this);
+ pane.add(pad_orientation_value, c);
+ set_pad_orientation_tool_tip();
+ row++;
+
+ /* Beeper */
+ 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;
+ beep_label = new JLabel("Beeper Frequency:");
+ pane.add(beep_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;
+ beep_value = new JComboBox<String>(beep_values);
+ beep_value.setEditable(true);
+ beep_value.addItemListener(this);
+ pane.add(beep_value, c);
+ set_beep_tool_tip();
+ row++;
+
+ /* Tracker triger horiz distances */
+ 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;
+ tracker_motion_label = new JLabel(get_tracker_motion_label());
+ pane.add(tracker_motion_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;
+ tracker_motion_value = new JComboBox<String>(tracker_motion_values());
+ tracker_motion_value.setEditable(true);
+ tracker_motion_value.addItemListener(this);
+ pane.add(tracker_motion_value, c);
+ row++;
+
+ /* Tracker triger vert distances */
+ 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;
+ tracker_interval_label = new JLabel("Position Reporting Interval(s):");
+ pane.add(tracker_interval_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;
+ tracker_interval_value = new JComboBox<String>(tracker_interval_values);
+ tracker_interval_value.setEditable(true);
+ tracker_interval_value.addItemListener(this);
+ pane.add(tracker_interval_value, c);
+ set_tracker_tool_tip();
+ row++;
+
+ /* Pyro channels */
+ c = new GridBagConstraints();
+ c.gridx = 4; c.gridy = row;
+ c.gridwidth = 4;
+ c.fill = GridBagConstraints.HORIZONTAL;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = il;
+ c.ipady = 5;
+ pyro = new JButton("Configure Pyro Channels");
+ pane.add(pyro, c);
+ pyro.addActionListener(this);
+ pyro.setActionCommand("Pyro");
+ row++;