summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-06-11 22:46:01 -0700
committerKeith Packard <keithp@keithp.com>2017-06-11 22:54:22 -0700
commit3fa1eadb91eea001342d2d357d7aaf661e8a2a5d (patch)
tree5a4979c34de895efe6c9c2208fd3013110dffd80
parent9454756f54312381927cb9faf1c4a6f5d8271034 (diff)
altoslib: Handle EasyMini v2.0 ADC values
Different from EasyMini v1.0 Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--altoslib/AltosConvert.java18
-rw-r--r--altoslib/AltosEepromRecordMini.java12
-rw-r--r--altoslib/AltosEepromRecordSet.java3
-rw-r--r--altoslib/AltosLib.java3
4 files changed, 28 insertions, 8 deletions
diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java
index 0d25c6d7..9eb8d16a 100644
--- a/altoslib/AltosConvert.java
+++ b/altoslib/AltosConvert.java
@@ -270,7 +270,15 @@ public class AltosConvert {
return 3.3 * mega_adc(raw) * (5.1 + 10.0) / 10.0;
}
- static double easy_mini_voltage(int sensor, int serial) {
+ static double easy_mini_2_adc(int raw) {
+ return raw / 4095.0;
+ }
+
+ static double easy_mini_1_adc(int raw) {
+ return raw / 32767.0;
+ }
+
+ static double easy_mini_1_voltage(int sensor, int serial) {
double supply = 3.3;
double diode_offset = 0.0;
@@ -284,7 +292,13 @@ public class AltosConvert {
if (serial < 1665)
diode_offset = 0.150;
- return sensor / 32767.0 * supply * 127/27 + diode_offset;
+ return easy_mini_1_adc(sensor) * supply * 127/27 + diode_offset;
+ }
+
+ static double easy_mini_2_voltage(int sensor) {
+ double supply = 3.3;
+
+ return easy_mini_2_adc(sensor) * supply * 127/27;
}
public static double radio_to_frequency(int freq, int setting, int cal, int channel) {
diff --git a/altoslib/AltosEepromRecordMini.java b/altoslib/AltosEepromRecordMini.java
index 4b3a564e..22bd073a 100644
--- a/altoslib/AltosEepromRecordMini.java
+++ b/altoslib/AltosEepromRecordMini.java
@@ -42,8 +42,10 @@ public class AltosEepromRecordMini extends AltosEepromRecord {
private double battery_voltage(int sensor) {
int log_format = log_format();
- if (log_format == AltosLib.AO_LOG_FORMAT_EASYMINI)
- return AltosConvert.easy_mini_voltage(sensor, eeprom.config_data().serial);
+ if (log_format == AltosLib.AO_LOG_FORMAT_EASYMINI1)
+ return AltosConvert.easy_mini_1_voltage(sensor, eeprom.config_data().serial);
+ if (log_format == AltosLib.AO_LOG_FORMAT_EASYMINI2)
+ return AltosConvert.easy_mini_2_voltage(sensor);
if (log_format == AltosLib.AO_LOG_FORMAT_TELEMINI2)
return AltosConvert.tele_mini_2_voltage(sensor);
if (log_format == AltosLib.AO_LOG_FORMAT_TELEMINI3)
@@ -53,8 +55,10 @@ public class AltosEepromRecordMini extends AltosEepromRecord {
private double pyro_voltage(int sensor) {
int log_format = log_format();
- if (log_format == AltosLib.AO_LOG_FORMAT_EASYMINI)
- return AltosConvert.easy_mini_voltage(sensor, eeprom.config_data().serial);
+ if (log_format == AltosLib.AO_LOG_FORMAT_EASYMINI1)
+ return AltosConvert.easy_mini_1_voltage(sensor, eeprom.config_data().serial);
+ if (log_format == AltosLib.AO_LOG_FORMAT_EASYMINI2)
+ return AltosConvert.easy_mini_2_voltage(sensor);
if (log_format == AltosLib.AO_LOG_FORMAT_TELEMINI2)
return AltosConvert.tele_mini_2_voltage(sensor);
if (log_format == AltosLib.AO_LOG_FORMAT_TELEMINI3)
diff --git a/altoslib/AltosEepromRecordSet.java b/altoslib/AltosEepromRecordSet.java
index 7b111ed3..1f10e677 100644
--- a/altoslib/AltosEepromRecordSet.java
+++ b/altoslib/AltosEepromRecordSet.java
@@ -75,7 +75,8 @@ public class AltosEepromRecordSet implements AltosRecordSet {
break;
case AltosLib.AO_LOG_FORMAT_TELEMINI2:
case AltosLib.AO_LOG_FORMAT_TELEMINI3:
- case AltosLib.AO_LOG_FORMAT_EASYMINI:
+ case AltosLib.AO_LOG_FORMAT_EASYMINI1:
+ case AltosLib.AO_LOG_FORMAT_EASYMINI2:
record = new AltosEepromRecordMini(eeprom);
break;
case AltosLib.AO_LOG_FORMAT_TELEGPS:
diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java
index 6c1729df..6cf875a9 100644
--- a/altoslib/AltosLib.java
+++ b/altoslib/AltosLib.java
@@ -354,7 +354,7 @@ public class AltosLib {
public static final int AO_LOG_FORMAT_TELEMETRY = 3;
public static final int AO_LOG_FORMAT_TELESCIENCE = 4;
public static final int AO_LOG_FORMAT_TELEMEGA_OLD = 5;
- public static final int AO_LOG_FORMAT_EASYMINI = 6;
+ public static final int AO_LOG_FORMAT_EASYMINI1 = 6;
public static final int AO_LOG_FORMAT_TELEMETRUM = 7;
public static final int AO_LOG_FORMAT_TELEMINI2 = 8;
public static final int AO_LOG_FORMAT_TELEGPS = 9;
@@ -362,6 +362,7 @@ public class AltosLib {
public static final int AO_LOG_FORMAT_DETHERM = 11;
public static final int AO_LOG_FORMAT_TELEMINI3 = 12;
public static final int AO_LOG_FORMAT_TELEFIRETWO = 13;
+ public static final int AO_LOG_FORMAT_EASYMINI2 = 14;
public static final int AO_LOG_FORMAT_NONE = 127;
public static boolean isspace(int c) {