X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosGPSQuery.java;h=e93af259ba3a1a217c219cc312cc50c0abc7115b;hb=7894c27b2b2c3c46a7c107c8acd5977830f006cf;hp=d48ff7e4647408c9e80b15753775844048685b2d;hpb=88667f7b7dff52eaf5e30f8f83fed0d7f767268d;p=fw%2Faltos diff --git a/altoslib/AltosGPSQuery.java b/altoslib/AltosGPSQuery.java index d48ff7e4..e93af259 100644 --- a/altoslib/AltosGPSQuery.java +++ b/altoslib/AltosGPSQuery.java @@ -19,68 +19,6 @@ package org.altusmetrum.AltosLib; import java.util.concurrent.*; -class AltosADCTM { - int tick; - int accel; - int pres; - int temp; - int batt; - int drogue; - int main; - - public AltosADCTM(AltosLink link) throws InterruptedException, TimeoutException { - link.printf("a\n"); - for (;;) { - String line = link.get_reply_no_dialog(5000); - if (line == null) { - throw new TimeoutException(); - } - if (!line.startsWith("tick:")) - continue; - String[] items = line.split("\\s+"); - for (int i = 0; i < items.length;) { - if (items[i].equals("tick:")) { - tick = Integer.parseInt(items[i+1]); - i += 2; - continue; - } - if (items[i].equals("accel:")) { - accel = Integer.parseInt(items[i+1]); - i += 2; - continue; - } - if (items[i].equals("pres:")) { - pres = Integer.parseInt(items[i+1]); - i += 2; - continue; - } - if (items[i].equals("temp:")) { - temp = Integer.parseInt(items[i+1]); - i += 2; - continue; - } - if (items[i].equals("batt:")) { - batt = Integer.parseInt(items[i+1]); - i += 2; - continue; - } - if (items[i].equals("drogue:")) { - drogue = Integer.parseInt(items[i+1]); - i += 2; - continue; - } - if (items[i].equals("main:")) { - main = Integer.parseInt(items[i+1]); - i += 2; - continue; - } - i++; - } - break; - } - } -} - class AltosGPSQuery extends AltosGPS { public AltosGPSQuery (AltosLink link, AltosConfigData config_data) throws TimeoutException, InterruptedException { @@ -157,108 +95,3 @@ class AltosGPSQuery extends AltosGPS { } } -public class AltosIdleMonitor extends Thread { - AltosLink link; - AltosIdleMonitorListener listener; - AltosState state; - boolean remote; - double frequency; - AltosState previous_state; - AltosConfigData config_data; - AltosADC adc; - AltosGPS gps; - - int AltosRSSI() throws TimeoutException, InterruptedException { - link.printf("s\n"); - String line = link.get_reply_no_dialog(5000); - if (line == null) - throw new TimeoutException(); - String[] items = line.split("\\s+"); - if (items.length < 2) - return 0; - if (!items[0].equals("RSSI:")) - return 0; - int rssi = Integer.parseInt(items[1]); - return rssi; - } - - void update_state() throws InterruptedException, TimeoutException { - AltosRecordTM record = new AltosRecordTM(); - int rssi; - - try { - if (remote) { - link.set_radio_frequency(frequency); - link.start_remote(); - } else - link.flush_input(); - config_data = new AltosConfigData(link); - adc = new AltosADC(link); - gps = new AltosGPSQuery(link, config_data); - } finally { - if (remote) { - link.stop_remote(); - rssi = AltosRSSI(); - } else - rssi = 0; - } - - record.version = 0; - record.callsign = config_data.callsign; - record.serial = config_data.serial; - record.flight = config_data.log_available() > 0 ? 255 : 0; - record.rssi = rssi; - record.status = 0; - record.state = AltosLib.ao_flight_idle; - - record.tick = adc.tick; - - record.accel = adc.accel; - record.pres = adc.pres; - record.batt = adc.batt; - record.temp = adc.temp; - record.drogue = adc.drogue; - record.main = adc.main; - - record.ground_accel = record.accel; - record.ground_pres = record.pres; - record.accel_plus_g = config_data.accel_cal_plus; - record.accel_minus_g = config_data.accel_cal_minus; - record.acceleration = 0; - record.speed = 0; - record.height = 0; - record.gps = gps; - state = new AltosState (record, state); - } - - public void set_frequency(double in_frequency) { - frequency = in_frequency; - } - - public void post_state() { - listener.update(state); - } - - public void run() { - try { - for (;;) { - try { - update_state(); - post_state(); - } catch (TimeoutException te) { - } - Thread.sleep(1000); - } - } catch (InterruptedException ie) { - link.close(); - } - } - - public AltosIdleMonitor(AltosIdleMonitorListener in_listener, AltosLink in_link, boolean in_remote) - throws FileNotFoundException, InterruptedException, TimeoutException { - listener = in_listener; - link = in_link; - remote = in_remote; - state = null; - } -}