summaryrefslogtreecommitdiff
path: root/altoslib/AltosIdleFetch.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-05-25 17:24:14 -0700
committerKeith Packard <keithp@keithp.com>2017-05-25 17:24:14 -0700
commitf26cfe417c6977cf1e7e75a4f050e25f64d41859 (patch)
tree2f19ca9c93c3246b3eeadafee250f9dd3ee222d6 /altoslib/AltosIdleFetch.java
parent7600116a191b3ac252a0f716d200d0e0b3500987 (diff)
altoslib: Do data analysis on raw values rather than AltosState
Use AltosFlightSeries instead of a sequence of AltosState records when processing saved data. This provides a better way of doing filtering and plotting. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosIdleFetch.java')
-rw-r--r--altoslib/AltosIdleFetch.java60
1 files changed, 22 insertions, 38 deletions
diff --git a/altoslib/AltosIdleFetch.java b/altoslib/AltosIdleFetch.java
index 73717e17..43eb980a 100644
--- a/altoslib/AltosIdleFetch.java
+++ b/altoslib/AltosIdleFetch.java
@@ -30,7 +30,6 @@ class AltosIdler {
static final int idle_gps = 0;
static final int idle_imu = 1;
static final int idle_mag = 2;
- static final int idle_ms5607 = 3;
static final int idle_mma655x = 4;
@@ -42,49 +41,44 @@ class AltosIdler {
static final int idle_sensor_tgps = 15;
static final int idle_sensor_tmini3 = 16;
- public void update_state(AltosState state, AltosLink link, AltosConfigData config_data) throws InterruptedException, TimeoutException, AltosUnknownProduct {
+ public void provide_data(AltosDataListener listener, AltosLink link, AltosCalData cal_data) throws InterruptedException, TimeoutException, AltosUnknownProduct {
for (int idler : idlers) {
- AltosIdle idle = null;
switch (idler) {
case idle_gps:
- AltosGPS.update_state(state, link, config_data);
+ AltosGPS.provide_data(listener, link, cal_data);
break;
case idle_imu:
- AltosIMU.update_state(state, link, config_data);
+ AltosIMU.provide_data(listener, link, cal_data);
break;
case idle_mag:
- AltosMag.update_state(state, link, config_data);
- break;
- case idle_ms5607:
- AltosMs5607.update_state(state, link, config_data);
+ AltosMag.provide_data(listener, link, cal_data);
break;
case idle_mma655x:
- AltosMma655x.update_state(state, link, config_data);
+ AltosMma655x.provide_data(listener, link, cal_data);
break;
- case idle_sensor_tm:
- AltosSensorTM.update_state(state, link, config_data);
+/* case idle_sensor_tm:
+ AltosSensorTM.provide_data(listener, link, cal_data);
break;
case idle_sensor_metrum:
- AltosSensorMetrum.update_state(state, link, config_data);
+ AltosSensorMetrum.provide_data(listener, link, cal_data);
break;
case idle_sensor_mega:
- AltosSensorMega.update_state(state, link, config_data);
+ AltosSensorMega.provide_data(listener, link, cal_data);
break;
case idle_sensor_emini:
- AltosSensorEMini.update_state(state, link, config_data);
+ AltosSensorEMini.provide_data(listener, link, cal_data);
break;
case idle_sensor_tmini2:
- AltosSensorTMini2.update_state(state, link, config_data);
+ AltosSensorTMini2.provide_data(listener, link, cal_data);
break;
case idle_sensor_tgps:
- AltosSensorTGPS.update_state(state, link, config_data);
+ AltosSensorTGPS.provide_data(listener, link, cal_data);
break;
case idle_sensor_tmini3:
- AltosSensorTMini3.update_state(state, link, config_data);
+ AltosSensorTMini3.provide_data(listener, link, cal_data);
break;
+*/
}
- if (idle != null)
- idle.update_state(state);
}
}
@@ -99,23 +93,20 @@ class AltosIdler {
}
-public class AltosIdleFetch implements AltosStateUpdate {
+public class AltosIdleFetch implements AltosDataProvider {
static final AltosIdler[] idlers = {
new AltosIdler("EasyMini",
- AltosIdler.idle_ms5607,
AltosIdler.idle_sensor_emini),
new AltosIdler("TeleMini-v1",
AltosIdler.idle_sensor_tm),
new AltosIdler("TeleMini-v2",
- AltosIdler.idle_ms5607,
AltosIdler.idle_sensor_tmini2),
new AltosIdler("TeleMini-v3",
- AltosIdler.idle_ms5607,
AltosIdler.idle_sensor_tmini3),
new AltosIdler("TeleMetrum-v1",
@@ -124,16 +115,16 @@ public class AltosIdleFetch implements AltosStateUpdate {
new AltosIdler("TeleMetrum-v2",
AltosIdler.idle_gps,
- AltosIdler.idle_ms5607, AltosIdler.idle_mma655x,
+ AltosIdler.idle_mma655x,
AltosIdler.idle_sensor_metrum),
new AltosIdler("TeleMega",
AltosIdler.idle_gps,
- AltosIdler.idle_ms5607, AltosIdler.idle_mma655x,
+ AltosIdler.idle_mma655x,
AltosIdler.idle_imu, AltosIdler.idle_mag,
AltosIdler.idle_sensor_mega),
new AltosIdler("EasyMega",
- AltosIdler.idle_ms5607, AltosIdler.idle_mma655x,
+ AltosIdler.idle_mma655x,
AltosIdler.idle_imu, AltosIdler.idle_mag,
AltosIdler.idle_sensor_mega),
new AltosIdler("TeleGPS",
@@ -143,29 +134,22 @@ public class AltosIdleFetch implements AltosStateUpdate {
AltosLink link;
- public void update_state(AltosState state) throws InterruptedException, AltosUnknownProduct {
+ public void provide_data(AltosDataListener listener, AltosCalData cal_data) throws InterruptedException, AltosUnknownProduct {
try {
boolean matched = false;
/* Fetch config data from remote */
AltosConfigData config_data = new AltosConfigData(link);
- state.set_state(AltosLib.ao_flight_stateless);
- state.set_serial(config_data.serial);
- state.set_callsign(config_data.callsign);
- state.set_ground_accel(config_data.accel_cal_plus);
- state.set_accel_g(config_data.accel_cal_plus, config_data.accel_cal_minus);
- state.set_product(config_data.product);
- state.set_firmware_version(config_data.version);
- state.set_log_space(config_data.log_space);
+ listener.set_state(AltosLib.ao_flight_stateless);
for (AltosIdler idler : idlers) {
if (idler.matches(config_data)) {
- idler.update_state(state, link, config_data);
+ idler.provide_data(listener, link, cal_data);
matched = true;
break;
}
}
if (!matched)
throw new AltosUnknownProduct(config_data.product);
- state.set_received_time(System.currentTimeMillis());
+ listener.set_received_time(System.currentTimeMillis());
} catch (TimeoutException te) {
}