X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosConvert.java;h=099ea04859337bb14e0799df62d607eabc97f9d8;hb=3ed101d634968666cd3ee2d8c49737970caf406b;hp=d246018700bfd1d0746330f6724e27ab86f208c9;hpb=297eb795b24ec31f6599f48bc8c3769557a7ec6f;p=fw%2Faltos diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index d2460187..099ea048 100644 --- a/altoslib/AltosConvert.java +++ b/altoslib/AltosConvert.java @@ -19,7 +19,7 @@ /* * Sensor data conversion functions */ -package org.altusmetrum.altoslib_13; +package org.altusmetrum.altoslib_14; import java.util.*; @@ -258,23 +258,33 @@ public class AltosConvert { return sensor / 32767.0 * supply * 127/27; } - static double tele_gps_voltage(int sensor) { + static double tele_gps_1_voltage(int sensor) { double supply = 3.3; return sensor / 32767.0 * supply * (5.6 + 10.0) / 10.0; } + static double tele_gps_2_voltage(int sensor) { + double supply = 3.3; + + return sensor / 4095.0 * supply * (5.6 + 10.0) / 10.0; + } + static double tele_bt_3_battery(int raw) { if (raw == AltosLib.MISSING) return AltosLib.MISSING; return 3.3 * mega_adc(raw) * (5.1 + 10.0) / 10.0; } - static double easy_mini_2_adc(int raw) { + static double easy_timer_voltage(int sensor) { + return 3.3 * mega_adc(sensor) * (100.0 + 27.0) / 27.0; + } + + static double easy_mini_2_adc(double raw) { return raw / 4095.0; } - static double easy_mini_1_adc(int raw) { + static double easy_mini_1_adc(double raw) { return raw / 32767.0; } @@ -301,6 +311,26 @@ public class AltosConvert { return easy_mini_2_adc(sensor) * supply * 127/27; } + static double motor_pressure(double voltage) { + double base = 0.5; + double max = 4.5; + double full_scale_pressure = psi_to_pa(1600); + + if (voltage < base) + voltage = base; + if (voltage > max) + voltage = max; + return (voltage - base) / (max - base) * full_scale_pressure; + } + + static double easy_motor_2_motor_pressure(int sensor, double ground_sensor) { + double supply = 3.3; + double ground_voltage = easy_mini_2_adc(ground_sensor) * supply * 15.6 / 10.0; + double voltage = easy_mini_2_adc(sensor) * supply * 15.6 / 10.0; + + return motor_pressure(voltage) - motor_pressure(ground_voltage); + } + public static double radio_to_frequency(int freq, int setting, int cal, int channel) { double f; @@ -467,7 +497,7 @@ public class AltosConvert { public static AltosPyroName pyro_name = new AltosPyroName(); - public static AltosUnits magnetic_field = null; + public static AltosUnits magnetic_field = new AltosGauss(); public static String show_gs(String format, double a) { a = meters_to_g(a);