diff options
| -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.java | 25 | ||||
| -rw-r--r-- | altoslib/Makefile.am | 2 | ||||
| -rw-r--r-- | altosui/Altos.java | 56 | ||||
| -rw-r--r-- | altosui/AltosConfigTD.java | 2 | ||||
| -rw-r--r-- | altosui/AltosConfigTDUI.java | 2 | ||||
| -rw-r--r-- | altosui/AltosFlightStatusUpdate.java | 1 | ||||
| -rw-r--r-- | altosui/AltosSerial.java | 68 | ||||
| -rw-r--r-- | altosui/Makefile.am | 2 | 
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 \ | 
