summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-09-16 00:58:20 -0700
committerKeith Packard <keithp@keithp.com>2012-09-16 00:58:20 -0700
commit3520bbf1ed6461d1ce7af001c529563a3cffa3c9 (patch)
tree07c98c950ea9e430689aaa807829339ae00bc7c3
parent31f5a02654cbf172beed25f4c518dfb7be8c714e (diff)
altosui: Gather Tm sensor data in Monitor Idle mode
Tm is pretty much the same as TM for the analog sensors, it's just missing the accelerometr. Use the same code for constructing an AltosRecord for it Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--altoslib/AltosIdleMonitor.java68
1 files changed, 43 insertions, 25 deletions
diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java
index ae3b7b06..2c4965ff 100644
--- a/altoslib/AltosIdleMonitor.java
+++ b/altoslib/AltosIdleMonitor.java
@@ -45,6 +45,42 @@ public class AltosIdleMonitor extends Thread {
return rssi;
}
+ boolean has_sensor_tm(AltosConfigData config_data) {
+ return config_data.product.startsWith("TeleMetrum") || config_data.product.startsWith("TeleMini");
+ }
+
+ boolean has_sensor_mm(AltosConfigData config_data) {
+ return config_data.product.startsWith("MegaMetrum");
+ }
+
+ boolean has_gps(AltosConfigData config_data) {
+ return config_data.product.startsWith("TeleMetrum") || config_data.product.startsWith("MegaMetrum");
+ }
+
+ AltosRecord sensor_mm(AltosConfigData config_data) throws InterruptedException, TimeoutException {
+ AltosRecordMM record_mm = new AltosRecordMM();
+ AltosSensorMM sensor = new AltosSensorMM(link);
+ AltosMs5607 ms5607 = new AltosMs5607Query(link);
+ AltosIMU imu = new AltosIMUQuery(link);
+
+ record_mm.accel_plus_g = config_data.accel_cal_plus;
+ record_mm.accel_minus_g = config_data.accel_cal_minus;
+
+ record_mm.ground_accel = sensor.accel;
+ record_mm.accel = sensor.accel;
+ record_mm.ground_pres = ms5607.pa;
+ record_mm.pres = ms5607.pa;
+ record_mm.temp = ms5607.cc;
+
+ record_mm.v_batt = sensor.v_batt;
+ record_mm.v_pyro = sensor.v_pyro;
+ record_mm.sense = sensor.sense;
+
+ record_mm.imu = imu;
+
+ return record_mm;
+ }
+
void update_state() throws InterruptedException, TimeoutException {
AltosRecord record = null;
@@ -55,34 +91,16 @@ public class AltosIdleMonitor extends Thread {
} else
link.flush_input();
config_data = new AltosConfigData(link);
- if (config_data.product.startsWith("TeleMetrum")) {
- record = new AltosSensorTM(link, config_data);
- } else if (config_data.product.startsWith("MegaMetrum")) {
- AltosRecordMM record_mm = new AltosRecordMM();
- AltosSensorMM sensor = new AltosSensorMM(link);
- AltosMs5607 ms5607 = new AltosMs5607Query(link);
- AltosIMU imu = new AltosIMUQuery(link);
-
- record_mm.accel_plus_g = config_data.accel_cal_plus;
- record_mm.accel_minus_g = config_data.accel_cal_minus;
- record_mm.ground_accel = sensor.accel;
- record_mm.accel = sensor.accel;
- record_mm.ground_pres = ms5607.pa;
- record_mm.pres = ms5607.pa;
- record_mm.temp = ms5607.cc;
-
- record_mm.v_batt = sensor.v_batt;
- record_mm.v_pyro = sensor.v_pyro;
- record_mm.sense = sensor.sense;
-
- record_mm.imu = imu;
-
- record = record_mm;
- } else
+ if (has_sensor_tm(config_data))
+ record = new AltosSensorTM(link, config_data);
+ else if (has_sensor_mm(config_data))
+ record = sensor_mm(config_data);
+ else
record = new AltosRecord();
- gps = new AltosGPSQuery(link, config_data);
+ if (has_gps(config_data))
+ gps = new AltosGPSQuery(link, config_data);
record.version = 0;
record.callsign = config_data.callsign;