altoslib: Make AltosMs5607 capable of parsing ms5607 info lines
authorKeith Packard <keithp@keithp.com>
Fri, 7 Dec 2012 01:07:25 +0000 (17:07 -0800)
committerKeith Packard <keithp@keithp.com>
Fri, 7 Dec 2012 01:07:25 +0000 (17:07 -0800)
This moves the parsing from AltosMs5607Query

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosMs5607.java
altoslib/AltosMs5607Query.java

index 148a9f9..318fea4 100644 (file)
@@ -82,6 +82,43 @@ public class AltosMs5607 {
                return pa;
        }
 
+       public boolean parse_line(String line) {
+               String[] items = line.split("\\s+");
+               if (line.startsWith("Pressure:")) {
+                       if (items.length >= 2)
+                               raw_pres = Integer.parseInt(items[1]);
+               } else if (line.startsWith("Temperature:")) {
+                       if (items.length >= 2)
+                               raw_temp = Integer.parseInt(items[1]);
+               } else if (line.startsWith("ms5607 reserved:")) {
+                       if (items.length >= 3)
+                               reserved = Integer.parseInt(items[2]);
+               } else if (line.startsWith("ms5607 sens:")) {
+                       if (items.length >= 3)
+                               sens = Integer.parseInt(items[2]);
+               } else if (line.startsWith("ms5607 off:")) {
+                       if (items.length >= 3)
+                               off = Integer.parseInt(items[2]);
+               } else if (line.startsWith("ms5607 tcs:")) {
+                       if (items.length >= 3)
+                               tcs = Integer.parseInt(items[2]);
+               } else if (line.startsWith("ms5607 tco:")) {
+                       if (items.length >= 3)
+                               tco = Integer.parseInt(items[2]);
+               } else if (line.startsWith("ms5607 tref:")) {
+                       if (items.length >= 3)
+                               tref = Integer.parseInt(items[2]);
+               } else if (line.startsWith("ms5607 tempsens:")) {
+                       if (items.length >= 3)
+                               tempsens = Integer.parseInt(items[2]);
+               } else if (line.startsWith("ms5607 crc:")) {
+                       if (items.length >= 3)
+                               crc = Integer.parseInt(items[2]);
+               } else if (line.startsWith("Altitude"))
+                       return false;
+               return true;
+       }
+
        public AltosMs5607() {
                raw_pres = AltosRecord.MISSING;
                raw_temp = AltosRecord.MISSING;
index 3c74679..1aaec33 100644 (file)
@@ -27,38 +27,7 @@ class AltosMs5607Query extends AltosMs5607 {
                        if (line == null) {
                                throw new TimeoutException();
                        }
-                       String[] items = line.split("\\s+");
-                       if (line.startsWith("Pressure:")) {
-                               if (items.length >= 2)
-                                       raw_pres = Integer.parseInt(items[1]);
-                       } else if (line.startsWith("Temperature:")) {
-                               if (items.length >= 2)
-                                       raw_temp = Integer.parseInt(items[1]);
-                       } else if (line.startsWith("ms5607 reserved:")) {
-                               if (items.length >= 3)
-                                       reserved = Integer.parseInt(items[2]);
-                       } else if (line.startsWith("ms5607 sens:")) {
-                               if (items.length >= 3)
-                                       sens = Integer.parseInt(items[2]);
-                       } else if (line.startsWith("ms5607 off:")) {
-                               if (items.length >= 3)
-                                       off = Integer.parseInt(items[2]);
-                       } else if (line.startsWith("ms5607 tcs:")) {
-                               if (items.length >= 3)
-                                       tcs = Integer.parseInt(items[2]);
-                       } else if (line.startsWith("ms5607 tco:")) {
-                               if (items.length >= 3)
-                                       tco = Integer.parseInt(items[2]);
-                       } else if (line.startsWith("ms5607 tref:")) {
-                               if (items.length >= 3)
-                                       tref = Integer.parseInt(items[2]);
-                       } else if (line.startsWith("ms5607 tempsens:")) {
-                               if (items.length >= 3)
-                                       tempsens = Integer.parseInt(items[2]);
-                       } else if (line.startsWith("ms5607 crc:")) {
-                               if (items.length >= 3)
-                                       crc = Integer.parseInt(items[2]);
-                       } else if (line.startsWith("Altitude"))
+                       if (!parse_line(line))
                                break;
                }
                convert();