X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=telegps%2FTeleGPS.java;h=de2b4aa33f84d05c9ed1a8d658a39d5143613df8;hp=ca1e68bbe74631bf663cb0490d78b2e5295145d1;hb=8ba523cd793f2263bb1acd7a5a10f8964075bdc5;hpb=a7fd31842a602a8ac803d0e09efb4ffabf7a289b diff --git a/telegps/TeleGPS.java b/telegps/TeleGPS.java index ca1e68bb..de2b4aa3 100644 --- a/telegps/TeleGPS.java +++ b/telegps/TeleGPS.java @@ -53,6 +53,7 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo JTabbedPane pane; AltosSiteMap sitemap; + TeleGPSInfo gps_info; boolean has_map; JMenuBar menu_bar; @@ -115,10 +116,12 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo public void reset() { sitemap.reset(); + gps_info.reset(); } public void set_font() { sitemap.set_font(); + gps_info.set_font(); } public void font_size_changed(int font_size) { @@ -135,6 +138,7 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo state = new AltosState(); sitemap.show(state, listener_state); + gps_info.show(state, listener_state); telegps_status.show(state, listener_state); } @@ -151,17 +155,20 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo } void preferences() { + new TeleGPSPreferences(this, voice()); } void load_maps() { new AltosSiteMapPreload(this); } - void monitor() { - AltosDevice device = AltosDeviceUIDialog.show(this, - AltosLib.product_basestation); - if (device == null) - return; + void disconnect() { + setTitle("TeleGPS"); + stop_display(); + remove_frequency_menu(); + } + + void connect(AltosDevice device) { if (reader != null) disconnect(); try { @@ -197,16 +204,24 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo } } - void disconnect() { - setTitle("TeleGPS"); - stop_display(); - remove_frequency_menu(); + void monitor() { + AltosDevice device = AltosDeviceUIDialog.show(this, + AltosLib.product_basestation); + if (device == null) + return; + connect(device); + } + + public void scan_device_selected(AltosDevice device) { + connect(device); } void scan() { + new AltosScanUI(this, false); } void download(){ + new AltosEepromManage(this, AltosLib.product_telegps); } void configure() { @@ -214,6 +229,12 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo } void export() { + AltosDataChooser chooser; + chooser = new AltosDataChooser(this); + AltosStateIterable states = chooser.runDialog(); + if (states == null) + return; + new AltosCSVUI(this, states, chooser.file()); } void graph() { @@ -383,6 +404,9 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo sitemap = new AltosSiteMap(); pane.add("Site Map", sitemap); + gps_info = new TeleGPSInfo(); + pane.add("Info", gps_info); + setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); AltosUIPreferences.register_font_listener(this); @@ -409,6 +433,11 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo set_reader(reader); } + public TeleGPS(AltosDevice device) { + this(); + connect(device); + } + static AltosStateIterable record_iterable(File file) { FileInputStream in; try { @@ -538,7 +567,15 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo } if (errors != 0) System.exit(errors); - if (!any_created) - new TeleGPS(); + if (!any_created) { + java.util.List devices = AltosUSBDevice.list(AltosLib.product_basestation); + if (devices != null) + for (AltosDevice device : devices) { + new TeleGPS(device); + any_created = true; + } + if (!any_created) + new TeleGPS(); + } } }