summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2014-06-07 22:25:17 -0700
committerKeith Packard <keithp@keithp.com>2014-06-07 22:30:26 -0700
commitb33de8ba1e48d8ad0cb78f1c5692bb81da916080 (patch)
treeb5c3d17ebaef22bd25ca85c897187102ae213539
parent6950506beacb1bcd5b8e54c3935174cf800e9aed (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.java6
-rw-r--r--altoslib/AltosState.java9
-rw-r--r--altoslib/AltosTelemetryConfiguration.java8
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);