* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_1;
+package org.altusmetrum.altoslib_3;
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;
}
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(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;
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);
}
public AltosEepromTM (String line) {
- tick_valid = false;
+ valid = false;
tick = 0;
a = 0;
b = 0;
} 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);
}
}
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;