* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_1;
+package org.altusmetrum.altoslib_2;
import java.io.*;
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 */
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);
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;