* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_14;
import java.io.*;
import java.util.*;
AltosState state;
AltosRecordSet record_set;
double last_time = AltosLib.MISSING;
- Semaphore semaphore = new Semaphore(1);;
+ Semaphore semaphore = new Semaphore(1);
boolean done = false;
public void set_time(double time) {
- if (last_time != AltosLib.MISSING) {
- semaphore.release();
- double delay = Math.min(time - last_time,10);
- if (delay > 0) {
- try {
- Thread.sleep((int) (delay * 1000));
- } catch (InterruptedException ie) {
+ if (time > -2) {
+ if (last_time != AltosLib.MISSING) {
+ semaphore.release();
+ double delay = Math.min(time - last_time,10);
+ if (delay > 0) {
+ try {
+ Thread.sleep((int) (delay * 1000));
+ } catch (InterruptedException ie) {
+ }
}
}
}
public void set_apogee_voltage(double volts) { state.set_apogee_voltage(volts); }
public void set_main_voltage(double volts) { state.set_main_voltage(volts); }
- public void set_gps(AltosGPS gps) { state.set_gps(gps); }
+ public void set_gps(AltosGPS gps, boolean set_location, boolean set_sats) {
+ super.set_gps(gps, set_location, set_sats);
+ state.set_gps(gps, set_location, set_sats);
+ }
public void set_orient(double orient) { state.set_orient(orient); }
public void set_gyro(double roll, double pitch, double yaw) { state.set_gyro(roll, pitch, yaw); }
File file;
AltosReplay replay;
Thread t;
- int reads;
public AltosCalData cal_data() {
return replay.state.cal_data();
}
public AltosState read() {
- switch (reads) {
- case 0:
- /* Tell the display that we're in pad mode */
- replay.state.set_state(AltosLib.ao_flight_pad);
- break;
- case 1:
- t = new Thread(replay);
- t.start();
- /* fall through */
- default:
- /* Wait for something to change */
- try {
- replay.semaphore.acquire();
- } catch (InterruptedException ie) {
- }
- break;
+ /* Wait for something to change */
+ try {
+ replay.semaphore.acquire();
+ } catch (InterruptedException ie) {
}
- reads++;
/* When done, let the display know */
if (replay.done)
public File backing_file() { return file; }
public AltosReplayReader(AltosRecordSet record_set, File in_file) {
- reads = 0;
file = in_file;
name = file.getName();
replay = new AltosReplay(record_set);
+ t = new Thread(replay);
+ t.start();
}
}