diff options
| author | Keith Packard <keithp@keithp.com> | 2014-09-09 09:02:51 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2014-09-09 09:02:51 -0700 | 
| commit | 9d3ab4c78f79d659ce800def77bc441c95fa15be (patch) | |
| tree | 57631a474509bdcf2ce46fe9d37f0e715edca14b /altoslib | |
| parent | 2b7ba0a5be70ae1d661afb2592ce8a6bf660c793 (diff) | |
altoslib: Fix idle monitor parsing of MMA655x state
There's no ':' after 'MMA655X value' in the output, and the parser
returns 'true' on success, not false.
With this, 'Monitor Idle' now reports correct accelerometer readings.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib')
| -rw-r--r-- | altoslib/AltosMma655x.java | 22 | 
1 files changed, 12 insertions, 10 deletions
| diff --git a/altoslib/AltosMma655x.java b/altoslib/AltosMma655x.java index ea47cc9b..7f0dab98 100644 --- a/altoslib/AltosMma655x.java +++ b/altoslib/AltosMma655x.java @@ -23,14 +23,15 @@ public class AltosMma655x implements Cloneable {  	int	accel; -	public boolean parse_line(String line) { -		String[] items = line.split("\\s+"); -		if (line.startsWith("MMA655X value:")) { -			if (items.length >= 3) -				accel = Integer.parseInt(items[1]); -		} else -			return false; -		return true; +	public boolean parse_line(String line) throws NumberFormatException { +		if (line.startsWith("MMA655X value")) { +			String[] items = line.split("\\s+"); +			if (items.length >= 3) { +				accel = Integer.parseInt(items[2]); +				return true; +			} +		} +		return false;  	}  	public AltosMma655x() { @@ -51,17 +52,18 @@ public class AltosMma655x implements Cloneable {  			if (mma655x != null)  				state.set_accel(mma655x.accel);  		} catch (TimeoutException te) { +		} catch (NumberFormatException ne) {  		}  	} -	public AltosMma655x(AltosLink link) throws InterruptedException, TimeoutException { +	public AltosMma655x(AltosLink link) throws InterruptedException, TimeoutException, NumberFormatException {  		this();  		link.printf("A\n");  		for (;;) {  			String line = link.get_reply_no_dialog(5000);  			if (line == null)  				throw new TimeoutException(); -			if (!parse_line(line)) +			if (parse_line(line))  				break;  		}  	} | 
