diff options
| -rw-r--r-- | altosui/AltosConfigureUI.java | 28 | ||||
| -rw-r--r-- | altosui/AltosPreferences.java | 22 | ||||
| -rw-r--r-- | 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));  	}  | 
