summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--altoslib/AltosEepromMega.java (renamed from altosui/AltosEepromMega.java)65
-rw-r--r--altoslib/AltosEepromMegaIterable.java (renamed from altosui/AltosEepromMegaIterable.java)149
-rw-r--r--altoslib/AltosLink.java25
-rw-r--r--altoslib/Makefile.am2
-rw-r--r--altosui/Altos.java56
-rw-r--r--altosui/AltosConfigTD.java2
-rw-r--r--altosui/AltosConfigTDUI.java2
-rw-r--r--altosui/AltosFlightStatusUpdate.java1
-rw-r--r--altosui/AltosSerial.java68
-rw-r--r--altosui/Makefile.am2
10 files changed, 134 insertions, 238 deletions
diff --git a/altosui/AltosEepromMega.java b/altoslib/AltosEepromMega.java
index 8ae485cb..2628279e 100644
--- a/altosui/AltosEepromMega.java
+++ b/altoslib/AltosEepromMega.java
@@ -15,13 +15,8 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package altosui;
+package org.altusmetrum.AltosLib;
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.table.*;
import java.io.*;
import java.util.*;
import java.text.*;
@@ -33,11 +28,11 @@ public class AltosEepromMega {
public int tick;
public boolean valid;
public String data;
- int a, b;
+ public int a, b;
public int data8[];
- static final int record_length = 32;
+ public static final int record_length = 32;
static final int header_length = 4;
static final int data_length = record_length - header_length;
@@ -97,7 +92,7 @@ public class AltosEepromMega {
throw new ParseException(String.format("invalid checksum at 0x%x",
chunk.address + start), 0);
} else {
- cmd = Altos.AO_LOG_INVALID;
+ cmd = AltosLib.AO_LOG_INVALID;
}
tick = chunk.data16(start+2);
@@ -112,7 +107,7 @@ public class AltosEepromMega {
tick = 0;
if (line == null) {
- cmd = Altos.AO_LOG_INVALID;
+ cmd = AltosLib.AO_LOG_INVALID;
line = "";
} else {
try {
@@ -120,7 +115,7 @@ public class AltosEepromMega {
if (tokens[0].length() == 1) {
if (tokens.length != 2 + data_length) {
- cmd = Altos.AO_LOG_INVALID;
+ cmd = AltosLib.AO_LOG_INVALID;
data = line;
} else {
cmd = tokens[0].codePointAt(0);
@@ -131,80 +126,80 @@ public class AltosEepromMega {
data8[i] = Integer.parseInt(tokens[2 + i],16);
}
} else if (tokens[0].equals("Config") && tokens[1].equals("version:")) {
- cmd = Altos.AO_LOG_CONFIG_VERSION;
+ cmd = AltosLib.AO_LOG_CONFIG_VERSION;
data = tokens[2];
} else if (tokens[0].equals("Main") && tokens[1].equals("deploy:")) {
- cmd = Altos.AO_LOG_MAIN_DEPLOY;
+ cmd = AltosLib.AO_LOG_MAIN_DEPLOY;
a = Integer.parseInt(tokens[2]);
} else if (tokens[0].equals("Apogee") && tokens[1].equals("delay:")) {
- cmd = Altos.AO_LOG_APOGEE_DELAY;
+ cmd = AltosLib.AO_LOG_APOGEE_DELAY;
a = Integer.parseInt(tokens[2]);
} else if (tokens[0].equals("Radio") && tokens[1].equals("channel:")) {
- cmd = Altos.AO_LOG_RADIO_CHANNEL;
+ cmd = AltosLib.AO_LOG_RADIO_CHANNEL;
a = Integer.parseInt(tokens[2]);
} else if (tokens[0].equals("Callsign:")) {
- cmd = Altos.AO_LOG_CALLSIGN;
+ cmd = AltosLib.AO_LOG_CALLSIGN;
data = tokens[1].replaceAll("\"","");
} else if (tokens[0].equals("Accel") && tokens[1].equals("cal")) {
- cmd = Altos.AO_LOG_ACCEL_CAL;
+ cmd = AltosLib.AO_LOG_ACCEL_CAL;
a = Integer.parseInt(tokens[3]);
b = Integer.parseInt(tokens[5]);
} else if (tokens[0].equals("Radio") && tokens[1].equals("cal:")) {
- cmd = Altos.AO_LOG_RADIO_CAL;
+ cmd = AltosLib.AO_LOG_RADIO_CAL;
a = Integer.parseInt(tokens[2]);
} else if (tokens[0].equals("Max") && tokens[1].equals("flight") && tokens[2].equals("log:")) {
- cmd = Altos.AO_LOG_MAX_FLIGHT_LOG;
+ cmd = AltosLib.AO_LOG_MAX_FLIGHT_LOG;
a = Integer.parseInt(tokens[3]);
} else if (tokens[0].equals("manufacturer")) {
- cmd = Altos.AO_LOG_MANUFACTURER;
+ cmd = AltosLib.AO_LOG_MANUFACTURER;
data = tokens[1];
} else if (tokens[0].equals("product")) {
- cmd = Altos.AO_LOG_PRODUCT;
+ cmd = AltosLib.AO_LOG_PRODUCT;
data = tokens[1];
} else if (tokens[0].equals("serial-number")) {
- cmd = Altos.AO_LOG_SERIAL_NUMBER;
+ cmd = AltosLib.AO_LOG_SERIAL_NUMBER;
a = Integer.parseInt(tokens[1]);
} else if (tokens[0].equals("log-format")) {
- cmd = Altos.AO_LOG_LOG_FORMAT;
+ cmd = AltosLib.AO_LOG_LOG_FORMAT;
a = Integer.parseInt(tokens[1]);
} else if (tokens[0].equals("software-version")) {
- cmd = Altos.AO_LOG_SOFTWARE_VERSION;
+ cmd = AltosLib.AO_LOG_SOFTWARE_VERSION;
data = tokens[1];
} else if (tokens[0].equals("ms5607")) {
if (tokens[1].equals("reserved:")) {
- cmd = Altos.AO_LOG_BARO_RESERVED;
+ cmd = AltosLib.AO_LOG_BARO_RESERVED;
a = Integer.parseInt(tokens[2]);
} else if (tokens[1].equals("sens:")) {
- cmd = Altos.AO_LOG_BARO_SENS;
+ cmd = AltosLib.AO_LOG_BARO_SENS;
a = Integer.parseInt(tokens[2]);
} else if (tokens[1].equals("off:")) {
- cmd = Altos.AO_LOG_BARO_OFF;
+ cmd = AltosLib.AO_LOG_BARO_OFF;
a = Integer.parseInt(tokens[2]);
} else if (tokens[1].equals("tcs:")) {
- cmd = Altos.AO_LOG_BARO_TCS;
+ cmd = AltosLib.AO_LOG_BARO_TCS;
a = Integer.parseInt(tokens[2]);
} else if (tokens[1].equals("tco:")) {
- cmd = Altos.AO_LOG_BARO_TCO;
+ cmd = AltosLib.AO_LOG_BARO_TCO;
a = Integer.parseInt(tokens[2]);
} else if (tokens[1].equals("tref:")) {
- cmd = Altos.AO_LOG_BARO_TREF;
+ cmd = AltosLib.AO_LOG_BARO_TREF;
a = Integer.parseInt(tokens[2]);
} else if (tokens[1].equals("tempsens:")) {
- cmd = Altos.AO_LOG_BARO_TEMPSENS;
+ cmd = AltosLib.AO_LOG_BARO_TEMPSENS;
a = Integer.parseInt(tokens[2]);
} else if (tokens[1].equals("crc:")) {
- cmd = Altos.AO_LOG_BARO_CRC;
+ cmd = AltosLib.AO_LOG_BARO_CRC;
a = Integer.parseInt(tokens[2]);
} else {
- cmd = Altos.AO_LOG_INVALID;
+ cmd = AltosLib.AO_LOG_INVALID;
data = line;
}
} else {
- cmd = Altos.AO_LOG_INVALID;
+ cmd = AltosLib.AO_LOG_INVALID;
data = line;
}
} catch (NumberFormatException ne) {
- cmd = Altos.AO_LOG_INVALID;
+ cmd = AltosLib.AO_LOG_INVALID;
data = line;
}
}
diff --git a/altosui/AltosEepromMegaIterable.java b/altoslib/AltosEepromMegaIterable.java
index e2cd2785..28a298b3 100644
--- a/altosui/AltosEepromMegaIterable.java
+++ b/altoslib/AltosEepromMegaIterable.java
@@ -15,13 +15,8 @@
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package altosui;
+package org.altusmetrum.AltosLib;
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.table.*;
import java.io.*;
import java.util.*;
import java.text.*;
@@ -116,7 +111,7 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
void update_state(AltosRecord state, AltosEepromMega record, EepromState eeprom) {
state.tick = record.tick;
switch (record.cmd) {
- case Altos.AO_LOG_FLIGHT:
+ case AltosLib.AO_LOG_FLIGHT:
eeprom.seen |= seen_flight;
state.ground_accel = record.ground_accel();
state.flight_accel = record.ground_accel();
@@ -125,7 +120,7 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
state.flight = record.data16(0);
eeprom.boost_tick = record.tick;
break;
- case Altos.AO_LOG_SENSOR:
+ case AltosLib.AO_LOG_SENSOR:
state.accel = record.accel();
state.pres = baro.set(record.pres(), record.temp());
state.temp = baro.cc;
@@ -140,7 +135,7 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
state.mag.x = record.mag_x();
state.mag.y = record.mag_y();
state.mag.z = record.mag_z();
- if (state.state < Altos.ao_flight_boost) {
+ if (state.state < AltosLib.ao_flight_boost) {
eeprom.n_pad_samples++;
eeprom.ground_pres += state.pres;
state.ground_pres = (int) (eeprom.ground_pres / eeprom.n_pad_samples);
@@ -156,7 +151,7 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
eeprom.sensor_tick = record.tick;
has_accel = true;
break;
- case Altos.AO_LOG_PRESSURE:
+ case AltosLib.AO_LOG_PRESSURE:
state.pres = record.b;
state.flight_pres = state.pres;
if (eeprom.n_pad_samples == 0) {
@@ -165,20 +160,20 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
}
eeprom.seen |= seen_sensor;
break;
- case Altos.AO_LOG_TEMP_VOLT:
+ case AltosLib.AO_LOG_TEMP_VOLT:
state.batt = record.v_batt();
eeprom.seen |= seen_temp_volt;
break;
- case Altos.AO_LOG_DEPLOY:
+ case AltosLib.AO_LOG_DEPLOY:
state.drogue = record.a;
state.main = record.b;
eeprom.seen |= seen_deploy;
has_ignite = true;
break;
- case Altos.AO_LOG_STATE:
+ case AltosLib.AO_LOG_STATE:
state.state = record.state();
break;
- case Altos.AO_LOG_GPS_TIME:
+ case AltosLib.AO_LOG_GPS_TIME:
eeprom.gps_tick = state.tick;
AltosGPS old = state.gps;
state.gps = new AltosGPS();
@@ -194,85 +189,85 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
state.gps.second = (record.b & 0xff);
int flags = (record.b >> 8);
- state.gps.connected = (flags & Altos.AO_GPS_RUNNING) != 0;
- state.gps.locked = (flags & Altos.AO_GPS_VALID) != 0;
- state.gps.nsat = (flags & Altos.AO_GPS_NUM_SAT_MASK) >>
- Altos.AO_GPS_NUM_SAT_SHIFT;
+ state.gps.connected = (flags & AltosLib.AO_GPS_RUNNING) != 0;
+ state.gps.locked = (flags & AltosLib.AO_GPS_VALID) != 0;
+ state.gps.nsat = (flags & AltosLib.AO_GPS_NUM_SAT_MASK) >>
+ AltosLib.AO_GPS_NUM_SAT_SHIFT;
state.new_gps = true;
has_gps = true;
break;
- case Altos.AO_LOG_GPS_LAT:
+ case AltosLib.AO_LOG_GPS_LAT:
int lat32 = record.a | (record.b << 16);
state.gps.lat = (double) lat32 / 1e7;
break;
- case Altos.AO_LOG_GPS_LON:
+ case AltosLib.AO_LOG_GPS_LON:
int lon32 = record.a | (record.b << 16);
state.gps.lon = (double) lon32 / 1e7;
break;
- case Altos.AO_LOG_GPS_ALT:
+ case AltosLib.AO_LOG_GPS_ALT:
state.gps.alt = record.a;
break;
- case Altos.AO_LOG_GPS_SAT:
+ case AltosLib.AO_LOG_GPS_SAT:
if (state.tick == eeprom.gps_tick) {
int svid = record.a;
int c_n0 = record.b >> 8;
state.gps.add_sat(svid, c_n0);
}
break;
- case Altos.AO_LOG_GPS_DATE:
+ case AltosLib.AO_LOG_GPS_DATE:
state.gps.year = (record.a & 0xff) + 2000;
state.gps.month = record.a >> 8;
state.gps.day = record.b & 0xff;
break;
- case Altos.AO_LOG_CONFIG_VERSION:
+ case AltosLib.AO_LOG_CONFIG_VERSION:
break;
- case Altos.AO_LOG_MAIN_DEPLOY:
+ case AltosLib.AO_LOG_MAIN_DEPLOY:
break;
- case Altos.AO_LOG_APOGEE_DELAY:
+ case AltosLib.AO_LOG_APOGEE_DELAY:
break;
- case Altos.AO_LOG_RADIO_CHANNEL:
+ case AltosLib.AO_LOG_RADIO_CHANNEL:
break;
- case Altos.AO_LOG_CALLSIGN:
+ case AltosLib.AO_LOG_CALLSIGN:
state.callsign = record.data;
break;
- case Altos.AO_LOG_ACCEL_CAL:
+ case AltosLib.AO_LOG_ACCEL_CAL:
state.accel_plus_g = record.a;
state.accel_minus_g = record.b;
break;
- case Altos.AO_LOG_RADIO_CAL:
+ case AltosLib.AO_LOG_RADIO_CAL:
break;
- case Altos.AO_LOG_MANUFACTURER:
+ case AltosLib.AO_LOG_MANUFACTURER:
break;
- case Altos.AO_LOG_PRODUCT:
+ case AltosLib.AO_LOG_PRODUCT:
break;
- case Altos.AO_LOG_SERIAL_NUMBER:
+ case AltosLib.AO_LOG_SERIAL_NUMBER:
state.serial = record.a;
break;
- case Altos.AO_LOG_SOFTWARE_VERSION:
+ case AltosLib.AO_LOG_SOFTWARE_VERSION:
break;
- case Altos.AO_LOG_BARO_RESERVED:
+ case AltosLib.AO_LOG_BARO_RESERVED:
baro.reserved = record.a;
break;
- case Altos.AO_LOG_BARO_SENS:
+ case AltosLib.AO_LOG_BARO_SENS:
baro.sens =record.a;
break;
- case Altos.AO_LOG_BARO_OFF:
+ case AltosLib.AO_LOG_BARO_OFF:
baro.off =record.a;
break;
- case Altos.AO_LOG_BARO_TCS:
+ case AltosLib.AO_LOG_BARO_TCS:
baro.tcs =record.a;
break;
- case Altos.AO_LOG_BARO_TCO:
+ case AltosLib.AO_LOG_BARO_TCO:
baro.tco =record.a;
break;
- case Altos.AO_LOG_BARO_TREF:
+ case AltosLib.AO_LOG_BARO_TREF:
baro.tref =record.a;
break;
- case Altos.AO_LOG_BARO_TEMPSENS:
+ case AltosLib.AO_LOG_BARO_TEMPSENS:
baro.tempsens =record.a;
break;
- case Altos.AO_LOG_BARO_CRC:
+ case AltosLib.AO_LOG_BARO_CRC:
baro.crc =record.a;
break;
}
@@ -287,7 +282,7 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
boolean last_reported = false;
EepromState eeprom = new EepromState();
- state.state = Altos.ao_flight_pad;
+ state.state = AltosLib.ao_flight_pad;
state.accel_plus_g = 15758;
state.accel_minus_g = 16294;
@@ -328,64 +323,64 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
while (iterator.hasNext()) {
AltosOrderedMegaRecord record = iterator.next();
switch (record.cmd) {
- case Altos.AO_LOG_CONFIG_VERSION:
+ case AltosLib.AO_LOG_CONFIG_VERSION:
out.printf("# Config version: %s\n", record.data);
break;
- case Altos.AO_LOG_MAIN_DEPLOY:
+ case AltosLib.AO_LOG_MAIN_DEPLOY:
out.printf("# Main deploy: %s\n", record.a);
break;
- case Altos.AO_LOG_APOGEE_DELAY:
+ case AltosLib.AO_LOG_APOGEE_DELAY:
out.printf("# Apogee delay: %s\n", record.a);
break;
- case Altos.AO_LOG_RADIO_CHANNEL:
+ case AltosLib.AO_LOG_RADIO_CHANNEL:
out.printf("# Radio channel: %s\n", record.a);
break;
- case Altos.AO_LOG_CALLSIGN:
+ case AltosLib.AO_LOG_CALLSIGN:
out.printf("# Callsign: %s\n", record.data);
break;
- case Altos.AO_LOG_ACCEL_CAL:
+ case AltosLib.AO_LOG_ACCEL_CAL:
out.printf ("# Accel cal: %d %d\n", record.a, record.b);
break;
- case Altos.AO_LOG_RADIO_CAL:
+ case AltosLib.AO_LOG_RADIO_CAL:
out.printf ("# Radio cal: %d\n", record.a);
break;
- case Altos.AO_LOG_MAX_FLIGHT_LOG:
+ case AltosLib.AO_LOG_MAX_FLIGHT_LOG:
out.printf ("# Max flight log: %d\n", record.a);
break;
- case Altos.AO_LOG_MANUFACTURER:
+ case AltosLib.AO_LOG_MANUFACTURER:
out.printf ("# Manufacturer: %s\n", record.data);
break;
- case Altos.AO_LOG_PRODUCT:
+ case AltosLib.AO_LOG_PRODUCT:
out.printf ("# Product: %s\n", record.data);
break;
- case Altos.AO_LOG_SERIAL_NUMBER:
+ case AltosLib.AO_LOG_SERIAL_NUMBER:
out.printf ("# Serial number: %d\n", record.a);
break;
- case Altos.AO_LOG_SOFTWARE_VERSION:
+ case AltosLib.AO_LOG_SOFTWARE_VERSION:
out.printf ("# Software version: %s\n", record.data);
break;
- case Altos.AO_LOG_BARO_RESERVED:
+ case AltosLib.AO_LOG_BARO_RESERVED:
out.printf ("# Baro reserved: %d\n", record.a);
break;
- case Altos.AO_LOG_BARO_SENS:
+ case AltosLib.AO_LOG_BARO_SENS:
out.printf ("# Baro sens: %d\n", record.a);
break;
- case Altos.AO_LOG_BARO_OFF:
+ case AltosLib.AO_LOG_BARO_OFF:
out.printf ("# Baro off: %d\n", record.a);
break;
- case Altos.AO_LOG_BARO_TCS:
+ case AltosLib.AO_LOG_BARO_TCS:
out.printf ("# Baro tcs: %d\n", record.a);
break;
- case Altos.AO_LOG_BARO_TCO:
+ case AltosLib.AO_LOG_BARO_TCO:
out.printf ("# Baro tco: %d\n", record.a);
break;
- case Altos.AO_LOG_BARO_TREF:
+ case AltosLib.AO_LOG_BARO_TREF:
out.printf ("# Baro tref: %d\n", record.a);
break;
- case Altos.AO_LOG_BARO_TEMPSENS:
+ case AltosLib.AO_LOG_BARO_TEMPSENS:
out.printf ("# Baro tempsens: %d\n", record.a);
break;
- case Altos.AO_LOG_BARO_CRC:
+ case AltosLib.AO_LOG_BARO_CRC:
out.printf ("# Baro crc: %d\n", record.a);
break;
}
@@ -408,10 +403,10 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
int seconds = hour * 3600 + minute * 60 + second;
/* Make sure this looks like a good GPS value */
- if ((flags & Altos.AO_GPS_NUM_SAT_MASK) >> Altos.AO_GPS_NUM_SAT_SHIFT < 4)
- flags = (flags & ~Altos.AO_GPS_NUM_SAT_MASK) | (4 << Altos.AO_GPS_NUM_SAT_SHIFT);
- flags |= Altos.AO_GPS_RUNNING;
- flags |= Altos.AO_GPS_VALID;
+ if ((flags & AltosLib.AO_GPS_NUM_SAT_MASK) >> AltosLib.AO_GPS_NUM_SAT_SHIFT < 4)
+ flags = (flags & ~AltosLib.AO_GPS_NUM_SAT_MASK) | (4 << AltosLib.AO_GPS_NUM_SAT_SHIFT);
+ flags |= AltosLib.AO_GPS_RUNNING;
+ flags |= AltosLib.AO_GPS_VALID;
int new_seconds = seconds + diff;
if (new_seconds < 0)
@@ -453,12 +448,12 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
AltosOrderedMegaRecord record = new AltosOrderedMegaRecord(line, index++, prev_tick, prev_tick_valid);
if (record == null)
break;
- if (record.cmd == Altos.AO_LOG_INVALID)
+ if (record.cmd == AltosLib.AO_LOG_INVALID)
continue;
prev_tick = record.tick;
- if (record.cmd < Altos.AO_LOG_CONFIG_VERSION)
+ if (record.cmd < AltosLib.AO_LOG_CONFIG_VERSION)
prev_tick_valid = true;
- if (record.cmd == Altos.AO_LOG_FLIGHT) {
+ if (record.cmd == AltosLib.AO_LOG_FLIGHT) {
flight_record = record;
continue;
}
@@ -469,19 +464,19 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
* record. Detect the loss of the GPS date and fix up the
* missing time records
*/
- if (record.cmd == Altos.AO_LOG_GPS_DATE) {
+ if (record.cmd == AltosLib.AO_LOG_GPS_DATE) {
gps_date_record = record;
continue;
}
/* go back and fix up any missing time values */
- if (record.cmd == Altos.AO_LOG_GPS_TIME) {
+ if (record.cmd == AltosLib.AO_LOG_GPS_TIME) {
last_gps_time = record;
if (missing_time) {
Iterator<AltosOrderedMegaRecord> iterator = records.iterator();
while (iterator.hasNext()) {
AltosOrderedMegaRecord old = iterator.next();
- if (old.cmd == Altos.AO_LOG_GPS_TIME &&
+ if (old.cmd == AltosLib.AO_LOG_GPS_TIME &&
old.a == -1 && old.b == -1)
{
update_time(record, old);
@@ -491,9 +486,9 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
}
}
- if (record.cmd == Altos.AO_LOG_GPS_LAT) {
+ if (record.cmd == AltosLib.AO_LOG_GPS_LAT) {
if (last_gps_time == null || last_gps_time.tick != record.tick) {
- AltosOrderedMegaRecord add_gps_time = new AltosOrderedMegaRecord(Altos.AO_LOG_GPS_TIME,
+ AltosOrderedMegaRecord add_gps_time = new AltosOrderedMegaRecord(AltosLib.AO_LOG_GPS_TIME,
record.tick,
-1, -1, index-1);
if (last_gps_time != null)
@@ -508,8 +503,8 @@ public class AltosEepromMegaIterable extends AltosRecordIterable {
records.add(record);
/* Bail after reading the 'landed' record; we're all done */
- if (record.cmd == Altos.AO_LOG_STATE &&
- record.a == Altos.ao_flight_landed)
+ if (record.cmd == AltosLib.AO_LOG_STATE &&
+ record.a == AltosLib.ao_flight_landed)
break;
}
} catch (IOException io) {
diff --git a/altoslib/AltosLink.java b/altoslib/AltosLink.java
index 9b80e916..77b400fc 100644
--- a/altoslib/AltosLink.java
+++ b/altoslib/AltosLink.java
@@ -141,6 +141,31 @@ public abstract class AltosLink {
return AltosLib.telemetry_len(telemetry);
}
+ private void set_radio_freq(int frequency) {
+ if (monitor_mode)
+ printf("m 0\nc F %d\nm %x\n",
+ frequency, telemetry_len());
+ else
+ printf("c F %d\n", frequency);
+ flush_output();
+ }
+
+ public void set_radio_frequency(double frequency,
+ boolean has_frequency,
+ boolean has_setting,
+ int cal) {
+ if (debug)
+ System.out.printf("set_radio_frequency %7.3f (freq %b) (set %b) %d\n", frequency, has_frequency, has_setting, cal);
+ if (frequency == 0)
+ return;
+ if (has_frequency)
+ set_radio_freq((int) Math.floor (frequency * 1000));
+ else if (has_setting)
+ set_radio_setting(AltosConvert.radio_frequency_to_setting(frequency, cal));
+ else
+ set_channel(AltosConvert.radio_frequency_to_channel(frequency));
+ }
+
public void set_telemetry(int in_telemetry) {
telemetry = in_telemetry;
if (monitor_mode)
diff --git a/altoslib/Makefile.am b/altoslib/Makefile.am
index 2e4a795a..f644d46a 100644
--- a/altoslib/Makefile.am
+++ b/altoslib/Makefile.am
@@ -17,6 +17,8 @@ AltosLib_JAVA = \
$(SRC)/AltosEepromChunk.java \
$(SRC)/AltosEepromIterable.java \
$(SRC)/AltosEepromLog.java \
+ $(SRC)/AltosEepromMega.java \
+ $(SRC)/AltosEepromMegaIterable.java \
$(SRC)/AltosEepromRecord.java \
$(SRC)/AltosEepromTeleScience.java \
$(SRC)/AltosFile.java \
diff --git a/altosui/Altos.java b/altosui/Altos.java
index 334ddb07..351927ee 100644
--- a/altosui/Altos.java
+++ b/altosui/Altos.java
@@ -72,62 +72,6 @@ public class Altos extends AltosLib {
static final int text_width = 20;
- static void initialize_map()
- {
- string_to_state.put("startup", ao_flight_startup);
- string_to_state.put("idle", ao_flight_idle);
- string_to_state.put("pad", ao_flight_pad);
- string_to_state.put("boost", ao_flight_boost);
- string_to_state.put("fast", ao_flight_fast);
- string_to_state.put("coast", ao_flight_coast);
- string_to_state.put("drogue", ao_flight_drogue);
- string_to_state.put("apogee", ao_flight_coast);
- string_to_state.put("main", ao_flight_main);
- string_to_state.put("landed", ao_flight_landed);
- string_to_state.put("invalid", ao_flight_invalid);
- map_initialized = true;
- }
-
- static int telemetry_len(int telemetry) {
- if (telemetry <= ao_telemetry_max)
- return ao_telemetry_len[telemetry];
- throw new IllegalArgumentException(String.format("Invalid telemetry %d",
- telemetry));
- }
-
- static String telemetry_name(int telemetry) {
- if (telemetry <= ao_telemetry_max)
- return ao_telemetry_name[telemetry];
- throw new IllegalArgumentException(String.format("Invalid telemetry %d",
- telemetry));
- }
-
- static String[] state_to_string = {
- "startup",
- "idle",
- "pad",
- "boost",
- "fast",
- "coast",
- "drogue",
- "main",
- "landed",
- "invalid",
- };
-
- static String[] state_to_string_capital = {
- "Startup",
- "Idle",
- "Pad",
- "Boost",
- "Fast",
- "Coast",
- "Drogue",
- "Main",
- "Landed",
- "Invalid",
- };
-
static public int state(String state) {
if (!map_initialized)
initialize_map();
diff --git a/altosui/AltosConfigTD.java b/altosui/AltosConfigTD.java
index d3c452e1..4048166c 100644
--- a/altosui/AltosConfigTD.java
+++ b/altosui/AltosConfigTD.java
@@ -30,6 +30,8 @@ import java.util.concurrent.*;
import libaltosJNI.*;
+import org.altusmetrum.AltosLib.*;
+
public class AltosConfigTD implements ActionListener {
class int_ref {
diff --git a/altosui/AltosConfigTDUI.java b/altosui/AltosConfigTDUI.java
index 9f6badc7..f2058f69 100644
--- a/altosui/AltosConfigTDUI.java
+++ b/altosui/AltosConfigTDUI.java
@@ -31,6 +31,8 @@ import java.util.concurrent.LinkedBlockingQueue;
import libaltosJNI.*;
+import org.altusmetrum.AltosLib.*;
+
public class AltosConfigTDUI
extends AltosDialog
implements ActionListener, ItemListener, DocumentListener
diff --git a/altosui/AltosFlightStatusUpdate.java b/altosui/AltosFlightStatusUpdate.java
index a600bd02..d70fc7f8 100644
--- a/altosui/AltosFlightStatusUpdate.java
+++ b/altosui/AltosFlightStatusUpdate.java
@@ -27,6 +27,7 @@ import java.util.*;
import java.text.*;
import java.util.prefs.*;
import java.util.concurrent.*;
+import org.altusmetrum.AltosLib.*;
public class AltosFlightStatusUpdate implements ActionListener {
diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java
index 3abdb645..5768ba71 100644
--- a/altosui/AltosSerial.java
+++ b/altosui/AltosSerial.java
@@ -317,74 +317,6 @@ public class AltosSerial extends AltosLink implements Runnable {
set_channel(AltosConvert.radio_frequency_to_channel(frequency));
}
- public void set_radio_frequency(double in_frequency) throws InterruptedException, TimeoutException {
- frequency = in_frequency;
- if (frequency == 0.0)
- frequency = AltosPreferences.frequency(device.getSerial());
- config_data();
- set_radio_frequency(frequency,
- config_data.radio_frequency != 0,
- config_data.radio_setting != 0,
- config_data.radio_calibration);
- }
-
- public void set_telemetry(int in_telemetry) {
- telemetry = in_telemetry;
- if (altos != null) {
- if (monitor_mode)
- printf("m 0\nm %x\n", telemetry_len());
- flush_output();
- }
- }
-
- void set_monitor(boolean monitor) {
- monitor_mode = monitor;
- if (altos != null) {
- if (monitor)
- printf("m %x\n", telemetry_len());
- else
- printf("m 0\n");
- flush_output();
- }
- }
-
- public void set_callsign(String callsign) {
- if (altos != null) {
- printf ("c c %s\n", callsign);
- flush_output();
- }
- }
-
- public AltosConfigData config_data() throws InterruptedException, TimeoutException {
- if (config_data == null)
- config_data = new AltosConfigData(this);
- return config_data;
- }
-
- public void start_remote() throws TimeoutException, InterruptedException {
- if (debug)
- System.out.printf("start remote %7.3f\n", frequency);
- if (frequency == 0.0)
- frequency = AltosUIPreferences.frequency(device.getSerial());
- set_radio_frequency(frequency);
- set_callsign(AltosUIPreferences.callsign());
- printf("p\nE 0\n");
- flush_input();
- remote = true;
- }
-
- public void stop_remote() throws InterruptedException {
- if (debug)
- System.out.printf("stop remote\n");
- try {
- flush_input();
- } finally {
- printf ("~\n");
- flush_output();
- }
- remote = false;
- }
-
public void set_frame(Frame in_frame) {
frame = in_frame;
}
diff --git a/altosui/Makefile.am b/altosui/Makefile.am
index 9fc7b5b3..feda00c7 100644
--- a/altosui/Makefile.am
+++ b/altosui/Makefile.am
@@ -40,8 +40,6 @@ altosui_JAVA = \
AltosEepromList.java \
AltosEepromManage.java \
AltosEepromMonitor.java \
- AltosEepromMega.java \
- AltosEepromMegaIterable.java \
AltosEepromSelect.java \
AltosFlash.java \
AltosFlashUI.java \