diff options
| author | Keith Packard <keithp@keithp.com> | 2012-01-02 20:32:35 -0800 |
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2012-01-02 20:32:35 -0800 |
| commit | 0b7cfac3fba549abaaddc2b4fba825766199a4fc (patch) | |
| tree | 06a1e3f2f6611d4355050ef62f055e456132a335 /altosui/AltosConfigData.java | |
| parent | 5a249bcabfa2a0f5ae5c620f2b3b93c7dff879fd (diff) | |
altosui: Add back in the split-out Altos constants as AltosLib
These were pulled out of Altos.java, but not added back to git
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosConfigData.java')
| -rw-r--r-- | altosui/AltosConfigData.java | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/altosui/AltosConfigData.java b/altosui/AltosConfigData.java deleted file mode 100644 index a331a357..00000000 --- a/altosui/AltosConfigData.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright © 2011 Keith Packard <keithp@keithp.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ - -package altosui; - -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 AltosConfigData implements Iterable<String> { - - /* Version information */ - String manufacturer; - String product; - String version; - int log_format; - int serial; - - /* Strings returned */ - LinkedList<String> lines; - - /* Config information */ - int config_major; - int config_minor; - int main_deploy; - int apogee_delay; - int radio_channel; - int radio_setting; - String callsign; - int accel_cal_plus, accel_cal_minus; - int radio_calibration; - int flight_log_max; - int ignite_mode; - int stored_flight; - int storage_size; - int storage_erase_unit; - - static String get_string(String line, String label) throws ParseException { - if (line.startsWith(label)) { - String quoted = line.substring(label.length()).trim(); - - if (quoted.startsWith("\"")) - quoted = quoted.substring(1); - if (quoted.endsWith("\"")) - quoted = quoted.substring(0,quoted.length()-1); - return quoted; - } - throw new ParseException("mismatch", 0); - } - - static int get_int(String line, String label) throws NumberFormatException, ParseException { - if (line.startsWith(label)) { - String tail = line.substring(label.length()).trim(); - String[] tokens = tail.split("\\s+"); - if (tokens.length > 0) - return Integer.parseInt(tokens[0]); - } - throw new ParseException("mismatch", 0); - } - - public Iterator<String> iterator() { - 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\nl\nv\n"); - lines = new LinkedList<String>(); - radio_setting = 0; - stored_flight = 0; - for (;;) { - String line = serial_line.get_reply(); - if (line == null) - throw new TimeoutException(); - if (line.contains("Syntax error")) - continue; - lines.add(line); - try { serial = get_int(line, "serial-number"); } catch (Exception e) {} - try { log_format = get_int(line, "log-format"); } catch (Exception e) {} - try { main_deploy = get_int(line, "Main deploy:"); } catch (Exception e) {} - try { apogee_delay = get_int(line, "Apogee delay:"); } catch (Exception e) {} - try { radio_channel = get_int(line, "Radio channel:"); } catch (Exception e) {} - try { radio_setting = get_int(line, "Radio setting:"); } catch (Exception e) {} - try { - if (line.startsWith("Accel cal")) { - String[] bits = line.split("\\s+"); - if (bits.length >= 6) { - accel_cal_plus = Integer.parseInt(bits[3]); - accel_cal_minus = Integer.parseInt(bits[5]); - } - } - } catch (Exception e) {} - try { radio_calibration = get_int(line, "Radio cal:"); } catch (Exception e) {} - try { flight_log_max = get_int(line, "Max flight log:"); } catch (Exception e) {} - try { ignite_mode = get_int(line, "Ignite mode:"); } catch (Exception e) {} - try { callsign = get_string(line, "Callsign:"); } catch (Exception e) {} - 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) {} - - /* signals the end of the version info */ - if (line.startsWith("software-version")) - break; - } - } - -}
\ No newline at end of file |
