X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosIdleMonitor.java;h=07d8930d36e45a23229886957d8c577a61434556;hb=6fa1ec0dbf2a4eda8d061c67b3779b83b88f29f0;hp=ae3b7b06b94748aa7c3862d3688baecb8c13d2a0;hpb=e2b458a448106ba1ab207f0ea6824b56927d8547;p=fw%2Faltos diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java index ae3b7b06..07d8930d 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 - record = new AltosRecord(); + 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 AltosRecordNone(); - 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;