From e7515e3a88d53c50dd9b962cc8f43ce5376ccd0b Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 6 Sep 2014 20:43:32 -0700 Subject: [PATCH] altoslib: Increase timeouts when using low baud rate remote protocol When using 2400 or 9600 baud remote link rates, we need to increase the packet timeout from 500ms to much longer values to avoid annoying the user with timeout warnings. Signed-off-by: Keith Packard --- altoslib/AltosLink.java | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/altoslib/AltosLink.java b/altoslib/AltosLink.java index eadab5df..62bd82b9 100644 --- a/altoslib/AltosLink.java +++ b/altoslib/AltosLink.java @@ -163,8 +163,21 @@ public abstract class AltosLink implements Runnable { if (!can_cancel && remote) System.out.printf("Uh-oh, reading remote serial device from swing thread\n"); - if (remote && can_cancel) + if (remote && can_cancel) { timeout = 500; + switch (telemetry_rate) { + case AltosLib.ao_telemetry_rate_38400: + default: + timeout = 500; + break; + case AltosLib.ao_telemetry_rate_9600: + timeout = 2000; + break; + case AltosLib.ao_telemetry_rate_2400: + timeout = 8000; + break; + } + } try { ++in_reply; @@ -307,7 +320,7 @@ public abstract class AltosLink implements Runnable { */ public boolean monitor_mode = false; public int telemetry = AltosLib.ao_telemetry_standard; - public int telemetry_rate = AltosLib.ao_telemetry_rate_38400; + public int telemetry_rate = -1; public double frequency; public String callsign; AltosConfigData config_data; @@ -446,7 +459,12 @@ public abstract class AltosLink implements Runnable { if (debug) System.out.printf("start remote %7.3f\n", frequency); set_radio_frequency(frequency); - set_callsign(AltosPreferences.callsign()); + if (telemetry_rate < 0) + telemetry_rate = AltosPreferences.telemetry_rate(serial); + set_telemetry_rate(telemetry_rate); + if (callsign.equals("")) + callsign = AltosPreferences.callsign(); + set_callsign(callsign); printf("p\nE 0\n"); flush_input(); remote = true; -- 2.30.2