diff options
author | Keith Packard <keithp@keithp.com> | 2014-06-07 22:25:17 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-06-07 22:30:26 -0700 |
commit | b33de8ba1e48d8ad0cb78f1c5692bb81da916080 (patch) | |
tree | b5c3d17ebaef22bd25ca85c897187102ae213539 | |
parent | 6950506beacb1bcd5b8e54c3935174cf800e9aed (diff) |
altoslib: Recover battery voltage from TeleGPS configuration packet
TeleGPS stuffs battery voltage in the apogee_delay slot of the
configuration packet. Pull it out from there and stick it into the
current state.
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | altoslib/AltosConvert.java | 6 | ||||
-rw-r--r-- | altoslib/AltosState.java | 9 | ||||
-rw-r--r-- | altoslib/AltosTelemetryConfiguration.java | 8 |
3 files changed, 19 insertions, 4 deletions
diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index 8bcb9c96..6578e90f 100644 --- a/altoslib/AltosConvert.java +++ b/altoslib/AltosConvert.java @@ -224,6 +224,12 @@ public class AltosConvert { return sensor / 32767.0 * supply * 127/27; } + static double tele_gps_voltage(int sensor) { + double supply = 3.3; + + return sensor / 32767.0 * supply * (5.6 + 10.0) / 10.0; + } + static double easy_mini_voltage(int sensor, int serial) { double supply = 3.3; double diode_offset = 0.0; diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index ef3a0976..7871da77 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -959,11 +959,14 @@ public class AltosState implements Cloneable { this.device_type = device_type; } - public void set_config(int major, int minor, int apogee_delay, int main_deploy, int flight_log_max) { - config_major = major; - config_minor = minor; + public void set_flight_params(int apogee_delay, int main_deploy) { this.apogee_delay = apogee_delay; this.main_deploy = main_deploy; + } + + public void set_config(int major, int minor, int flight_log_max) { + config_major = major; + config_minor = minor; this.flight_log_max = flight_log_max; } diff --git a/altoslib/AltosTelemetryConfiguration.java b/altoslib/AltosTelemetryConfiguration.java index d1341b9e..e3884051 100644 --- a/altoslib/AltosTelemetryConfiguration.java +++ b/altoslib/AltosTelemetryConfiguration.java @@ -25,6 +25,7 @@ public class AltosTelemetryConfiguration extends AltosTelemetryStandard { int config_minor; int apogee_delay; int main_deploy; + int v_batt; int flight_log_max; String callsign; String version; @@ -36,6 +37,7 @@ public class AltosTelemetryConfiguration extends AltosTelemetryStandard { flight = uint16(6); config_major = uint8(8); config_minor = uint8(9); + v_batt = uint16(10); apogee_delay = uint16(10); main_deploy = uint16(12); flight_log_max = uint16(14); @@ -47,7 +49,11 @@ public class AltosTelemetryConfiguration extends AltosTelemetryStandard { super.update_state(state); state.set_device_type(device_type); state.set_flight(flight); - state.set_config(config_major, config_minor, apogee_delay, main_deploy, flight_log_max); + state.set_config(config_major, config_minor, flight_log_max); + if (device_type == AltosLib.product_telegps) + state.set_battery_voltage(AltosConvert.tele_gps_voltage(v_batt)); + else + state.set_flight_params(apogee_delay, main_deploy); state.set_callsign(callsign); state.set_firmware_version(version); |