import java.text.*;
import java.util.prefs.*;
import java.util.concurrent.*;
+import org.altusmetrum.AltosLib.*;
class AltosADC {
int tick;
AltosADC adc;
AltosGPS gps;
+ int AltosRSSI() throws TimeoutException, InterruptedException {
+ serial.printf("s\n");
+ String line = serial.get_reply_no_dialog(5000);
+ if (line == null)
+ throw new TimeoutException();
+ String[] items = line.split("\\s+");
+ if (items.length < 2)
+ return 0;
+ if (!items[0].equals("RSSI:"))
+ return 0;
+ int rssi = Integer.parseInt(items[1]);
+ return rssi;
+ }
+
void update_state() throws InterruptedException, TimeoutException {
- AltosRecord record = new AltosRecord();
+ AltosRecordTM record = new AltosRecordTM();
+ int rssi;
try {
if (remote) {
adc = new AltosADC(serial);
gps = new AltosGPSQuery(serial, config_data);
} finally {
- if (remote)
+ if (remote) {
serial.stop_remote();
+ rssi = AltosRSSI();
+ } else
+ rssi = 0;
}
record.version = 0;
record.callsign = config_data.callsign;
record.serial = config_data.serial;
record.flight = config_data.log_available() > 0 ? 255 : 0;
- record.rssi = 0;
+ record.rssi = rssi;
record.status = 0;
record.state = Altos.ao_flight_idle;
record.tick = adc.tick;
+
record.accel = adc.accel;
record.pres = adc.pres;
record.batt = adc.batt;
device = AltosDeviceDialog.show(in_owner, Altos.product_any);
remote = false;
- if (!device.matchProduct(Altos.product_telemetrum))
+ if (!device.matchProduct(Altos.product_altimeter))
remote = true;
serial = device.getSerial();
/* Stick frequency selector at top of table for telemetry monitoring */
if (remote && serial >= 0) {
// Frequency menu
- frequencies = new AltosFreqList(AltosPreferences.frequency(serial));
+ frequencies = new AltosFreqList(AltosUIPreferences.frequency(serial));
frequencies.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double frequency = frequencies.frequency();
thread.set_frequency(frequency);
- AltosPreferences.set_frequency(device.getSerial(),
+ AltosUIPreferences.set_frequency(device.getSerial(),
frequency);
}
});
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
- AltosPreferences.register_font_listener(this);
+ AltosUIPreferences.register_font_listener(this);
addWindowListener(new WindowAdapter() {
@Override
disconnect();
setVisible(false);
dispose();
- AltosPreferences.unregister_font_listener(AltosIdleMonitorUI.this);
+ AltosUIPreferences.unregister_font_listener(AltosIdleMonitorUI.this);
}
});