diff options
| author | Keith Packard <keithp@keithp.com> | 2012-01-02 20:57:57 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2012-06-02 19:27:54 -0700 | 
| commit | a4ccdd253a9873c16f194a63a79f0c26feaafa29 (patch) | |
| tree | 5debb7db701dce66e1cedce841ddcc57f46e7feb | |
| parent | 89aa06cfdcb02de1894ccb01aed97782f9eec9b2 (diff) | |
altosui: Move eeprom managment code to library
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | altosui/Makefile.am | 2 | ||||
| -rw-r--r-- | altosui/altoslib/Makefile.am | 2 | ||||
| -rw-r--r-- | altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromIterable.java (renamed from altosui/AltosEepromIterable.java) | 118 | ||||
| -rw-r--r-- | altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromRecord.java (renamed from altosui/AltosEepromRecord.java) | 46 | 
4 files changed, 77 insertions, 91 deletions
| diff --git a/altosui/Makefile.am b/altosui/Makefile.am index 01732749..a168b6fc 100644 --- a/altosui/Makefile.am +++ b/altosui/Makefile.am @@ -43,8 +43,6 @@ altosui_JAVA = \  	AltosEepromLog.java \  	AltosEepromManage.java \  	AltosEepromMonitor.java \ -	AltosEepromIterable.java \ -	AltosEepromRecord.java \  	AltosEepromTeleScience.java \  	AltosEepromMega.java \  	AltosEepromMegaIterable.java \ diff --git a/altosui/altoslib/Makefile.am b/altosui/altoslib/Makefile.am index cce9b4c4..ad4d2d98 100644 --- a/altosui/altoslib/Makefile.am +++ b/altosui/altoslib/Makefile.am @@ -15,6 +15,8 @@ AltosLib_JAVA = \  	$(SRC)/AltosConvert.java \  	$(SRC)/AltosCRCException.java \  	$(SRC)/AltosEepromChunk.java \ +	$(SRC)/AltosEepromIterable.java \ +	$(SRC)/AltosEepromRecord.java \  	$(SRC)/AltosFrequency.java \  	$(SRC)/AltosGPS.java \  	$(SRC)/AltosGPSSat.java \ diff --git a/altosui/AltosEepromIterable.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromIterable.java index 11cb97e4..f1397c7b 100644 --- a/altosui/AltosEepromIterable.java +++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromIterable.java @@ -15,19 +15,13 @@   * 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.*;  import java.util.prefs.*;  import java.util.concurrent.LinkedBlockingQueue; -import org.altusmetrum.AltosLib.*;  /*   * AltosRecords with an index field so they can be sorted by tick while preserving @@ -113,17 +107,17 @@ public class AltosEepromIterable extends AltosRecordIterable {  	void update_state(AltosRecord state, AltosEepromRecord 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.a;  			state.flight_accel = record.a;  			state.flight = record.b;  			eeprom.boost_tick = record.tick;  			break; -		case Altos.AO_LOG_SENSOR: +		case AltosLib.AO_LOG_SENSOR:  			state.accel = record.a;  			state.pres = record.b; -			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); @@ -139,7 +133,7 @@ public class AltosEepromIterable 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) { @@ -148,21 +142,21 @@ public class AltosEepromIterable extends AltosRecordIterable {  			}  			eeprom.seen |= seen_sensor;  			break; -		case Altos.AO_LOG_TEMP_VOLT: +		case AltosLib.AO_LOG_TEMP_VOLT:  			state.temp = record.a;  			state.batt = record.b;  			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.a;  			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(); @@ -178,62 +172,62 @@ public class AltosEepromIterable 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;  		}  		state.seen |= eeprom.seen; @@ -247,7 +241,7 @@ public class AltosEepromIterable 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; @@ -288,40 +282,40 @@ public class AltosEepromIterable extends AltosRecordIterable {  		while (iterator.hasNext()) {  			AltosOrderedRecord	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: @@ -368,10 +362,10 @@ public class AltosEepromIterable 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) @@ -411,12 +405,12 @@ public class AltosEepromIterable extends AltosRecordIterable {  				AltosOrderedRecord record = new AltosOrderedRecord(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;  				} @@ -427,19 +421,19 @@ public class AltosEepromIterable 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<AltosOrderedRecord> iterator = records.iterator();  						while (iterator.hasNext()) {  							AltosOrderedRecord 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); @@ -449,9 +443,9 @@ public class AltosEepromIterable 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) { -						AltosOrderedRecord add_gps_time = new AltosOrderedRecord(Altos.AO_LOG_GPS_TIME, +						AltosOrderedRecord add_gps_time = new AltosOrderedRecord(AltosLib.AO_LOG_GPS_TIME,  													 record.tick,  													 -1, -1, index-1);  						if (last_gps_time != null) @@ -466,8 +460,8 @@ public class AltosEepromIterable 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/altosui/AltosEepromRecord.java b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromRecord.java index ea003a1e..b2f23c52 100644 --- a/altosui/AltosEepromRecord.java +++ b/altosui/altoslib/src/org/altusmetrum/AltosLib/AltosEepromRecord.java @@ -15,21 +15,13 @@   * 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.*;  import java.util.prefs.*;  import java.util.concurrent.*; -import org.altusmetrum.AltosLib.*; - -import libaltosJNI.*;  public class AltosEepromRecord {  	public int	cmd; @@ -52,7 +44,7 @@ public class AltosEepromRecord {  				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); @@ -69,7 +61,7 @@ public class AltosEepromRecord {  		b = 0;  		data = null;  		if (line == null) { -			cmd = Altos.AO_LOG_INVALID; +			cmd = AltosLib.AO_LOG_INVALID;  			data = "";  		} else {  			try { @@ -77,7 +69,7 @@ public class AltosEepromRecord {  				if (tokens[0].length() == 1) {  					if (tokens.length != 4) { -						cmd = Altos.AO_LOG_INVALID; +						cmd = AltosLib.AO_LOG_INVALID;  						data = line;  					} else {  						cmd = tokens[0].codePointAt(0); @@ -87,51 +79,51 @@ public class AltosEepromRecord {  						b = Integer.parseInt(tokens[3],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 { -					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;  			}  		} | 
