X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosEepromHeader.java;h=e7ed93b09162f766a9842511e56ce4a2702a7013;hp=a06f05ed46b97d2b85f9f52b99e6c7991dfdf3a6;hb=73ce3f73526edfabccd3b98e6e67de6d82a84b63;hpb=de8d9c5630ae46378c50faf97f7d2e97fe139e30 diff --git a/altoslib/AltosEepromHeader.java b/altoslib/AltosEepromHeader.java index a06f05ed..e7ed93b0 100644 --- a/altoslib/AltosEepromHeader.java +++ b/altoslib/AltosEepromHeader.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_1; +package org.altusmetrum.altoslib_9; import java.io.*; import java.util.*; @@ -25,10 +25,13 @@ public class AltosEepromHeader extends AltosEeprom { public int cmd; public String data; - public int config_a, config_b; + public int config_a, config_b, config_c; public boolean last; public boolean valid; + public int record_length () { return 0; } + + /* XXX pull rest of config data to state */ public void update_state(AltosState state) { switch (cmd) { case AltosLib.AO_LOG_CONFIG_VERSION: @@ -40,7 +43,7 @@ public class AltosEepromHeader extends AltosEeprom { case AltosLib.AO_LOG_RADIO_CHANNEL: break; case AltosLib.AO_LOG_CALLSIGN: - state.callsign = data; + state.set_callsign(data); break; case AltosLib.AO_LOG_ACCEL_CAL: state.set_accel_g(config_a, config_b); @@ -50,9 +53,10 @@ public class AltosEepromHeader extends AltosEeprom { case AltosLib.AO_LOG_MANUFACTURER: break; case AltosLib.AO_LOG_PRODUCT: + state.product = data; break; case AltosLib.AO_LOG_LOG_FORMAT: - state.log_format = config_a; + state.set_log_format(config_a); break; case AltosLib.AO_LOG_SERIAL_NUMBER: state.set_serial(config_a); @@ -89,7 +93,30 @@ public class AltosEepromHeader extends AltosEeprom { state.make_baro(); state.baro.crc = config_a; break; + case AltosLib.AO_LOG_IMU_CAL: + state.set_accel_zero(config_a, config_b, config_c); + break; case AltosLib.AO_LOG_SOFTWARE_VERSION: + state.set_firmware_version(data); + break; + case AltosLib.AO_LOG_FREQUENCY: + case AltosLib.AO_LOG_APOGEE_LOCKOUT: + case AltosLib.AO_LOG_RADIO_RATE: + case AltosLib.AO_LOG_IGNITE_MODE: + break; + case AltosLib.AO_LOG_PAD_ORIENTATION: + state.set_pad_orientation(config_a); + break; + case AltosLib.AO_LOG_RADIO_ENABLE: + case AltosLib.AO_LOG_AES_KEY: + case AltosLib.AO_LOG_APRS: + case AltosLib.AO_LOG_BEEP_SETTING: + case AltosLib.AO_LOG_TRACKER_SETTING: + case AltosLib.AO_LOG_PYRO_TIME: + case AltosLib.AO_LOG_APRS_ID: + break; + case AltosLib.AO_LOG_ALTITUDE_32: + state.set_altitude_32(config_a); break; } } @@ -156,9 +183,31 @@ public class AltosEepromHeader extends AltosEeprom { case AltosLib.AO_LOG_BARO_CRC: out.printf ("# Baro crc: %d\n", config_a); break; + case AltosLib.AO_LOG_IMU_CAL: + out.printf ("# IMU cal: %d %d %d\n", config_a, config_b, config_c); + break; + case AltosLib.AO_LOG_FREQUENCY: + case AltosLib.AO_LOG_APOGEE_LOCKOUT: + case AltosLib.AO_LOG_RADIO_RATE: + case AltosLib.AO_LOG_IGNITE_MODE: + break; + case AltosLib.AO_LOG_PAD_ORIENTATION: + out.printf("# Pad orientation: %d\n", config_a); + break; + case AltosLib.AO_LOG_RADIO_ENABLE: + case AltosLib.AO_LOG_AES_KEY: + case AltosLib.AO_LOG_APRS: + case AltosLib.AO_LOG_BEEP_SETTING: + case AltosLib.AO_LOG_TRACKER_SETTING: + case AltosLib.AO_LOG_PYRO_TIME: + case AltosLib.AO_LOG_APRS_ID: + break; + case AltosLib.AO_LOG_ALTITUDE_32: + out.printf("# Altitude-32: %d\n", config_a); + break; } } - + public AltosEepromHeader (String[] tokens) { last = false; valid = true; @@ -200,6 +249,9 @@ public class AltosEepromHeader extends AltosEeprom { } else if (tokens[0].equals("log-format")) { cmd = AltosLib.AO_LOG_LOG_FORMAT; config_a = Integer.parseInt(tokens[1]); + } else if (tokens[0].equals("altitude-32")) { + cmd = AltosLib.AO_LOG_ALTITUDE_32; + config_a = Integer.parseInt(tokens[1]); } else if (tokens[0].equals("software-version")) { cmd = AltosLib.AO_LOG_SOFTWARE_VERSION; data = tokens[1]; @@ -233,6 +285,14 @@ public class AltosEepromHeader extends AltosEeprom { cmd = AltosLib.AO_LOG_INVALID; data = tokens[2]; } + } else if (tokens[0].equals("IMU") && tokens[1].equals("cal")) { + cmd = AltosLib.AO_LOG_IMU_CAL; + config_a = Integer.parseInt(tokens[3]); + config_b = Integer.parseInt(tokens[5]); + config_c = Integer.parseInt(tokens[7]); + } else if (tokens[0].equals("Pad") && tokens[1].equals("orientation:")) { + cmd = AltosLib.AO_LOG_PAD_ORIENTATION; + config_a = Integer.parseInt(tokens[2]); } else valid = false; } catch (Exception e) { @@ -265,7 +325,7 @@ public class AltosEepromHeader extends AltosEeprom { for (AltosEepromHeader header : headers) { header.write(out); } - + } public AltosEepromHeader (String line) {