}
void write_flight(AltosState state) {
- out.printf("%d,%8s", state.state, state.state_name());
+ out.printf("%d,%8s", state.state(), state.state_name());
}
void write_basic_header() {
}
private void write(AltosState state) {
- if (state.state == AltosLib.ao_flight_startup)
+ if (state.state() == AltosLib.ao_flight_startup)
return;
if (!header_written) {
write_header();
header_written = true;
}
if (!seen_boost) {
- if (state.state >= AltosLib.ao_flight_boost) {
+ if (state.state() >= AltosLib.ao_flight_boost) {
seen_boost = true;
boost_tick = state.tick;
flush_pad();
has_gps_sat = false;
has_companion = false;
for (AltosState state : states) {
- if (state.state != AltosLib.ao_flight_stateless && state.state != AltosLib.ao_flight_invalid && state.state != AltosLib.ao_flight_startup)
+ if (state.state() != AltosLib.ao_flight_stateless && state.state() != AltosLib.ao_flight_invalid && state.state() != AltosLib.ao_flight_startup)
has_flight_state = true;
if (state.acceleration() != AltosLib.MISSING || state.pressure() != AltosLib.MISSING)
has_basic = true;
monitor.set_flight(state.flight);
/* Monitor state transitions to update display */
- if (state.state != AltosLib.ao_flight_invalid &&
- state.state <= AltosLib.ao_flight_landed)
+ if (state.state() != AltosLib.ao_flight_invalid &&
+ state.state() <= AltosLib.ao_flight_landed)
{
- if (state.state > AltosLib.ao_flight_pad)
+ if (state.state() > AltosLib.ao_flight_pad)
want_file = true;
- if (state.state == AltosLib.ao_flight_landed)
+ if (state.state() == AltosLib.ao_flight_landed)
done = true;
}
CaptureEeprom (eechunk, log_format);
- if (state.state != prev_state && state.state != AltosLib.ao_flight_invalid) {
+ if (state.state() != prev_state && state.state() != AltosLib.ao_flight_invalid) {
state_block = block;
- prev_state = state.state;
+ prev_state = state.state();
}
monitor.set_value(state.state_name(),
- state.state,
+ state.state(),
block - state_block,
block - log.start_block);
}
headers = new AltosEepromIterable(AltosEepromHeader.read(input));
start = headers.state();
- if (start.state != AltosLib.ao_flight_stateless)
+ if (start.state() != AltosLib.ao_flight_stateless)
start.set_state(AltosLib.ao_flight_pad);
if (start.log_format == AltosLib.MISSING) {
for (AltosEeprom eeprom : body) {
eeprom.update_state(state);
state.finish_update();
- if (state.state >= AltosLib.ao_flight_boost) {
+ if (state.state() >= AltosLib.ao_flight_boost) {
start.set_boost_tick(state.tick);
break;
}
for (AltosState s : states) {
state = s;
- if (state.state == AltosLib.ao_flight_landed)
+ if (state.state() == AltosLib.ao_flight_landed)
break;
}
state = s;
if (state.acceleration() < 1)
boost_time = state.time;
- if (state.state >= AltosLib.ao_flight_boost && state.state <= AltosLib.ao_flight_landed)
+ if (state.state() >= AltosLib.ao_flight_boost && state.state() <= AltosLib.ao_flight_landed)
break;
}
if (state == null)
if (state.pressure() != AltosLib.MISSING)
has_flight_data = true;
- int state_id = state.state;
+ int state_id = state.state();
if (state.time >= boost_time && state_id < AltosLib.ao_flight_boost)
state_id = AltosLib.ao_flight_boost;
if (state.time >= landed_time && state_id < AltosLib.ao_flight_landed)
boolean started = false;
void state_start(AltosState state) {
- String state_name = AltosLib.state_name(state.state);
- String state_color = state_color(state.state);
+ String state_name = AltosLib.state_name(state.state());
+ String state_color = state_color(state.state());
out.printf(kml_style_start, state_name, state_color);
out.printf("\tState: %s\n", state_name);
out.printf("%s", kml_style_end);
}
if (prev != null && prev.gps_sequence == state.gps_sequence)
return;
- if (state.state != flight_state) {
- flight_state = state.state;
+ if (state.state() != flight_state) {
+ flight_state = state.state();
if (prev != null) {
coord(state);
state_end(prev);
if (!gps.locked && gps.nsat < 4)
return;
- switch (state.state) {
+ switch (state.state()) {
case AltosLib.ao_flight_boost:
if (!have_boost) {
- add_mark(gps.lat, gps.lon, state.state);
+ add_mark(gps.lat, gps.lon, state.state());
have_boost = true;
}
break;
case AltosLib.ao_flight_landed:
if (!have_landed) {
- add_mark(gps.lat, gps.lon, state.state);
+ add_mark(gps.lat, gps.lon, state.state());
have_landed = true;
}
break;
}
if (path != null) {
- AltosMapRectangle damage = path.add(gps.lat, gps.lon, state.state);
+ AltosMapRectangle damage = path.add(gps.lat, gps.lon, state.state());
if (damage != null)
repaint(damage, AltosMapPath.stroke_width);
if (!tiles.containsKey(point)) {
AltosLatLon ul = transform.lat_lon(point);
AltosLatLon center = transform.lat_lon(new AltosPointDouble(x + AltosMap.px_size/2, y + AltosMap.px_size/2));
+ debug("make tile %g,%g\n", center.lat, center.lon);
AltosMapTile tile = map_interface.new_tile(this, ul, center, zoom, maptype, px_size);
tiles.put(point, tile);
}
public void update(AltosState state) throws InterruptedException {
/* Make it run in realtime after the rocket leaves the pad */
- if (state.state > AltosLib.ao_flight_pad && state.time_change > 0)
+ if (state.state() > AltosLib.ao_flight_pad && state.time_change > 0)
Thread.sleep((int) (Math.min(state.time_change,10) * 1000));
state.set_received_time(System.currentTimeMillis());
}
}
}
- public int state;
+ private int state;
public int flight;
public int serial;
public int altitude_32;
}
}
+ public int state() {
+ return state;
+ }
+
public void set_device_type(int device_type) {
this.device_type = device_type;
switch (device_type) {
public void update_state(AltosState state) {
state.set_serial(serial);
- if (state.state == AltosLib.ao_flight_invalid)
+ if (state.state() == AltosLib.ao_flight_invalid)
state.set_state(AltosLib.ao_flight_startup);
state.set_tick(tick);
state.set_rssi(rssi, status);
for (AltosTelemetry telem : telems) {
telem.update_state(state);
state.finish_update();
- if (state.state != AltosLib.ao_flight_invalid && state.state >= AltosLib.ao_flight_boost) {
+ if (state.state() != AltosLib.ao_flight_invalid && state.state() >= AltosLib.ao_flight_boost) {
start.set_boost_tick(state.tick);
break;
}
}
return new AltosTelemetryIterator(state, i);
}
-}
\ No newline at end of file
+}
int last_state = -1;
void show(AltosState state, AltosListenerState listener_state) {
- if (state.state != last_state) {
- if (state.state == AltosLib.ao_flight_stateless)
+ if (state.state() != last_state) {
+ if (state.state() == AltosLib.ao_flight_stateless)
hide();
else {
show();
value.setText(state.state_name());
}
- last_state = state.state;
+ last_state = state.state();
}
}
JComponent cur_tab = null;
JComponent which_tab(AltosState state) {
- if (state.state < Altos.ao_flight_boost)
+ if (state.state() < Altos.ao_flight_boost)
return pad;
- if (state.state <= Altos.ao_flight_coast)
+ if (state.state() <= Altos.ao_flight_coast)
return ascent;
- if (state.state <= Altos.ao_flight_main)
+ if (state.state() <= Altos.ao_flight_main)
return descent;
- if (state.state == AltosLib.ao_flight_stateless)
+ if (state.state() == AltosLib.ao_flight_stateless)
return descent;
return landed;
}
if (state == null)
state = new AltosState();
- if (state.state != Altos.ao_flight_startup) {
+ if (state.state() != Altos.ao_flight_startup) {
if (!has_state) {
pane.setTitleAt(0, "Launch Pad");
pane.add(ascent, 1);
hide();
} else {
if (state.flight != 0) {
- if (state.state <= Altos.ao_flight_pad)
+ if (state.state() <= Altos.ao_flight_pad)
show("Ready to record");
- else if (state.state < Altos.ao_flight_landed ||
- state.state == AltosLib.ao_flight_stateless)
+ else if (state.state() < Altos.ao_flight_landed ||
+ state.state() == AltosLib.ao_flight_stateless)
show("Recording data");
else
show("Recorded data");
}
boolean report_pad(AltosState state) {
- if ((state.state == AltosLib.ao_flight_stateless ||
- state.state < AltosLib.ao_flight_pad) &&
+ if ((state.state() == AltosLib.ao_flight_stateless ||
+ state.state() < AltosLib.ao_flight_pad) &&
state.gps != null &&
state.gps.lat != AltosLib.MISSING)
{
System.out.printf ("process cat\n");
for (AltosState state : eef) {
System.out.printf ("tick %d state %d height %g\n",
- state.tick, state.state, state.height());
+ state.tick, state.state(), state.height());
if ((state.set & AltosState.set_gps) != 0)
System.out.printf ("time %g lat %g lon %g alt %g\n",
state.time_since_boost(),
return;
/* reset the landing count once we hear about a new flight */
- if (state.state < AltosLib.ao_flight_drogue)
+ if (state.state() < AltosLib.ao_flight_drogue)
reported_landing = 0;
/* Shut up once the rocket is on the ground */
}
/* If the rocket isn't on the pad, then report height */
- if (AltosLib.ao_flight_drogue <= state.state &&
- state.state < AltosLib.ao_flight_landed &&
+ if (AltosLib.ao_flight_drogue <= state.state() &&
+ state.state() < AltosLib.ao_flight_landed &&
state.from_pad != null &&
state.range >= 0)
{
(int) (state.from_pad.bearing + 0.5),
(int) (state.elevation + 0.5),
AltosConvert.distance.say(state.range));
- } else if (state.state > AltosLib.ao_flight_pad && state.height() != AltosLib.MISSING) {
+ } else if (state.state() > AltosLib.ao_flight_pad && state.height() != AltosLib.MISSING) {
voice.speak(AltosConvert.height.say_units(state.height()));
} else {
reported_landing = 0;
* either we've got a landed report or we haven't heard from it in
* a long time
*/
- if (state.state != AltosLib.ao_flight_stateless &&
- state.state >= AltosLib.ao_flight_drogue &&
+ if (state.state() != AltosLib.ao_flight_stateless &&
+ state.state() >= AltosLib.ao_flight_drogue &&
(last ||
System.currentTimeMillis() - state.received_time >= 15000 ||
- state.state == AltosLib.ao_flight_landed))
+ state.state() == AltosLib.ao_flight_landed))
{
if (Math.abs(state.speed()) < 20 && state.height() < 100)
voice.speak("rocket landed safely");
(int) (state.from_pad.bearing + 0.5),
AltosConvert.distance.say_units(state.from_pad.distance));
++reported_landing;
- if (state.state != AltosLib.ao_flight_landed) {
- state.state = AltosLib.ao_flight_landed;
- show_safely();
- }
}
}
}
public synchronized void notice(boolean spoken) {
- if (old_state != null && old_state.state != state.state) {
+ if (old_state != null && old_state.state() != state.state()) {
report_time = now();
this.notify();
} else if (spoken)
synchronized boolean tell() {
boolean ret = false;
- if (old_state == null || old_state.state != state.state) {
- if (state.state != AltosLib.ao_flight_stateless)
+ if (old_state == null || old_state.state() != state.state()) {
+ if (state.state() != AltosLib.ao_flight_stateless)
voice.speak(state.state_name());
- if ((old_state == null || old_state.state <= AltosLib.ao_flight_boost) &&
- state.state > AltosLib.ao_flight_boost) {
+ if ((old_state == null || old_state.state() <= AltosLib.ao_flight_boost) &&
+ state.state() > AltosLib.ao_flight_boost) {
if (state.max_speed() != AltosLib.MISSING)
voice.speak("max speed: %s.",
AltosConvert.speed.say_units(state.max_speed() + 0.5));
ret = true;
- } else if ((old_state == null || old_state.state < AltosLib.ao_flight_drogue) &&
- state.state >= AltosLib.ao_flight_drogue) {
+ } else if ((old_state == null || old_state.state() < AltosLib.ao_flight_drogue) &&
+ state.state() >= AltosLib.ao_flight_drogue) {
if (state.max_height() != AltosLib.MISSING)
voice.speak("max height: %s.",
AltosConvert.height.say_units(state.max_height() + 0.5));
public int id(int index) {
if (index == data_state) {
- int s = state.state;
+ int s = state.state();
if (AltosLib.ao_flight_boost <= s && s <= AltosLib.ao_flight_landed)
return s;
} else if (data_ignitor_fired_0 <= index && index <= data_ignitor_fired_max) {