import java.text.*;
import java.util.prefs.*;
import java.util.concurrent.LinkedBlockingQueue;
+import org.altusmetrum.AltosLib.*;
/*
* AltosRecords with an index field so they can be sorted by tick while preserving
double ground_pres;
int gps_tick;
int boost_tick;
+ int sensor_tick;
EepromState() {
seen = 0;
state.flight_pres = state.ground_pres;
} else {
state.flight_pres = (state.flight_pres * 15 + state.pres) / 16;
- state.flight_accel = (state.flight_accel * 15 + state.accel) / 16;
- state.flight_vel += (state.accel_plus_g - state.accel);
}
+ state.flight_accel = (state.flight_accel * 15 + state.accel) / 16;
+ if ((eeprom.seen & seen_sensor) == 0)
+ eeprom.sensor_tick = record.tick - 1;
+ state.flight_vel += (state.accel_plus_g - state.accel) * (record.tick - eeprom.sensor_tick);
eeprom.seen |= seen_sensor;
+ eeprom.sensor_tick = record.tick;
has_accel = true;
break;
- case Altos.AO_LOG_HEIGHT:
- state.height = (short) record.a;
+ case Altos.AO_LOG_PRESSURE:
+ state.pres = record.b;
+ state.flight_pres = state.pres;
+ if (eeprom.n_pad_samples == 0) {
+ eeprom.n_pad_samples++;
+ state.ground_pres = state.pres;
+ }
eeprom.seen |= seen_sensor;
break;
case Altos.AO_LOG_TEMP_VOLT:
state.gps.locked = (flags & Altos.AO_GPS_VALID) != 0;
state.gps.nsat = (flags & Altos.AO_GPS_NUM_SAT_MASK) >>
Altos.AO_GPS_NUM_SAT_SHIFT;
+ state.new_gps = true;
has_gps = true;
break;
case Altos.AO_LOG_GPS_LAT:
case Altos.AO_LOG_SOFTWARE_VERSION:
break;
}
+ state.seen |= eeprom.seen;
}
LinkedList<AltosRecord> make_list() {
AltosRecord r = new AltosRecord(state);
r.time = (r.tick - eeprom.boost_tick) / 100.0;
list.add(r);
- return list;
+ return list;
}
public Iterator<AltosRecord> iterator() {
case Altos.AO_LOG_SOFTWARE_VERSION:
out.printf ("# Software version: %s\n", record.data);
break;
+ case Altos.AO_LOG_BARO_RESERVED:
+ out.printf ("# Baro reserved: %d\n", record.a);
+ break;
+ case Altos.AO_LOG_BARO_SENS:
+ out.printf ("# Baro sens: %d\n", record.a);
+ break;
+ case Altos.AO_LOG_BARO_OFF:
+ out.printf ("# Baro off: %d\n", record.a);
+ break;
+ case Altos.AO_LOG_BARO_TCS:
+ out.printf ("# Baro tcs: %d\n", record.a);
+ break;
+ case Altos.AO_LOG_BARO_TCO:
+ out.printf ("# Baro tco: %d\n", record.a);
+ break;
+ case Altos.AO_LOG_BARO_TREF:
+ out.printf ("# Baro tref: %d\n", record.a);
+ break;
+ case Altos.AO_LOG_BARO_TEMPSENS:
+ out.printf ("# Baro tempsens: %d\n", record.a);
+ break;
+ case Altos.AO_LOG_BARO_CRC:
+ out.printf ("# Baro crc: %d\n", record.a);
+ break;
}
}
}