diff options
| -rw-r--r-- | altosui/AltosConfigData.java | 23 | ||||
| -rw-r--r-- | altosui/AltosIdleMonitorUI.java | 2 | 
2 files changed, 23 insertions, 2 deletions
diff --git a/altosui/AltosConfigData.java b/altosui/AltosConfigData.java index 272dd402..c14dc5a1 100644 --- a/altosui/AltosConfigData.java +++ b/altosui/AltosConfigData.java @@ -54,6 +54,7 @@ public class AltosConfigData implements Iterable<String> {  	int	radio_calibration;  	int	flight_log_max;  	int	ignite_mode; +	int	stored_flight;  	int	storage_size;  	int	storage_erase_unit; @@ -84,10 +85,29 @@ public class AltosConfigData implements Iterable<String> {  		return lines.iterator();  	} +	public int log_available() { +		switch (log_format) { +		case Altos.AO_LOG_FORMAT_TINY: +			if (stored_flight == 0) +				return 1; +			return 0; +		default: +			if (flight_log_max <= 0) +				return 1; +			int	log_space = storage_size - storage_erase_unit; +			int	log_used = stored_flight * flight_log_max; + +			if (log_used >= log_space) +				return 0; +			return (log_space - log_used) / flight_log_max; +		} +	} +  	public AltosConfigData(AltosSerial serial_line) throws InterruptedException, TimeoutException { -		serial_line.printf("c s\nf\nv\n"); +		serial_line.printf("c s\nf\nl\nv\n");  		lines = new LinkedList<String>();  		radio_setting = 0; +		stored_flight = 0;  		for (;;) {  			String line = serial_line.get_reply();  			if (line == null) @@ -117,6 +137,7 @@ public class AltosConfigData implements Iterable<String> {  			try { version = get_string(line,"software-version"); } catch (Exception e) {}  			try { product = get_string(line,"product"); } catch (Exception e) {} +			try { get_int(line, "flight"); stored_flight++; }  catch (Exception e) {}  			try { storage_size = get_int(line, "Storage size:"); } catch (Exception e) {}  			try { storage_erase_unit = get_int(line, "Storage erase unit"); } catch (Exception e) {} diff --git a/altosui/AltosIdleMonitorUI.java b/altosui/AltosIdleMonitorUI.java index 0370efa9..142f0278 100644 --- a/altosui/AltosIdleMonitorUI.java +++ b/altosui/AltosIdleMonitorUI.java @@ -193,7 +193,7 @@ class AltosIdleMonitor extends Thread {  		record.version = 0;  		record.callsign = config_data.callsign;  		record.serial = config_data.serial; -		record.flight = 0; +		record.flight = config_data.log_available() > 0 ? 255 : 0;  		record.rssi = 0;  		record.status = 0;  		record.state = Altos.ao_flight_idle;  | 
