From d908c2ebd0b11a54cfd922a192249d0f0df0ddb0 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 14 Jan 2011 16:47:36 -0800 Subject: [PATCH] altosui: Add preference for serial debugging. This dumps serial input/output to stdout. Signed-off-by: Keith Packard --- altosui/AltosConfigureUI.java | 28 +++++++++++++++++++++++++++- altosui/AltosPreferences.java | 22 ++++++++++++++++++++++ altosui/AltosSerial.java | 13 ++++++++++--- 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)); } -- 2.30.2