import java.text.*;
import java.util.concurrent.*;
-public class AltosConfigData implements Iterable<String> {
+public class AltosConfigData {
/* Version information */
public String manufacturer;
public int log_space;
public String version;
public int altitude_32;
-
- /* Strings returned */
- public LinkedList<String> __lines;
+ public int config_major, config_minor;
/* Config information */
/* HAS_FLIGHT*/
public int accel_zero_along, accel_zero_across, accel_zero_through;
/* ms5607 data */
- public int ms5607_reserved;
- public int ms5607_sens;
- public int ms5607_off;
- public int ms5607_tcs;
- public int ms5607_tco;
- public int ms5607_tref;
- public int ms5607_tempsens;
- public int ms5607_crc;
+ AltosMs5607 ms5607;
+
+ public AltosMs5607 ms5607() {
+ if (ms5607 == null)
+ ms5607 = new AltosMs5607();
+ return ms5607;
+ }
public static String get_string(String line, String label) throws ParseException {
if (line.startsWith(label)) {
throw new ParseException("mismatch", 0);
}
- public Iterator<String> iterator() {
- return __lines.iterator();
- }
-
public int log_space() {
if (log_space > 0)
return log_space;
}
public void reset() {
- __lines = new LinkedList<String>();
-
manufacturer = null;
product = null;
serial = AltosLib.MISSING;
log_format = AltosLib.AO_LOG_FORMAT_UNKNOWN;
log_space = AltosLib.MISSING;
version = "unknown";
+ config_major = AltosLib.MISSING;
+ config_minor = AltosLib.MISSING;
main_deploy = AltosLib.MISSING;
apogee_delay = AltosLib.MISSING;
}
public void parse_line(String line) {
- __lines.add(line);
+
/* Version replies */
try { manufacturer = get_string(line, "manufacturer"); } catch (Exception e) {}
try { product = get_string(line, "product"); } catch (Exception e) {}
/* Version also contains MS5607 info, which we ignore here */
- try { ms5607_reserved = get_int(line, "ms5607 reserved:"); } catch (Exception e) {}
- try { ms5607_sens = get_int(line, "ms5607 sens:"); } catch (Exception e) {}
- try { ms5607_off = get_int(line, "ms5607 off:"); } catch (Exception e) {}
- try { ms5607_tcs = get_int(line, "ms5607 tcs:"); } catch (Exception e) {}
- try { ms5607_tco = get_int(line, "ms5607 tco:"); } catch (Exception e) {}
- try { ms5607_tref = get_int(line, "ms5607 tref:"); } catch (Exception e) {}
- try { ms5607_tempsens = get_int(line, "ms5607 tempsens:"); } catch (Exception e) {}
- try { ms5607_crc = get_int(line, "ms5607 crc:"); } catch (Exception e) {}
+ try { ms5607().reserved = get_int(line, "ms5607 reserved:"); } catch (Exception e) {}
+ try { ms5607().sens = get_int(line, "ms5607 sens:"); } catch (Exception e) {}
+ try { ms5607().off = get_int(line, "ms5607 off:"); } catch (Exception e) {}
+ try { ms5607().tcs = get_int(line, "ms5607 tcs:"); } catch (Exception e) {}
+ try { ms5607().tco = get_int(line, "ms5607 tco:"); } catch (Exception e) {}
+ try { ms5607().tref = get_int(line, "ms5607 tref:"); } catch (Exception e) {}
+ try { ms5607().tempsens = get_int(line, "ms5607 tempsens:"); } catch (Exception e) {}
+ try { ms5607().crc = get_int(line, "ms5607 crc:"); } catch (Exception e) {}
/* Config show replies */
+ try {
+ if (line.startsWith("Config version")) {
+ String[] bits = line.split("\\s+");
+ if (bits.length >= 3) {
+ String[] cfg = bits[2].split("\\.");
+
+ if (cfg.length >= 2) {
+ System.out.printf("major %s minor %s\n", cfg[0], cfg[1]);
+ config_major = Integer.parseInt(cfg[0]);
+ config_minor = Integer.parseInt(cfg[1]);
+ }
+ }
+ }
+ } catch (Exception e) {}
+
/* HAS_FLIGHT */
try { main_deploy = get_int(line, "Main deploy:"); } catch (Exception e) {}
try { apogee_delay = get_int(line, "Apogee delay:"); } catch (Exception e) {}