summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-01-14 16:47:36 -0800
committerKeith Packard <keithp@keithp.com>2011-01-14 16:48:29 -0800
commitd908c2ebd0b11a54cfd922a192249d0f0df0ddb0 (patch)
tree94d5f299640565438f2b6090adc006167cf3753c
parentfcaee12a64d5e195b55b8f77c19dfc0c57ef5d58 (diff)
altosui: Add preference for serial debugging.
This dumps serial input/output to stdout. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--altosui/AltosConfigureUI.java28
-rw-r--r--altosui/AltosPreferences.java22
-rw-r--r--altosui/AltosSerial.java13
3 files changed, 59 insertions, 4 deletions
diff --git a/altosui/AltosConfigureUI.java b/altosui/AltosConfigureUI.java
index 153c59fd..ab3d950e 100644
--- a/altosui/AltosConfigureUI.java
+++ b/altosui/AltosConfigureUI.java
@@ -47,6 +47,8 @@ public class AltosConfigureUI
JLabel callsign_label;
JTextField callsign_value;
+ JRadioButton serial_debug;
+
/* DocumentListener interface methods */
public void changedUpdate(DocumentEvent e) {
AltosPreferences.set_callsign(callsign_value.getText());
@@ -166,6 +168,30 @@ public class AltosConfigureUI
c.anchor = GridBagConstraints.WEST;
pane.add(callsign_value, c);
+ /* Serial debug setting */
+ c.gridx = 0;
+ c.gridy = 4;
+ c.gridwidth = 1;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+ pane.add(new JLabel("Serial Debug"), c);
+
+ serial_debug = new JRadioButton("Enable", AltosPreferences.serial_debug());
+ serial_debug.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ JRadioButton item = (JRadioButton) e.getSource();
+ boolean enabled = item.isSelected();
+ AltosPreferences.set_serial_debug(enabled);
+ }
+ });
+
+ c.gridx = 1;
+ c.gridy = 4;
+ c.gridwidth = 3;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+ pane.add(serial_debug, c);
+
/* And a close button at the bottom */
close = new JButton("Close");
close.addActionListener(new ActionListener() {
@@ -174,7 +200,7 @@ public class AltosConfigureUI
}
});
c.gridx = 0;
- c.gridy = 4;
+ c.gridy = 5;
c.gridwidth = 3;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.CENTER;
diff --git a/altosui/AltosPreferences.java b/altosui/AltosPreferences.java
index c6ae6cbd..d4df4e16 100644
--- a/altosui/AltosPreferences.java
+++ b/altosui/AltosPreferences.java
@@ -43,6 +43,9 @@ class AltosPreferences {
/* firmware directory preference name */
final static String firmwaredirPreference = "FIRMWARE";
+ /* serial debug preference name */
+ final static String serialDebugPreference = "SERIAL-DEBUG";
+
/* Default logdir is ~/TeleMetrum */
final static String logdirName = "TeleMetrum";
@@ -67,6 +70,9 @@ class AltosPreferences {
/* Firmware directory */
static File firmwaredir;
+ /* Serial debug */
+ static boolean serial_debug;
+
public static void init(Component ui) {
preferences = Preferences.userRoot().node("/org/altusmetrum/altosui");
@@ -97,6 +103,9 @@ class AltosPreferences {
firmwaredir = new File(firmwaredir_string);
else
firmwaredir = null;
+
+ serial_debug = preferences.getBoolean(serialDebugPreference, false);
+ AltosSerial.set_debug(serial_debug);
}
static void flush_preferences() {
@@ -215,4 +224,17 @@ class AltosPreferences {
public static File firmwaredir() {
return firmwaredir;
}
+
+ public static void set_serial_debug(boolean new_serial_debug) {
+ serial_debug = new_serial_debug;
+ AltosSerial.set_debug(serial_debug);
+ synchronized (preferences) {
+ preferences.putBoolean(serialDebugPreference, serial_debug);
+ flush_preferences();
+ }
+ }
+
+ public static boolean serial_debug() {
+ return serial_debug;
+ }
}
diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java
index 78da5d1f..3ad16b2b 100644
--- a/altosui/AltosSerial.java
+++ b/altosui/AltosSerial.java
@@ -47,6 +47,11 @@ public class AltosSerial implements Runnable {
byte[] line_bytes;
int line_count;
boolean monitor_mode;
+ static boolean debug;
+
+ static void set_debug(boolean new_debug) {
+ debug = new_debug;
+ }
public void run () {
int c;
@@ -84,7 +89,8 @@ public class AltosSerial implements Runnable {
q.put(new AltosLine (line));
}
} else {
-// System.out.printf("GOT: %s\n", line);
+ if (debug)
+ System.out.printf("\t\t\t\t\t%s\n", line);
reply_queue.put(new AltosLine (line));
}
line_count = 0;
@@ -176,13 +182,14 @@ public class AltosSerial implements Runnable {
}
}
- public void putc(char c) {
+ private void putc(char c) {
if (altos != null)
libaltos.altos_putchar(altos, c);
}
public void print(String data) {
-// System.out.printf("\"%s\" ", data);
+ if (debug)
+ System.out.printf("%s", data);
for (int i = 0; i < data.length(); i++)
putc(data.charAt(i));
}