int flight;
int year, month, day;
int hour, minute, second;
+ double lat, lon;
+ double pad_lat, pad_lon;
+ boolean has_gps;
+ boolean has_other_adc;
+ boolean has_rssi;
double landed_time(AltosRecordIterable iterable) {
AltosState state = null;
year = month = day = -1;
hour = minute = second = -1;
serial = flight = -1;
+ lat = lon = -1;
+ has_gps = false;
+ has_other_adc = false;
+ has_rssi = false;
for (AltosRecord record : iterable) {
if (serial < 0)
serial = record.serial;
if ((record.seen & AltosRecord.seen_flight) != 0 && flight < 0)
flight = record.flight;
+ if ((record.seen & AltosRecord.seen_temp_volt) != 0)
+ has_other_adc = true;
+ if (record.rssi != 0)
+ has_rssi = true;
new_state = new AltosState(record, state);
end_time = new_state.time;
state = new_state;
max_speed = state.max_baro_speed;
max_acceleration = state.max_acceleration;
}
+ if (state.gps != null && state.gps.locked && state.gps.nsat >= 4) {
+ if (state.state <= Altos.ao_flight_pad) {
+ pad_lat = state.gps.lat;
+ pad_lon = state.gps.lon;
+ }
+ lat = state.gps.lat;
+ lon = state.gps.lon;
+ has_gps = true;
+ }
}
for (int s = Altos.ao_flight_startup; s <= Altos.ao_flight_landed; s++) {
if (state_count[s] > 0) {