* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_12;
+package org.altusmetrum.altoslib_14;
import java.io.*;
import java.util.concurrent.*;
public void flush_input() throws InterruptedException {
- if (remote)
- flush_input(500);
- else
+ if (remote) {
+ int timeout = 500;
+ switch (telemetry_rate) {
+ case AltosLib.ao_telemetry_rate_38400:
+ default:
+ timeout = 500;
+ break;
+ case AltosLib.ao_telemetry_rate_9600:
+ timeout = 1000;
+ break;
+ case AltosLib.ao_telemetry_rate_2400:
+ timeout = 2000;
+ break;
+ }
+ flush_input(timeout);
+ } else
flush_input(100);
}
int cal) {
if (debug)
System.out.printf("set_radio_frequency %7.3f (freq %b) (set %b) %d\n", frequency, has_frequency, has_setting, cal);
- if (frequency == 0)
+ if (frequency == 0 || frequency == AltosLib.MISSING)
return;
if (has_frequency)
set_radio_freq((int) Math.floor (frequency * 1000 + 0.5));
return ret;
}
+ public void synchronize(int timeout) throws InterruptedException {
+ printf("v\n");
+ for (;;) {
+ String line = get_reply(timeout);
+
+ if (line == null)
+ break;
+ if (line.startsWith("software-version"))
+ break;
+ if (line.startsWith("altos-loader"))
+ break;
+ }
+ }
+
public void to_loader() throws InterruptedException {
printf("X\n");
flush_output();
public String name;
public void start_remote() throws TimeoutException, InterruptedException {
- if (frequency == 0.0)
+ if (frequency == 0.0 || frequency == AltosLib.MISSING)
frequency = AltosPreferences.frequency(serial);
if (debug)
System.out.printf("start remote %7.3f\n", frequency);
if (debug)
System.out.printf("stop remote\n");
try {
+ flush_output();
flush_input();
} finally {
printf ("~\n");