Merge branch 'master' of git://git.gag.com/fw/altos
authorAnthony Towns <aj@erisian.com.au>
Sat, 11 Sep 2010 05:15:14 +0000 (15:15 +1000)
committerAnthony Towns <aj@erisian.com.au>
Sat, 11 Sep 2010 05:15:14 +0000 (15:15 +1000)
ao-tools/altosui/AltosCSV.java
ao-tools/altosui/AltosCSVUI.java
ao-tools/altosui/AltosFlashUI.java
ao-tools/altosui/AltosPreferences.java

index 4ce8e30e77dece9e86edbc1cc37f3fca1bf9f3de..07fa371f50e7c22bc6631a40acabb004fa5b1643 100644 (file)
@@ -86,7 +86,7 @@ public class AltosCSV {
         */
 
        void write_general_header() {
-               out.printf("version serial flight call time rssi");
+               out.printf("version,serial,flight,call,time,rssi");
        }
 
        void write_general(AltosRecord record) {
@@ -97,7 +97,7 @@ public class AltosCSV {
        }
 
        void write_flight_header() {
-               out.printf("state state_name");
+               out.printf("state,state_name");
        }
 
        void write_flight(AltosRecord record) {
@@ -105,7 +105,7 @@ public class AltosCSV {
        }
 
        void write_basic_header() {
-               out.printf("acceleration pressure altitude height accel_speed baro_speed temperature battery_voltage drogue_voltage main_voltage");
+               out.printf("acceleration,pressure,altitude,height,accel_speed,baro_speed,temperature,battery_voltage,drogue_voltage,main_voltage");
        }
 
        void write_basic(AltosRecord record) {
@@ -123,7 +123,7 @@ public class AltosCSV {
        }
 
        void write_gps_header() {
-               out.printf("connected locked nsat latitude longitude altitude year month day hour minute second pad_dist pad_range pad_az pad_el");
+               out.printf("connected,locked,nsat,latitude,longitude,altitude,year,month,day,hour,minute,second,pad_dist,pad_range,pad_az,pad_el");
        }
 
        void write_gps(AltosRecord record) {
@@ -155,10 +155,10 @@ public class AltosCSV {
        }
 
        void write_header() {
-               out.printf("# "); write_general_header();
-               out.printf(" "); write_flight_header();
-               out.printf(" "); write_basic_header();
-               out.printf(" "); write_gps_header();
+               out.printf("#"); write_general_header();
+               out.printf(","); write_flight_header();
+               out.printf(","); write_basic_header();
+               out.printf(","); write_gps_header();
                out.printf ("\n");
        }
 
index 2d81236162c1b6d370a3ca6f9c82eceb773852e8..643d4112ae96666107a33e43c8f0d2f59fca6605 100644 (file)
@@ -56,6 +56,7 @@ public class AltosCSVUI
                        path = path.substring(0,dot);
                path = path.concat(".csv");
                csv_chooser = new JFileChooser(path);
+               csv_chooser.setSelectedFile(new File(path));
                int ret = csv_chooser.showSaveDialog(frame);
                if (ret == JFileChooser.APPROVE_OPTION) {
                        try {
index 5ed417da993a0d149146ff78d039ccb2a5f703c1..86f57a5fb3c862e755f1909c4310357e7b59bc09 100644 (file)
@@ -194,6 +194,10 @@ public class AltosFlashUI
 
                JFileChooser    hexfile_chooser = new JFileChooser();
 
+               File firmwaredir = AltosPreferences.firmwaredir();
+               if (firmwaredir != null)
+                       hexfile_chooser.setCurrentDirectory(firmwaredir);
+
                hexfile_chooser.setDialogTitle("Select Flash Image");
                hexfile_chooser.setFileFilter(new FileNameExtensionFilter("Flash Image", "ihx"));
                int returnVal = hexfile_chooser.showOpenDialog(frame);
@@ -203,6 +207,9 @@ public class AltosFlashUI
 
                file = hexfile_chooser.getSelectedFile();
 
+               if (file != null)
+                       AltosPreferences.set_firmwaredir(file.getParentFile());
+
                thread = new Thread(this);
                thread.start();
        }
index 690f8f1ed5e60eff6e2f858147d7c66fc5ae4e8f..526275635ff07b90960aa3bd74aeaa8e402a5f13 100644 (file)
@@ -40,6 +40,9 @@ class AltosPreferences {
        /* callsign preference name */
        final static String callsignPreference = "CALLSIGN";
 
+       /* firmware directory preference name */
+       final static String firmwaredirPreference = "FIRMWARE";
+
        /* Default logdir is ~/TeleMetrum */
        final static String logdirName = "TeleMetrum";
 
@@ -55,8 +58,12 @@ class AltosPreferences {
        /* Voice preference */
        static boolean voice;
 
+       /* Callsign preference */
        static String callsign;
 
+       /* Firmware directory */
+       static File firmwaredir;
+
        public static void init(Component ui) {
                preferences = Preferences.userRoot().node("/org/altusmetrum/altosui");
 
@@ -78,6 +85,12 @@ class AltosPreferences {
                voice = preferences.getBoolean(voicePreference, true);
 
                callsign = preferences.get(callsignPreference,"N0CALL");
+
+               String firmwaredir_string = preferences.get(firmwaredirPreference, null);
+               if (firmwaredir_string != null)
+                       firmwaredir = new File(firmwaredir_string);
+               else
+                       firmwaredir = null;
        }
 
        static void flush_preferences() {
@@ -173,4 +186,16 @@ class AltosPreferences {
        public static String callsign() {
                return callsign;
        }
+
+       public static void set_firmwaredir(File new_firmwaredir) {
+               firmwaredir = new_firmwaredir;
+               synchronized (preferences) {
+                       preferences.put(firmwaredirPreference, firmwaredir.getPath());
+                       flush_preferences();
+               }
+       }
+
+       public static File firmwaredir() {
+               return firmwaredir;
+       }
 }