From: Keith Packard Date: Sun, 3 Jun 2012 02:42:47 +0000 (-0700) Subject: altoslib: Move new sensor library code into altoslib X-Git-Tag: 1.0.9.6~91 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=dd43a2ae7594f062a8980d1756a07488ee54b447 altoslib: Move new sensor library code into altoslib Signed-off-by: Keith Packard --- diff --git a/altoslib/AltosIMU.java b/altoslib/AltosIMU.java new file mode 100644 index 00000000..88e36544 --- /dev/null +++ b/altoslib/AltosIMU.java @@ -0,0 +1,29 @@ +/* + * Copyright © 2012 Keith Packard + * + * 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 altoslib; + +public class AltosIMU { + public int accel_x; + public int accel_y; + public int accel_z; + + public int gyro_x; + public int gyro_y; + public int gyro_z; +} + \ No newline at end of file diff --git a/altoslib/AltosMag.java b/altoslib/AltosMag.java new file mode 100644 index 00000000..45f1924c --- /dev/null +++ b/altoslib/AltosMag.java @@ -0,0 +1,25 @@ +/* + * Copyright © 2012 Keith Packard + * + * 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 altoslib; + +public class AltosMag { + public int x; + public int y; + public int z; +} + \ No newline at end of file diff --git a/altoslib/AltosMs5607.java b/altoslib/AltosMs5607.java new file mode 100644 index 00000000..253e2f9b --- /dev/null +++ b/altoslib/AltosMs5607.java @@ -0,0 +1,76 @@ +/* + * Copyright © 2012 Keith Packard + * + * 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 altoslib; + +public class AltosMs5607 { + public int reserved; + public int sens; + public int off; + public int tcs; + public int tco; + public int tref; + public int tempsens; + public int crc; + + public int raw_pres; + public int raw_temp; + public int pa; + public int cc; + + void convert() { + int dT; + int TEMP; + long OFF; + long SENS; + int P; + + dT = raw_temp - ((int) tref << 8); + + TEMP = (int) (2000 + (((long) dT * tempsens) >> 23)); + + OFF = ((long) off << 17) + (((long) tco * dT) >> 6); + + SENS = ((long) sens << 16) + (((long) tcs * dT) >> 7); + + if (TEMP < 2000) { + int T2 = (int) (((long) dT * (long) dT) >> 31); + int TEMPM = TEMP - 2000; + long OFF2 = (61 * (long) TEMPM * (long) TEMPM) >> 4; + long SENS2 = 2 * (long) TEMPM * (long) TEMPM; + if (TEMP < 1500) { + int TEMPP = TEMP + 1500; + long TEMPP2 = TEMPP * TEMPP; + OFF2 = OFF2 + 15 * TEMPP2; + SENS2 = SENS2 + 8 * TEMPP2; + } + TEMP -= T2; + OFF -= OFF2; + SENS -= SENS2; + } + + pa = (int) (((((long) raw_pres * SENS) >> 21) - OFF) >> 15); + cc = TEMP; + } + + public int set(int in_pres, int in_temp) { + raw_pres = in_pres; + raw_temp = in_temp; + convert(); + return pa; + } +} diff --git a/altoslib/Makefile.am b/altoslib/Makefile.am index 4262daca..2e4a795a 100644 --- a/altoslib/Makefile.am +++ b/altoslib/Makefile.am @@ -47,7 +47,10 @@ AltosLib_JAVA = \ $(SRC)/AltosTelemetryRecordLocation.java \ $(SRC)/AltosTelemetryRecordRaw.java \ $(SRC)/AltosTelemetryRecordSatellite.java \ - $(SRC)/AltosTelemetryRecordSensor.java + $(SRC)/AltosTelemetryRecordSensor.java \ + $(SRC)/AltosMs5607.java \ + $(SRC)/AltosIMU.java \ + $(SRC)/AltosMag.java JAR=AltosLib.jar diff --git a/altosui/AltosIMU.java b/altosui/AltosIMU.java deleted file mode 100644 index 1f865a65..00000000 --- a/altosui/AltosIMU.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright © 2012 Keith Packard - * - * 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 altosui; - -public class AltosIMU { - int accel_x; - int accel_y; - int accel_z; - - int gyro_x; - int gyro_y; - int gyro_z; -} - \ No newline at end of file diff --git a/altosui/AltosMag.java b/altosui/AltosMag.java deleted file mode 100644 index b3fc542b..00000000 --- a/altosui/AltosMag.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright © 2012 Keith Packard - * - * 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 altosui; - -public class AltosMag { - int x; - int y; - int z; -} - \ No newline at end of file diff --git a/altosui/AltosMs5607.java b/altosui/AltosMs5607.java deleted file mode 100644 index 6f8bdbbe..00000000 --- a/altosui/AltosMs5607.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright © 2012 Keith Packard - * - * 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 altosui; - -public class AltosMs5607 { - int reserved; - int sens; - int off; - int tcs; - int tco; - int tref; - int tempsens; - int crc; - - int raw_pres; - int raw_temp; - public int pa; - public int cc; - - void convert() { - int dT; - int TEMP; - long OFF; - long SENS; - int P; - - dT = raw_temp - ((int) tref << 8); - - TEMP = (int) (2000 + (((long) dT * tempsens) >> 23)); - - OFF = ((long) off << 17) + (((long) tco * dT) >> 6); - - SENS = ((long) sens << 16) + (((long) tcs * dT) >> 7); - - if (TEMP < 2000) { - int T2 = (int) (((long) dT * (long) dT) >> 31); - int TEMPM = TEMP - 2000; - long OFF2 = (61 * (long) TEMPM * (long) TEMPM) >> 4; - long SENS2 = 2 * (long) TEMPM * (long) TEMPM; - if (TEMP < 1500) { - int TEMPP = TEMP + 1500; - long TEMPP2 = TEMPP * TEMPP; - OFF2 = OFF2 + 15 * TEMPP2; - SENS2 = SENS2 + 8 * TEMPP2; - } - TEMP -= T2; - OFF -= OFF2; - SENS -= SENS2; - } - - pa = (int) (((((long) raw_pres * SENS) >> 21) - OFF) >> 15); - cc = TEMP; - } - - public int set(int in_pres, int in_temp) { - raw_pres = in_pres; - raw_temp = in_temp; - convert(); - return pa; - } -} diff --git a/altosui/Makefile.am b/altosui/Makefile.am index 1ec45c5f..0a6ae59e 100644 --- a/altosui/Makefile.am +++ b/altosui/Makefile.am @@ -45,9 +45,6 @@ altosui_JAVA = \ AltosEepromTeleScience.java \ AltosEepromMega.java \ AltosEepromMegaIterable.java \ - AltosMs5607.java \ - AltosIMU.java \ - AltosMag.java \ AltosEepromSelect.java \ AltosFlash.java \ AltosFlashUI.java \