X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosEepromTM.java;h=6d36cf47a9e1ed87169c71641e9d19c1106bb6d0;hp=6945468b4e9ce152977bb2939713de7241e400d6;hb=c8078d352a7f54a4a97d25af080155d3f875536a;hpb=7ec1b97d278c7aec3199fb7270f0dcf9484c879f diff --git a/altoslib/AltosEepromTM.java b/altoslib/AltosEepromTM.java index 6945468b..6d36cf47 100644 --- a/altoslib/AltosEepromTM.java +++ b/altoslib/AltosEepromTM.java @@ -15,32 +15,31 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_1; +package org.altusmetrum.altoslib_5; 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 */ @@ -66,31 +65,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 +97,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; @@ -137,10 +130,10 @@ public class AltosEepromTM extends AltosEeprom { public AltosEepromTM (AltosEepromChunk chunk, int start) throws ParseException { cmd = chunk.data(start); - tick_valid = true; + valid = true; - tick_valid = !chunk.erased(start, record_length); - if (tick_valid) { + valid = !chunk.erased(start, record_length); + if (valid) { if (AltosConvert.checksum(chunk.data, start, record_length) != 0) throw new ParseException(String.format("invalid checksum at 0x%x", chunk.address + start), 0); @@ -154,7 +147,7 @@ public class AltosEepromTM extends AltosEeprom { } public AltosEepromTM (String line) { - tick_valid = false; + valid = false; tick = 0; a = 0; b = 0; @@ -170,7 +163,7 @@ public class AltosEepromTM extends AltosEeprom { } else { cmd = tokens[0].codePointAt(0); tick = Integer.parseInt(tokens[1],16); - tick_valid = true; + valid = true; a = Integer.parseInt(tokens[2],16); b = Integer.parseInt(tokens[3],16); } @@ -184,7 +177,7 @@ public class AltosEepromTM extends AltosEeprom { } public AltosEepromTM(int in_cmd, int in_tick, int in_a, int in_b) { - tick_valid = true; + valid = true; cmd = in_cmd; tick = in_tick; a = in_a;