From: Keith Packard Date: Sun, 8 Jun 2014 05:25:17 +0000 (-0700) Subject: altoslib: Recover battery voltage from TeleGPS configuration packet X-Git-Tag: 1.3.2.4~1 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=b33de8ba1e48d8ad0cb78f1c5692bb81da916080 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 --- 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);