Useful for TeleFireTwo.
Signed-off-by: Keith Packard <keithp@keithp.com>
*/
package org.altusmetrum.altoslib_11;
+import java.util.*;
+
public class AltosConvert {
/*
* Pressure Sensor Model, version 1.1
return psi * 6894.76;
}
+ public static double pa_to_psi(double pa) {
+ return pa / 6894.76;
+ }
+
+ public static double n_to_lb(double n) {
+ return n * 0.22480894;
+ }
+
+ public static double lb_to_n(double lb) {
+ return lb / 0.22480894;
+ }
+
public static boolean imperial_units = false;
public static AltosDistance distance = new AltosDistance();
public static AltosHeight height = new AltosHeight();
+ public static AltosPressure pressure = new AltosPressure();
+
+ public static AltosForce force = new AltosForce();
+
public static AltosSpeed speed = new AltosSpeed();
public static AltosAccel accel = new AltosAccel();
return csum & 0xff;
}
+ public static int checksum(List<Byte> data, int start, int length) {
+ int csum = 0x5a;
+ for (int i = 0; i < length; i++)
+ csum += data.get(i+start);
+ return csum & 0xff;
+ }
+
public static double beep_value_to_freq(int value) {
if (value == 0)
return 4000;
--- /dev/null
+/*
+ * Copyright © 2017 Keith Packard <keithp@keithp.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+
+package org.altusmetrum.altoslib_11;
+
+public class AltosForce extends AltosUnits {
+
+ public double value(double v, boolean imperial_units) {
+ if (imperial_units)
+ return AltosConvert.n_to_lb(v);
+ return v;
+ }
+
+ public double inverse(double v, boolean imperial_units) {
+ if (imperial_units)
+ return AltosConvert.lb_to_n(v);
+ return v;
+ }
+
+ public String show_units(boolean imperial_units) {
+ if (imperial_units)
+ return "lbs";
+ return "N";
+ }
+
+ public String say_units(boolean imperial_units) {
+ if (imperial_units)
+ return "pounds";
+ return "newtons";
+ }
+
+ public int show_fraction(int width, boolean imperial_units) {
+ return width / 9;
+ }
+}
--- /dev/null
+/*
+ * Copyright © 2017 Keith Packard <keithp@keithp.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+
+package org.altusmetrum.altoslib_11;
+
+public class AltosPressure extends AltosUnits {
+
+ public double value(double v, boolean imperial_units) {
+ if (imperial_units)
+ return AltosConvert.pa_to_psi(v);
+ return v;
+ }
+
+ public double inverse(double v, boolean imperial_units) {
+ if (imperial_units)
+ return AltosConvert.psi_to_pa(v);
+ return v;
+ }
+
+ public String show_units(boolean imperial_units) {
+ if (imperial_units)
+ return "psi";
+ return "Pa";
+ }
+
+ public String say_units(boolean imperial_units) {
+ if (imperial_units)
+ return "p s i";
+ return "pascals";
+ }
+
+ public int show_fraction(int width, boolean imperial_units) {
+ return width / 9;
+ }
+}