summaryrefslogtreecommitdiff
path: root/altoslib
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2015-09-12 19:20:49 -0700
committerKeith Packard <keithp@keithp.com>2015-10-13 13:54:28 -0700
commit0afa07d3c1dcb5e301fcb8b4edfecdd961662478 (patch)
treebd0742a81d3ef60933358fa5151e5d49910cacbe /altoslib
parent7064bc685aebeef07711e525dea4d5fbe33d235b (diff)
altoslib: Hide 'state' member and use accessor function
Someone was smashing the state to 'landed' when no packets had been received for a while. Found that by making it impossible for anyone outside of AltosState to change the value. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib')
-rw-r--r--altoslib/AltosCSV.java8
-rw-r--r--altoslib/AltosEepromDownload.java14
-rw-r--r--altoslib/AltosEepromFile.java4
-rw-r--r--altoslib/AltosFlightStats.java6
-rw-r--r--altoslib/AltosKML.java8
-rw-r--r--altoslib/AltosMap.java9
-rw-r--r--altoslib/AltosReplayReader.java2
-rw-r--r--altoslib/AltosState.java6
-rw-r--r--altoslib/AltosTelemetry.java2
-rw-r--r--altoslib/AltosTelemetryFile.java4
10 files changed, 34 insertions, 29 deletions
diff --git a/altoslib/AltosCSV.java b/altoslib/AltosCSV.java
index edb23e69..150f5a64 100644
--- a/altoslib/AltosCSV.java
+++ b/altoslib/AltosCSV.java
@@ -129,7 +129,7 @@ public class AltosCSV implements AltosWriter {
}
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() {
@@ -326,14 +326,14 @@ public class AltosCSV implements AltosWriter {
}
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();
@@ -368,7 +368,7 @@ public class AltosCSV implements AltosWriter {
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;
diff --git a/altoslib/AltosEepromDownload.java b/altoslib/AltosEepromDownload.java
index baaeb993..5e035dbc 100644
--- a/altoslib/AltosEepromDownload.java
+++ b/altoslib/AltosEepromDownload.java
@@ -111,12 +111,12 @@ public class AltosEepromDownload implements Runnable {
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;
}
@@ -174,13 +174,13 @@ public class AltosEepromDownload implements Runnable {
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);
}
diff --git a/altoslib/AltosEepromFile.java b/altoslib/AltosEepromFile.java
index 33d4f63b..002b7fff 100644
--- a/altoslib/AltosEepromFile.java
+++ b/altoslib/AltosEepromFile.java
@@ -72,7 +72,7 @@ public class AltosEepromFile extends AltosStateIterable {
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) {
@@ -117,7 +117,7 @@ public class AltosEepromFile extends AltosStateIterable {
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;
}
diff --git a/altoslib/AltosFlightStats.java b/altoslib/AltosFlightStats.java
index b837ba84..fdf79fa2 100644
--- a/altoslib/AltosFlightStats.java
+++ b/altoslib/AltosFlightStats.java
@@ -52,7 +52,7 @@ public class AltosFlightStats {
for (AltosState s : states) {
state = s;
- if (state.state == AltosLib.ao_flight_landed)
+ if (state.state() == AltosLib.ao_flight_landed)
break;
}
@@ -92,7 +92,7 @@ public class AltosFlightStats {
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)
@@ -138,7 +138,7 @@ public class AltosFlightStats {
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)
diff --git a/altoslib/AltosKML.java b/altoslib/AltosKML.java
index 81433958..1a364106 100644
--- a/altoslib/AltosKML.java
+++ b/altoslib/AltosKML.java
@@ -112,8 +112,8 @@ public class AltosKML implements AltosWriter {
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);
@@ -171,8 +171,8 @@ public class AltosKML implements AltosWriter {
}
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);
diff --git a/altoslib/AltosMap.java b/altoslib/AltosMap.java
index 8a3266c9..a2855192 100644
--- a/altoslib/AltosMap.java
+++ b/altoslib/AltosMap.java
@@ -230,23 +230,23 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
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);
@@ -324,6 +324,7 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener {
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);
}
diff --git a/altoslib/AltosReplayReader.java b/altoslib/AltosReplayReader.java
index 9419ec93..55faa17c 100644
--- a/altoslib/AltosReplayReader.java
+++ b/altoslib/AltosReplayReader.java
@@ -39,7 +39,7 @@ public class AltosReplayReader extends AltosFlightReader {
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());
}
diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java
index cf4fb9b0..12cd5adf 100644
--- a/altoslib/AltosState.java
+++ b/altoslib/AltosState.java
@@ -284,7 +284,7 @@ public class AltosState implements Cloneable, Serializable {
}
}
- public int state;
+ private int state;
public int flight;
public int serial;
public int altitude_32;
@@ -1056,6 +1056,10 @@ public class AltosState implements Cloneable, Serializable {
}
}
+ public int state() {
+ return state;
+ }
+
public void set_device_type(int device_type) {
this.device_type = device_type;
switch (device_type) {
diff --git a/altoslib/AltosTelemetry.java b/altoslib/AltosTelemetry.java
index 4c973cd9..821adc84 100644
--- a/altoslib/AltosTelemetry.java
+++ b/altoslib/AltosTelemetry.java
@@ -44,7 +44,7 @@ public abstract class AltosTelemetry implements AltosStateUpdate {
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);
diff --git a/altoslib/AltosTelemetryFile.java b/altoslib/AltosTelemetryFile.java
index d2275f54..d87939ff 100644
--- a/altoslib/AltosTelemetryFile.java
+++ b/altoslib/AltosTelemetryFile.java
@@ -75,7 +75,7 @@ public class AltosTelemetryFile extends AltosStateIterable {
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;
}
@@ -93,4 +93,4 @@ public class AltosTelemetryFile extends AltosStateIterable {
}
return new AltosTelemetryIterator(state, i);
}
-} \ No newline at end of file
+}