summaryrefslogtreecommitdiff
path: root/altoslib/AltosMma655x.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-09-09 09:02:51 -0700
committerKeith Packard <keithp@keithp.com>2014-09-09 09:02:51 -0700
commit9d3ab4c78f79d659ce800def77bc441c95fa15be (patch)
tree57631a474509bdcf2ce46fe9d37f0e715edca14b /altoslib/AltosMma655x.java
parent2b7ba0a5be70ae1d661afb2592ce8a6bf660c793 (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/AltosMma655x.java')
-rw-r--r--altoslib/AltosMma655x.java22
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;
}
}