altoslib: Remove duplicate cmd/tick from TM eeprom file code
[fw/altos] / altoslib / AltosEepromTM.java
index 6945468b4e9ce152977bb2939713de7241e400d6..2bb9d974d9c639a17c506362db08d40de7700de4 100644 (file)
@@ -22,25 +22,25 @@ import java.util.*;
 import java.text.*;
 
 public class AltosEepromTM extends AltosEeprom {
-       public int      cmd;
-       public int      tick;
        public int      a;
        public int      b;
        public boolean  tick_valid;
 
        public static final int record_length = 8;
 
-       static double
-       thermometer_to_temperature(double thermo)
-       {
-               return (thermo - 19791.268) / 32728.0 * 1.25 / 0.00247;
-       }
-
        public void write(PrintStream out) {
                out.printf("%c %4x %4x %4x\n", cmd, tick, a, b);
        }
 
+       public int record_length() { return record_length; }
+
+       public String string() {
+               return String.format("%c %4x %4x %4x\n", cmd, tick, a, b);
+       }
+
        public void update_state(AltosState state) {
+               super.update_state(state);
+
                AltosGPS        gps;
 
                /* Flush any pending GPS changes */
@@ -66,31 +66,25 @@ public class AltosEepromTM extends AltosEeprom {
                        state.set_boost_tick(tick);
                        break;
                case AltosLib.AO_LOG_SENSOR:
-                       state.set_tick(tick);
                        state.set_accel(a);
-                       double pressure = AltosConvert.barometer_to_pressure(b);
-                       state.set_pressure(pressure);
+                       state.set_pressure(AltosConvert.barometer_to_pressure(b));
                        break;
                case AltosLib.AO_LOG_PRESSURE:
-                       state.set_tick(tick);
                        state.set_pressure(AltosConvert.barometer_to_pressure(b));
                        break;
                case AltosLib.AO_LOG_TEMP_VOLT:
-                       state.set_tick(tick);
-                       state.set_temperature(thermometer_to_temperature(a));
+                       state.set_temperature(AltosConvert.thermometer_to_temperature(a));
                        state.set_battery_voltage(AltosConvert.cc_battery_to_voltage(b));
                        break;
                case AltosLib.AO_LOG_DEPLOY:
-                       state.set_tick(tick);
                        state.set_apogee_voltage(AltosConvert.cc_ignitor_to_voltage(a));
                        state.set_main_voltage(AltosConvert.cc_ignitor_to_voltage(b));
                        break;
                case AltosLib.AO_LOG_STATE:
-                       state.set_tick(tick);
                        state.set_state(a);
                        break;
                case AltosLib.AO_LOG_GPS_TIME:
-                       gps = state.make_temp_gps();
+                       gps = state.make_temp_gps(false);
 
                        gps.hour = (a & 0xff);
                        gps.minute = (a >> 8);
@@ -104,29 +98,29 @@ public class AltosEepromTM extends AltosEeprom {
                                AltosLib.AO_GPS_NUM_SAT_SHIFT;
                        break;
                case AltosLib.AO_LOG_GPS_LAT:
-                       gps = state.make_temp_gps();
+                       gps = state.make_temp_gps(false);
 
                        int lat32 = a | (b << 16);
                        gps.lat = (double) lat32 / 1e7;
                        break;
                case AltosLib.AO_LOG_GPS_LON:
-                       gps = state.make_temp_gps();
+                       gps = state.make_temp_gps(false);
 
                        int lon32 = a | (b << 16);
                        gps.lon = (double) lon32 / 1e7;
                        break;
                case AltosLib.AO_LOG_GPS_ALT:
-                       gps = state.make_temp_gps();
+                       gps = state.make_temp_gps(false);
                        gps.alt = a;
                        break;
                case AltosLib.AO_LOG_GPS_SAT:
-                       gps = state.make_temp_gps();
+                       gps = state.make_temp_gps(true);
                        int svid = a;
                        int c_n0 = b >> 8;
                        gps.add_sat(svid, c_n0);
                        break;
                case AltosLib.AO_LOG_GPS_DATE:
-                       gps = state.make_temp_gps();
+                       gps = state.make_temp_gps(false);
                        gps.year = (a & 0xff) + 2000;
                        gps.month = a >> 8;
                        gps.day = b & 0xff;