X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosConvert.java;h=099ea04859337bb14e0799df62d607eabc97f9d8;hb=72a452d1ca5b3f9f1defef47465e24a10ca72d58;hp=89f36a6c4a373f66a90dc2612ae6e39e66d92506;hpb=4435843fc8eb06751dbb1ba00fb2856563963e5e;p=fw%2Faltos diff --git a/altoslib/AltosConvert.java b/altoslib/AltosConvert.java index 89f36a6c..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.*; @@ -276,11 +276,15 @@ public class AltosConvert { 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; } @@ -307,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;