- public boolean valid() {
- return tick != AltosRecord.MISSING && serial != AltosRecord.MISSING;
- }
-
- public AltosGPS make_temp_gps(boolean sats) {
- if (temp_gps == null) {
- temp_gps = new AltosGPS(gps);
- }
- gps_pending = true;
- if (!sats)
- temp_gps_clear_sats_pending = true;
- else if (temp_gps_clear_sats_pending) {
- temp_gps.cc_gps_sat = null;
- temp_gps_clear_sats_pending = false;
- }
- return temp_gps;
- }
-
- public void set_temp_gps() {
- set_gps(temp_gps, gps_sequence + 1);
- gps_pending = false;
- temp_gps = null;
- }
-
- public AltosState clone() {
- AltosState s = new AltosState();
- s.copy(this);
- return s;
- }
-
-
- public void init (AltosRecord cur, AltosState prev_state) {
-
- System.out.printf ("init\n");
- if (cur == null)
- cur = new AltosRecord();
-
- record = cur;
-
- /* Discard previous state if it was for a different board */
- if (prev_state != null && prev_state.serial != cur.serial)
- prev_state = null;
-
- copy(prev_state);
-
- set_ground_altitude(cur.ground_altitude());
- set_altitude(cur.altitude());
-
- set_kalman(cur.kalman_height, cur.kalman_speed, cur.kalman_acceleration);
-
- received_time = System.currentTimeMillis();
-
- set_temperature(cur.temperature());
- set_apogee_voltage(cur.drogue_voltage());
- set_main_voltage(cur.main_voltage());
- set_battery_voltage(cur.battery_voltage());
-
- set_pressure(cur.pressure());
-
- set_tick(cur.tick);
- set_state(cur.state);
-
- set_accel_g (cur.accel_minus_g, cur.accel_plus_g);
- set_ground_accel(cur.ground_accel);
- set_accel (cur.accel);
-
- if (cur.gps_sequence != gps_sequence)
- set_gps(cur.gps, cur.gps_sequence);
-
- }
-
- public AltosState(AltosRecord cur) {
- init(cur, null);
- }
-
- public AltosState (AltosRecord cur, AltosState prev) {
- init(cur, prev);