/*
* Sensor data conversion functions
*/
-package org.altusmetrum.altoslib_2;
+package org.altusmetrum.altoslib_3;
public class AltosConvert {
/*
return sensor / 32767.0 * supply * 127/27;
}
- static double easy_mini_voltage(int sensor) {
- double supply = 3.0;
+ static double easy_mini_voltage(int sensor, int serial) {
+ double supply = 3.3;
+ double diode_offset = 0.0;
- return sensor / 32767.0 * supply * 127/27;
+ /* early prototypes had a 3.0V regulator */
+ if (serial < 1000)
+ supply = 3.0;
+
+ /* Purple v1.0 boards had the sensor after the
+ * blocking diode, which drops about 150mV
+ */
+ if (serial < 1665)
+ diode_offset = 0.150;
+
+ return sensor / 32767.0 * supply * 127/27 + diode_offset;
}
public static double radio_to_frequency(int freq, int setting, int cal, int channel) {
public static AltosTemperature temperature = new AltosTemperature();
+ public static AltosOrient orient = new AltosOrient();
+
public static String show_gs(String format, double a) {
a = meters_to_g(a);
format = format.concat(" g");
csum += data[i + start];
return csum & 0xff;
}
+
+ public static double beep_value_to_freq(int value) {
+ if (value == 0)
+ return 4000;
+ return 1.0/2.0 * (24.0e6/32.0) / (double) value;
+ }
+
+ public static int beep_freq_to_value(double freq) {
+ if (freq == 0)
+ return 94;
+ return (int) Math.floor (1.0/2.0 * (24.0e6/32.0) / freq + 0.5);
+ }
}