diff options
Diffstat (limited to 'altoslib/AltosEepromFile.java')
| -rw-r--r-- | altoslib/AltosEepromFile.java | 116 | 
1 files changed, 6 insertions, 110 deletions
| diff --git a/altoslib/AltosEepromFile.java b/altoslib/AltosEepromFile.java index bb8abf87..4606e780 100644 --- a/altoslib/AltosEepromFile.java +++ b/altoslib/AltosEepromFile.java @@ -22,130 +22,26 @@ import java.io.*;  import java.util.*;  import java.text.*; -class AltosEepromIterator implements Iterator<AltosState> { -	AltosState		state; -	Iterator<AltosEeprom>	body; -	AltosEeprom		next; -	boolean			seen; - -	public boolean hasNext() { -		return !seen || body.hasNext(); -	} - -	public AltosState next() { -		if (seen) { -			AltosState	n = state.clone(); -			AltosEeprom	e = body.next(); - -			e.update_state(n); -			state = n; -		} -		seen = true; -		return state; -	} - -	public void remove () { -	} - -	public AltosEepromIterator(AltosState start, Iterator<AltosEeprom> body) { -		this.state = start; -		this.body = body; -		this.seen = false; -	} -} -  public class AltosEepromFile extends AltosStateIterable { -	AltosEepromIterable	headers; -	AltosEepromIterable	body;  	AltosEepromRecordSet	set; -	AltosState		start; + +	public AltosConfigData config_data() { +		return set.eeprom.config_data(); +	}  	public void write_comments(PrintStream out) { -		headers.write(out);  	}  	public void write(PrintStream out) { -		headers.write(out); -		body.write(out); +		out.printf("%s\n", set.eeprom.toString());  	}  	public AltosEepromFile(Reader input) throws IOException {  		set = new AltosEepromRecordSet(input); - -	} - -	public AltosEepromFile(FileInputStream input) { -		headers = new AltosEepromIterable(AltosEepromHeader.read(input)); - -		start = headers.state(); -		if (start.state() != AltosLib.ao_flight_stateless) -			start.set_state(AltosLib.ao_flight_pad); - -		if (start.log_format == AltosLib.MISSING) { -			if (start.product != null) { -				if (start.product.startsWith("TeleMetrum")) -					start.log_format = AltosLib.AO_LOG_FORMAT_FULL; -				else if (start.product.startsWith("TeleMini")) -					start.log_format = AltosLib.AO_LOG_FORMAT_TINY; -			} -		} - -		switch (start.log_format) { -		case AltosLib.AO_LOG_FORMAT_FULL: -			body = new AltosEepromIterable(AltosEepromTM.read(input)); -			break; -		case AltosLib.AO_LOG_FORMAT_TINY: -			body = new AltosEepromIterable(AltosEepromTMini.read(input)); -			break; -		case AltosLib.AO_LOG_FORMAT_TELEMETRY: -		case AltosLib.AO_LOG_FORMAT_TELESCIENCE: -		case AltosLib.AO_LOG_FORMAT_TELEMEGA: -		case AltosLib.AO_LOG_FORMAT_TELEMEGA_OLD: -			body = new AltosEepromIterable(AltosEepromMega.read(input, start.log_format)); -			break; -		case AltosLib.AO_LOG_FORMAT_TELEMETRUM: -			body = new AltosEepromIterable(AltosEepromMetrum2.read(input)); -			break; -		case AltosLib.AO_LOG_FORMAT_TELEMINI2: -		case AltosLib.AO_LOG_FORMAT_TELEMINI3: -		case AltosLib.AO_LOG_FORMAT_EASYMINI: -			body = new AltosEepromIterable(AltosEepromMini.read(input)); -			break; -		case AltosLib.AO_LOG_FORMAT_TELEGPS: -			body = new AltosEepromIterable(AltosEepromGPS.read(input)); -			break; -		case AltosLib.AO_LOG_FORMAT_TELEFIRETWO: -			body = new AltosEepromIterable(AltosEepromFireTwo.read(input)); -			break; -		default: -			body = new AltosEepromIterable(new LinkedList<AltosEeprom>()); -			break; -		} - -		/* Find boost tick */ -		AltosState	state = start.clone(); -		for (AltosEeprom eeprom : body) { -			eeprom.update_state(state); -			state.finish_update(); -			if (state.state() >= AltosLib.ao_flight_boost) { -				start.set_boost_tick(state.tick); -				break; -			} -		}  	}  	public Iterator<AltosState> iterator() { -		if (set != null) -			return set.iterator(); - -		AltosState		state = start.clone(); -		Iterator<AltosEeprom>	i = body.iterator(); - -		while (i.hasNext() && !state.valid()) { -			i.next().update_state(state); -			state.finish_update(); -		} -		return new AltosEepromIterator(state, i); +		return set.iterator();  	}  } | 
