submodule madness
[fw/altos] / altoslib / AltosEepromHeader.java
index 0aeb78dd36e4bf8c9772e47bb8c116fba20feaf7..e7ed93b09162f766a9842511e56ce4a2702a7013 100644 (file)
@@ -15,7 +15,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_2;
+package org.altusmetrum.altoslib_9;
 
 import java.io.*;
 import java.util.*;
@@ -25,7 +25,7 @@ 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;
 
@@ -53,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);
@@ -92,9 +93,31 @@ 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;
                }
        }
 
@@ -160,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;
@@ -204,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];
@@ -237,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) {
@@ -269,7 +325,7 @@ public class AltosEepromHeader extends AltosEeprom {
                for (AltosEepromHeader header : headers) {
                        header.write(out);
                }
-               
+
        }
 
        public AltosEepromHeader (String line) {