X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosEepromHeader.java;fp=altoslib%2FAltosEepromHeader.java;h=0000000000000000000000000000000000000000;hp=37b666b4bf085af84e1e0772f904fdf1765a897c;hb=0641326842bffbf4b3ae69459ca540131cb64e59;hpb=17e20a6d2dab1f4bd1375bfd9e1c5230ee2c1119 diff --git a/altoslib/AltosEepromHeader.java b/altoslib/AltosEepromHeader.java deleted file mode 100644 index 37b666b4..00000000 --- a/altoslib/AltosEepromHeader.java +++ /dev/null @@ -1,335 +0,0 @@ -/* - * Copyright © 2013 Keith Packard - * - * 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; either version 2 of the License, or - * (at your option) any later version. - * - * 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 org.altusmetrum.altoslib_11; - -import java.io.*; -import java.util.*; -import java.text.*; - -public class AltosEepromHeader extends AltosEeprom { - - public int cmd; - public String data; - public int config_a, config_b, config_c; - public boolean last; - public boolean valid; - - public int record_length () { return 0; } - - /* XXX pull rest of config data to state */ - public void update_state(AltosState state) { - switch (cmd) { - case AltosLib.AO_LOG_CONFIG_VERSION: - break; - case AltosLib.AO_LOG_MAIN_DEPLOY: - break; - case AltosLib.AO_LOG_APOGEE_DELAY: - break; - case AltosLib.AO_LOG_RADIO_CHANNEL: - break; - case AltosLib.AO_LOG_CALLSIGN: - state.set_callsign(data); - break; - case AltosLib.AO_LOG_ACCEL_CAL: - state.set_accel_g(config_a, config_b); - break; - case AltosLib.AO_LOG_RADIO_CAL: - break; - case AltosLib.AO_LOG_MANUFACTURER: - break; - case AltosLib.AO_LOG_PRODUCT: - state.product = data; - break; - case AltosLib.AO_LOG_LOG_FORMAT: - state.set_log_format(config_a); - break; - case AltosLib.AO_LOG_SERIAL_NUMBER: - state.set_serial(config_a); - break; - case AltosLib.AO_LOG_BARO_RESERVED: - state.make_baro(); - state.baro.reserved = config_a; - break; - case AltosLib.AO_LOG_BARO_SENS: - state.make_baro(); - state.baro.sens = config_a; - break; - case AltosLib.AO_LOG_BARO_OFF: - state.make_baro(); - state.baro.off = config_a; - break; - case AltosLib.AO_LOG_BARO_TCS: - state.make_baro(); - state.baro.tcs = config_a; - break; - case AltosLib.AO_LOG_BARO_TCO: - state.make_baro(); - state.baro.tco = config_a; - break; - case AltosLib.AO_LOG_BARO_TREF: - state.make_baro(); - state.baro.tref = config_a; - break; - case AltosLib.AO_LOG_BARO_TEMPSENS: - state.make_baro(); - state.baro.tempsens = config_a; - break; - case AltosLib.AO_LOG_BARO_CRC: - state.make_baro(); - state.baro.crc = config_a; - break; - case AltosLib.AO_LOG_IMU_CAL: - state.set_accel_zero(config_a, config_b, config_c); - break; - case AltosLib.AO_LOG_SOFTWARE_VERSION: - state.set_firmware_version(data); - break; - case AltosLib.AO_LOG_FREQUENCY: - case AltosLib.AO_LOG_APOGEE_LOCKOUT: - case AltosLib.AO_LOG_RADIO_RATE: - case AltosLib.AO_LOG_IGNITE_MODE: - break; - case AltosLib.AO_LOG_PAD_ORIENTATION: - state.set_pad_orientation(config_a); - break; - case AltosLib.AO_LOG_RADIO_ENABLE: - case AltosLib.AO_LOG_AES_KEY: - case AltosLib.AO_LOG_APRS: - case AltosLib.AO_LOG_BEEP_SETTING: - case AltosLib.AO_LOG_TRACKER_SETTING: - case AltosLib.AO_LOG_PYRO_TIME: - case AltosLib.AO_LOG_APRS_ID: - break; - case AltosLib.AO_LOG_ALTITUDE_32: - state.set_altitude_32(config_a); - break; - } - } - - public void write(PrintStream out) { - switch (cmd) { - case AltosLib.AO_LOG_CONFIG_VERSION: - out.printf("# Config version: %s\n", data); - break; - case AltosLib.AO_LOG_MAIN_DEPLOY: - out.printf("# Main deploy: %s\n", config_a); - break; - case AltosLib.AO_LOG_APOGEE_DELAY: - out.printf("# Apogee delay: %s\n", config_a); - break; - case AltosLib.AO_LOG_RADIO_CHANNEL: - out.printf("# Radio channel: %s\n", config_a); - break; - case AltosLib.AO_LOG_CALLSIGN: - out.printf("# Callsign: %s\n", data); - break; - case AltosLib.AO_LOG_ACCEL_CAL: - out.printf ("# Accel cal: %d %d\n", config_a, config_b); - break; - case AltosLib.AO_LOG_RADIO_CAL: - out.printf ("# Radio cal: %d\n", config_a); - break; - case AltosLib.AO_LOG_MAX_FLIGHT_LOG: - out.printf ("# Max flight log: %d\n", config_a); - break; - case AltosLib.AO_LOG_MANUFACTURER: - out.printf ("# Manufacturer: %s\n", data); - break; - case AltosLib.AO_LOG_PRODUCT: - out.printf ("# Product: %s\n", data); - break; - case AltosLib.AO_LOG_SERIAL_NUMBER: - out.printf ("# Serial number: %d\n", config_a); - break; - case AltosLib.AO_LOG_SOFTWARE_VERSION: - out.printf ("# Software version: %s\n", data); - break; - case AltosLib.AO_LOG_BARO_RESERVED: - out.printf ("# Baro reserved: %d\n", config_a); - break; - case AltosLib.AO_LOG_BARO_SENS: - out.printf ("# Baro sens: %d\n", config_a); - break; - case AltosLib.AO_LOG_BARO_OFF: - out.printf ("# Baro off: %d\n", config_a); - break; - case AltosLib.AO_LOG_BARO_TCS: - out.printf ("# Baro tcs: %d\n", config_a); - break; - case AltosLib.AO_LOG_BARO_TCO: - out.printf ("# Baro tco: %d\n", config_a); - break; - case AltosLib.AO_LOG_BARO_TREF: - out.printf ("# Baro tref: %d\n", config_a); - break; - case AltosLib.AO_LOG_BARO_TEMPSENS: - out.printf ("# Baro tempsens: %d\n", config_a); - break; - case AltosLib.AO_LOG_BARO_CRC: - out.printf ("# Baro crc: %d\n", config_a); - break; - case AltosLib.AO_LOG_IMU_CAL: - out.printf ("# IMU cal: %d %d %d\n", config_a, config_b, config_c); - break; - case AltosLib.AO_LOG_FREQUENCY: - case AltosLib.AO_LOG_APOGEE_LOCKOUT: - case AltosLib.AO_LOG_RADIO_RATE: - case AltosLib.AO_LOG_IGNITE_MODE: - break; - case AltosLib.AO_LOG_PAD_ORIENTATION: - out.printf("# Pad orientation: %d\n", config_a); - break; - case AltosLib.AO_LOG_RADIO_ENABLE: - case AltosLib.AO_LOG_AES_KEY: - case AltosLib.AO_LOG_APRS: - case AltosLib.AO_LOG_BEEP_SETTING: - case AltosLib.AO_LOG_TRACKER_SETTING: - case AltosLib.AO_LOG_PYRO_TIME: - case AltosLib.AO_LOG_APRS_ID: - break; - case AltosLib.AO_LOG_ALTITUDE_32: - out.printf("# Altitude-32: %d\n", config_a); - break; - } - } - - public AltosEepromHeader (String[] tokens) { - last = false; - valid = true; - try { - if (tokens[0].equals("Config") && tokens[1].equals("version:")) { - cmd = AltosLib.AO_LOG_CONFIG_VERSION; - data = tokens[2]; - } else if (tokens[0].equals("Main") && tokens[1].equals("deploy:")) { - cmd = AltosLib.AO_LOG_MAIN_DEPLOY; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[0].equals("Apogee") && tokens[1].equals("delay:")) { - cmd = AltosLib.AO_LOG_APOGEE_DELAY; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[0].equals("Radio") && tokens[1].equals("channel:")) { - cmd = AltosLib.AO_LOG_RADIO_CHANNEL; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[0].equals("Callsign:")) { - cmd = AltosLib.AO_LOG_CALLSIGN; - data = tokens[1].replaceAll("\"",""); - } else if (tokens[0].equals("Accel") && tokens[1].equals("cal")) { - cmd = AltosLib.AO_LOG_ACCEL_CAL; - config_a = Integer.parseInt(tokens[3]); - config_b = Integer.parseInt(tokens[5]); - } else if (tokens[0].equals("Radio") && tokens[1].equals("cal:")) { - cmd = AltosLib.AO_LOG_RADIO_CAL; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[0].equals("Max") && tokens[1].equals("flight") && tokens[2].equals("log:")) { - cmd = AltosLib.AO_LOG_MAX_FLIGHT_LOG; - config_a = Integer.parseInt(tokens[3]); - } else if (tokens[0].equals("manufacturer")) { - cmd = AltosLib.AO_LOG_MANUFACTURER; - data = tokens[1]; - } else if (tokens[0].equals("product")) { - cmd = AltosLib.AO_LOG_PRODUCT; - data = tokens[1]; - } else if (tokens[0].equals("serial-number")) { - cmd = AltosLib.AO_LOG_SERIAL_NUMBER; - config_a = Integer.parseInt(tokens[1]); - } else if (tokens[0].equals("log-format")) { - cmd = AltosLib.AO_LOG_LOG_FORMAT; - config_a = Integer.parseInt(tokens[1]); - } else if (tokens[0].equals("altitude-32")) { - cmd = AltosLib.AO_LOG_ALTITUDE_32; - config_a = Integer.parseInt(tokens[1]); - } else if (tokens[0].equals("software-version")) { - cmd = AltosLib.AO_LOG_SOFTWARE_VERSION; - data = tokens[1]; - last = true; - } else if (tokens[0].equals("ms5607")) { - if (tokens[1].equals("reserved:")) { - cmd = AltosLib.AO_LOG_BARO_RESERVED; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[1].equals("sens:")) { - cmd = AltosLib.AO_LOG_BARO_SENS; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[1].equals("off:")) { - cmd = AltosLib.AO_LOG_BARO_OFF; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[1].equals("tcs:")) { - cmd = AltosLib.AO_LOG_BARO_TCS; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[1].equals("tco:")) { - cmd = AltosLib.AO_LOG_BARO_TCO; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[1].equals("tref:")) { - cmd = AltosLib.AO_LOG_BARO_TREF; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[1].equals("tempsens:")) { - cmd = AltosLib.AO_LOG_BARO_TEMPSENS; - config_a = Integer.parseInt(tokens[2]); - } else if (tokens[1].equals("crc:")) { - cmd = AltosLib.AO_LOG_BARO_CRC; - config_a = Integer.parseInt(tokens[2]); - } else { - cmd = AltosLib.AO_LOG_INVALID; - data = tokens[2]; - } - } else if (tokens[0].equals("IMU") && tokens[1].equals("cal")) { - cmd = AltosLib.AO_LOG_IMU_CAL; - config_a = Integer.parseInt(tokens[3]); - config_b = Integer.parseInt(tokens[5]); - config_c = Integer.parseInt(tokens[7]); - } else if (tokens[0].equals("Pad") && tokens[1].equals("orientation:")) { - cmd = AltosLib.AO_LOG_PAD_ORIENTATION; - config_a = Integer.parseInt(tokens[2]); - } else - valid = false; - } catch (Exception e) { - valid = false; - } - } - - static public LinkedList read(FileInputStream input) { - LinkedList headers = new LinkedList(); - - for (;;) { - try { - String line = AltosLib.gets(input); - if (line == null) - break; - AltosEepromHeader header = new AltosEepromHeader(line); - headers.add(header); - if (header.last) - break; - } catch (IOException ie) { - break; - } - } - - return headers; - } - - static public void write (PrintStream out, LinkedList headers) { - out.printf("# Comments\n"); - for (AltosEepromHeader header : headers) { - header.write(out); - } - - } - - public AltosEepromHeader (String line) { - this(line.split("\\s+")); - } -}