AltosTelemetryReader: actually open serial port
[fw/altos] / ao-tools / altosui / AltosConfig.java
index ac73e7c5ea88894daf6a5817e466f860a4f6b9d3..b7474f3b2fa56faea8ee6d14858da68916e064f1 100644 (file)
@@ -83,6 +83,7 @@ public class AltosConfig implements Runnable, ActionListener {
        int_ref         main_deploy;
        int_ref         apogee_delay;
        int_ref         radio_channel;
+       int_ref         radio_calibration;
        string_ref      version;
        string_ref      product;
        string_ref      callsign;
@@ -122,17 +123,17 @@ public class AltosConfig implements Runnable, ActionListener {
 
        void start_serial() throws InterruptedException {
                if (remote) {
-                       serial_line.printf("m 0\n");
-                       serial_line.set_channel(AltosPreferences.channel());
+                       serial_line.set_channel(AltosPreferences.channel(device.getSerial()));
                        serial_line.set_callsign(AltosPreferences.callsign());
                        serial_line.printf("p\n");
+                       serial_line.flush_input();
                }
        }
 
        void stop_serial() throws InterruptedException {
                if (remote) {
-                       serial_line.printf("~\n");
-                       serial_line.flush();
+                       serial_line.printf("~");
+                       serial_line.flush_output();
                }
        }
 
@@ -146,6 +147,7 @@ public class AltosConfig implements Runnable, ActionListener {
                                get_int(line, "Main deploy:", main_deploy);
                                get_int(line, "Apogee delay:", apogee_delay);
                                get_int(line, "Radio channel:", radio_channel);
+                               get_int(line, "Radio cal:", radio_calibration);
                                get_string(line, "Callsign:", callsign);
                                get_string(line,"software-version", version);
                                get_string(line,"product", product);
@@ -175,6 +177,7 @@ public class AltosConfig implements Runnable, ActionListener {
                        config_ui.set_main_deploy(main_deploy.get());
                        config_ui.set_apogee_delay(apogee_delay.get());
                        config_ui.set_radio_channel(radio_channel.get());
+                       config_ui.set_radio_calibration(radio_calibration.get());
                        config_ui.set_callsign(callsign.get());
                        config_ui.set_clean();
                } catch (InterruptedException ie) {
@@ -188,12 +191,14 @@ public class AltosConfig implements Runnable, ActionListener {
                main_deploy.set(config_ui.main_deploy());
                apogee_delay.set(config_ui.apogee_delay());
                radio_channel.set(config_ui.radio_channel());
+               radio_calibration.set(config_ui.radio_calibration());
                callsign.set(config_ui.callsign());
                try {
                        start_serial();
                        serial_line.printf("c m %d\n", main_deploy.get());
                        serial_line.printf("c d %d\n", apogee_delay.get());
                        serial_line.printf("c r %d\n", radio_channel.get());
+                       serial_line.printf("c f %d\n", radio_calibration.get());
                        serial_line.printf("c c %s\n", callsign.get());
                        serial_line.printf("c w\n");
                } catch (InterruptedException ie) {
@@ -234,16 +239,17 @@ public class AltosConfig implements Runnable, ActionListener {
                main_deploy = new int_ref(250);
                apogee_delay = new int_ref(0);
                radio_channel = new int_ref(0);
+               radio_calibration = new int_ref(1186611);
                callsign = new string_ref("N0CALL");
                version = new string_ref("unknown");
                product = new string_ref("unknown");
 
-               device = AltosDeviceDialog.show(owner, AltosDevice.Any);
+               device = AltosDeviceDialog.show(owner, AltosDevice.product_any);
                serial_line = new AltosSerial();
                if (device != null) {
                        try {
                                serial_line.open(device);
-                               if (!device.matchProduct(AltosDevice.TeleMetrum))
+                               if (!device.matchProduct(AltosDevice.product_telemetrum))
                                        remote = true;
                                config_thread = new Thread(this);
                                config_thread.start();