* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_11;
+package org.altusmetrum.altoslib_12;
import java.io.*;
import java.util.*;
import java.text.*;
import java.util.concurrent.*;
+class AltosEepromNameData extends AltosDataListener {
+ AltosGPS gps = null;
+
+ public void set_rssi(int rssi, int status) { }
+ public void set_received_time(long received_time) { }
+
+ public void set_acceleration(double accel) { }
+ public void set_pressure(double pa) { }
+ public void set_thrust(double N) { }
+
+ public void set_temperature(double deg_c) { }
+ public void set_battery_voltage(double volts) { }
+
+ public void set_apogee_voltage(double volts) { }
+ public void set_main_voltage(double volts) { }
+
+ public void set_gps(AltosGPS gps) {
+ if (gps != null &&
+ gps.year != AltosLib.MISSING &&
+ gps.month != AltosLib.MISSING &&
+ gps.day != AltosLib.MISSING) {
+ this.gps = gps;
+ }
+ }
+
+ public boolean done() {
+ if (gps == null)
+ return false;
+ return true;
+ }
+
+ public void set_gyro(double roll, double pitch, double yaw) { }
+ public void set_accel_ground(double along, double across, double through) { }
+ public void set_accel(double along, double across, double through) { }
+ public void set_mag(double along, double across, double through) { }
+ public void set_pyro_voltage(double volts) { }
+ public void set_igniter_voltage(double[] voltage) { }
+ public void set_pyro_fired(int pyro_mask) { }
+ public void set_companion(AltosCompanion companion) { }
+ public void set_kalman(double height, double speed, double acceleration) { }
+ public void set_orient(double new_orient) { }
+
+ public AltosEepromNameData(AltosCalData cal_data) {
+ super(cal_data);
+ }
+}
+
public class AltosEepromDownload implements Runnable {
AltosLink link;
gps.day != AltosLib.MISSING;
}
- private AltosFile MakeFile(int serial, int flight, AltosState state) throws IOException {
+ private AltosFile MakeFile(int serial, int flight, AltosEepromNameData name_data) throws IOException {
AltosFile eeprom_name;
- if (has_gps_date(state)) {
- AltosGPS gps = state.gps;
+ if (name_data.gps != null) {
+ AltosGPS gps = name_data.gps;
eeprom_name = new AltosFile(gps.year, gps.month, gps.day,
serial, flight, "eeprom");
} else
}
/* Construct our internal representation of the eeprom data */
- AltosEepromNew eeprom = new AltosEepromNew(flights.config_data, data);
+ AltosEeprom eeprom = new AltosEeprom(flights.config_data, data);
/* Now see if we can't actually parse the resulting
* file to generate a better filename. Note that this
* doesn't need to work; we'll still save the data using
* a less accurate name.
*/
- AltosEepromRecordSet set = new AltosEepromRecordSet(eeprom);
-
- AltosState state = new AltosState();
+ AltosEepromRecordSet set = new AltosEepromRecordSet(eeprom);
+ AltosEepromNameData name_data = new AltosEepromNameData(set.cal_data());
- for (AltosState s : set) {
- state = s;
- if (state.gps != null)
+ for (AltosEepromRecord record : set.ordered) {
+ record.provide_data(name_data, set.cal_data());
+ if (name_data.done())
break;
}
- AltosFile f = MakeFile(flights.config_data.serial, log.flight, state);
+ AltosFile f = MakeFile(flights.config_data.serial, log.flight, name_data);
monitor.set_filename(f.toString());