altoslib: Fix idle monitor parsing of MMA655x state
[fw/altos] / altoslib / AltosMma655x.java
index ea47cc9b0ada7c936bf7d5cafd3afc7c7ac0d32a..7f0dab98f421621c70aea8d063f6dd5299fa2b07 100644 (file)
@@ -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;
                }
        }