summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2013-12-18 18:25:35 -0700
committerBdale Garbee <bdale@gag.com>2013-12-18 18:25:35 -0700
commitd9982c257463f23be940eea66bd4dc3aadff0043 (patch)
treea4744aa4f82b6e9a0a7d019c4112516191aed7c8
parent1b97ed2b64bcbcd969124964f1e49837899f1c70 (diff)
parentb63fc05481bf6d57e6385704ce53c1c19afa9c2e (diff)
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
-rw-r--r--.gitignore1
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java6
-rw-r--r--altoslib/AltosEepromDownload.java2
-rw-r--r--altoslib/AltosIdleMonitor.java3
-rw-r--r--altoslib/AltosLib.java5
-rw-r--r--altoslib/AltosMs5607.java8
-rw-r--r--altoslib/AltosTelemetryReader.java5
-rw-r--r--altosui/AltosAscent.java4
-rw-r--r--altosui/AltosDescent.java4
-rw-r--r--altosui/AltosIdleMonitorUI.java2
-rw-r--r--altosui/AltosPad.java8
-rw-r--r--altosui/Makefile.am4
-rw-r--r--configure.ac8
-rw-r--r--doc/micropeak.xsl12
-rw-r--r--libaltos/cjnitest.c3
-rw-r--r--libaltos/libaltos.c11
-rwxr-xr-xlibaltos/libaltos.dylibbin41596 -> 41596 bytes
-rw-r--r--micropeak/Makefile.am2
m---------pdclib0
-rw-r--r--src/Makedefs.in1
-rw-r--r--src/Makefile7
21 files changed, 47 insertions, 49 deletions
diff --git a/.gitignore b/.gitignore
index 54834f66..61f48048 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,3 +64,4 @@ doc/telemetrum.fo
doc/telemetrum.html
doc/telemetrum.pdf
altosui/altos-windows.log
+pdclib-root
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
index 2c6732e5..b9e878f1 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/TabPad.java
@@ -104,13 +104,13 @@ public class TabPad extends Fragment implements AltosDroidTab {
public void update_ui(AltosState state, AltosGreatCircle from_receiver, Location receiver) {
if (state != null) {
mBatteryVoltageView.setText(AltosDroid.number("%4.2f V", state.battery_voltage));
- mBatteryLights.set(state.battery_voltage > 3.7, state.battery_voltage == AltosLib.MISSING);
+ mBatteryLights.set(state.battery_voltage >= AltosLib.ao_battery_good, state.battery_voltage == AltosLib.MISSING);
mApogeeVoltageView.setText(AltosDroid.number("%4.2f V", state.apogee_voltage));
- mApogeeLights.set(state.apogee_voltage > 3.2, state.apogee_voltage == AltosLib.MISSING);
+ mApogeeLights.set(state.apogee_voltage >= AltosLib.ao_igniter_good, state.apogee_voltage == AltosLib.MISSING);
mMainVoltageView.setText(AltosDroid.number("%4.2f V", state.main_voltage));
- mMainLights.set(state.main_voltage > 3.2, state.main_voltage == AltosLib.MISSING);
+ mMainLights.set(state.main_voltage >= AltosLib.ao_igniter_good, state.main_voltage == AltosLib.MISSING);
if (state.flight != 0) {
if (state.state <= AltosLib.ao_flight_pad)
diff --git a/altoslib/AltosEepromDownload.java b/altoslib/AltosEepromDownload.java
index 542defee..1b043167 100644
--- a/altoslib/AltosEepromDownload.java
+++ b/altoslib/AltosEepromDownload.java
@@ -239,6 +239,7 @@ public class AltosEepromDownload implements Runnable {
public void start() {
eeprom_thread = new Thread(this);
+ monitor.set_thread(eeprom_thread);
eeprom_thread.start();
}
@@ -255,7 +256,6 @@ public class AltosEepromDownload implements Runnable {
monitor.set_states(AltosLib.ao_flight_boost, AltosLib.ao_flight_landed);
- monitor.set_thread(eeprom_thread);
monitor.start();
}
}
diff --git a/altoslib/AltosIdleMonitor.java b/altoslib/AltosIdleMonitor.java
index c816c202..d9d71143 100644
--- a/altoslib/AltosIdleMonitor.java
+++ b/altoslib/AltosIdleMonitor.java
@@ -91,14 +91,11 @@ public class AltosIdleMonitor extends Thread {
}
public void abort() throws InterruptedException {
- System.out.printf("Attempting to abort monitor thread\n");
while (isAlive()) {
- System.out.printf("Interrupting\n");
interrupt();
link.abort_reply();
Thread.sleep(100);
}
- System.out.printf("Appears to be dead now\n");
join();
}
diff --git a/altoslib/AltosLib.java b/altoslib/AltosLib.java
index 36a2ab32..efbc3ddb 100644
--- a/altoslib/AltosLib.java
+++ b/altoslib/AltosLib.java
@@ -143,6 +143,11 @@ public class AltosLib {
/* Bluetooth "identifier" (bluetooth sucks) */
public final static String bt_product_telebt = "TeleBT";
+ /* "good" voltages */
+
+ public final static double ao_battery_good = 3.8;
+ public final static double ao_igniter_good = 3.5;
+
/* Telemetry modes */
public static final int ao_telemetry_off = 0;
public static final int ao_telemetry_min = 1;
diff --git a/altoslib/AltosMs5607.java b/altoslib/AltosMs5607.java
index 23d65ea9..2319d5b8 100644
--- a/altoslib/AltosMs5607.java
+++ b/altoslib/AltosMs5607.java
@@ -85,12 +85,10 @@ public class AltosMs5607 {
}
public boolean parse_line(String line) {
- System.out.printf ("parse %s\n", line);
String[] items = line.split("\\s+");
if (line.startsWith("Pressure:")) {
if (items.length >= 2) {
raw_pres = Integer.parseInt(items[1]);
- System.out.printf ("raw_pres %d\n", raw_pres);
}
} else if (line.startsWith("Temperature:")) {
if (items.length >= 2)
@@ -99,10 +97,8 @@ public class AltosMs5607 {
if (items.length >= 3)
reserved = Integer.parseInt(items[2]);
} else if (line.startsWith("ms5607 sens:")) {
- System.out.printf ("found sens length %d\n", items.length);
if (items.length >= 3) {
sens = Integer.parseInt(items[2]);
- System.out.printf ("sens %d\n", sens);
}
} else if (line.startsWith("ms5607 off:")) {
if (items.length >= 3)
@@ -156,13 +152,9 @@ public class AltosMs5607 {
throw new TimeoutException();
}
if (!parse_line(line)) {
- System.out.printf ("stop parsing at %s\n", line);
break;
}
}
- System.out.printf ("sens %d off %d tcs %d tco %d tref %d tempsens %d crc %d pres %d temp %d\n",
- sens, off, tcs, tco, tref, tempsens, crc, raw_pres, raw_temp);
convert();
- System.out.printf ("pa %d cc %d\n", pa, cc);
}
}
diff --git a/altoslib/AltosTelemetryReader.java b/altoslib/AltosTelemetryReader.java
index 405c555b..eeb35cb5 100644
--- a/altoslib/AltosTelemetryReader.java
+++ b/altoslib/AltosTelemetryReader.java
@@ -124,6 +124,7 @@ public class AltosTelemetryReader extends AltosFlightReader {
public AltosTelemetryReader (AltosLink in_link)
throws IOException, InterruptedException, TimeoutException {
link = in_link;
+ boolean success = false;
try {
log = new AltosLog(link);
name = link.name;
@@ -133,8 +134,10 @@ public class AltosTelemetryReader extends AltosFlightReader {
telemetry = AltosPreferences.telemetry(link.serial);
set_telemetry(telemetry);
link.add_monitor(telem);
+ success = true;
} finally {
- close(true);
+ if (!success)
+ close(true);
}
}
}
diff --git a/altosui/AltosAscent.java b/altosui/AltosAscent.java
index 1d9af546..ba4fc614 100644
--- a/altosui/AltosAscent.java
+++ b/altosui/AltosAscent.java
@@ -285,7 +285,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {
class Apogee extends AscentStatus {
void show (AltosState state, AltosListenerState listener_state) {
show("%4.2f V", state.apogee_voltage);
- lights.set(state.apogee_voltage > 3.7);
+ lights.set(state.apogee_voltage >= AltosLib.ao_igniter_good);
}
public Apogee (GridBagLayout layout, int y) {
super(layout, y, "Apogee Igniter Voltage");
@@ -297,7 +297,7 @@ public class AltosAscent extends JComponent implements AltosFlightDisplay {
class Main extends AscentStatus {
void show (AltosState state, AltosListenerState listener_state) {
show("%4.2f V", state.main_voltage);
- lights.set(state.main_voltage > 3.7);
+ lights.set(state.main_voltage >= AltosLib.ao_igniter_good);
}
public Main (GridBagLayout layout, int y) {
super(layout, y, "Main Igniter Voltage");
diff --git a/altosui/AltosDescent.java b/altosui/AltosDescent.java
index 77776ff2..e73d990c 100644
--- a/altosui/AltosDescent.java
+++ b/altosui/AltosDescent.java
@@ -323,7 +323,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {
class Apogee extends DescentStatus {
void show (AltosState state, AltosListenerState listener_state) {
show("%4.2f V", state.apogee_voltage);
- lights.set(state.apogee_voltage > 3.7);
+ lights.set(state.apogee_voltage >= AltosLib.ao_igniter_good);
}
public Apogee (GridBagLayout layout, int y) {
super(layout, y, "Apogee Igniter Voltage");
@@ -335,7 +335,7 @@ public class AltosDescent extends JComponent implements AltosFlightDisplay {
class Main extends DescentStatus {
void show (AltosState state, AltosListenerState listener_state) {
show("%4.2f V", state.main_voltage);
- lights.set(state.main_voltage > 3.7);
+ lights.set(state.main_voltage >= AltosLib.ao_igniter_good);
}
public Main (GridBagLayout layout, int y) {
super(layout, y, "Main Igniter Voltage");
diff --git a/altosui/AltosIdleMonitorUI.java b/altosui/AltosIdleMonitorUI.java
index 6da920e2..6a79604e 100644
--- a/altosui/AltosIdleMonitorUI.java
+++ b/altosui/AltosIdleMonitorUI.java
@@ -195,13 +195,11 @@ public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDispl
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
- System.out.printf("Closing idle monitor window\n");
try {
disconnect();
} catch (Exception ex) {
System.out.println(Arrays.toString(ex.getStackTrace()));
}
- System.out.printf("hiding\n");
setVisible(false);
dispose();
AltosUIPreferences.unregister_font_listener(AltosIdleMonitorUI.this);
diff --git a/altosui/AltosPad.java b/altosui/AltosPad.java
index b35bd23a..06a0f1ef 100644
--- a/altosui/AltosPad.java
+++ b/altosui/AltosPad.java
@@ -180,7 +180,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
hide();
else {
show("%4.2f V", state.battery_voltage);
- lights.set(state.battery_voltage > 3.7);
+ lights.set(state.battery_voltage >= AltosLib.ao_battery_good);
}
}
public Battery (GridBagLayout layout, int y) {
@@ -196,7 +196,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
hide();
else {
show("%4.2f V", state.apogee_voltage);
- lights.set(state.apogee_voltage > 3.7);
+ lights.set(state.apogee_voltage >= AltosLib.ao_igniter_good);
}
}
public Apogee (GridBagLayout layout, int y) {
@@ -212,7 +212,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
hide();
else {
show("%4.2f V", state.main_voltage);
- lights.set(state.main_voltage > 3.7);
+ lights.set(state.main_voltage >= AltosLib.ao_igniter_good);
}
}
public Main (GridBagLayout layout, int y) {
@@ -287,7 +287,7 @@ public class AltosPad extends JComponent implements AltosFlightDisplay {
hide();
else {
show("%4.2f V", listener_state.battery);
- lights.set(listener_state.battery > 3.7);
+ lights.set(listener_state.battery > AltosLib.ao_battery_good);
}
}
public ReceiverBattery (GridBagLayout layout, int y) {
diff --git a/altosui/Makefile.am b/altosui/Makefile.am
index 0b75a2b1..824ec9e1 100644
--- a/altosui/Makefile.am
+++ b/altosui/Makefile.am
@@ -178,7 +178,7 @@ LINUX_FILES=$(FAT_FILES) libaltos.so $(FIRMWARE) $(DOC)
LINUX_EXTRA=altosui-fat
MACOSX_INFO_PLIST=Info.plist
-MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) ReadMe-Mac.rtf
+MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(DOC) ReadMe-Mac.rtf
MACOSX_EXTRA=$(FIRMWARE)
WINDOWS_FILES=$(FAT_FILES) altos.dll altos64.dll $(top_srcdir)/telemetrum.inf $(WINDOWS_ICON)
@@ -329,6 +329,8 @@ $(MACOSX_DIST): $(MACOSX_FILES) $(MACOSX_EXTRA) Makefile
mkdir macosx
cp -a AltosUI.app macosx/
cp -a ReadMe-Mac.rtf macosx/ReadMe.rtf
+ mkdir -p macosx/Doc
+ cp -a $(DOC) macosx/Doc
cp -p Info.plist macosx/AltosUI.app/Contents
mkdir -p macosx/AltOS-$(VERSION) macosx/AltosUI.app/Contents/Resources/Java
cp -p $(FATJAR) macosx/AltosUI.app/Contents/Resources/Java/altosui.jar
diff --git a/configure.ac b/configure.ac
index b6e17355..b92e06a9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -239,9 +239,10 @@ AC_SUBST(HAVE_ARM_CC)
AC_SUBST(ARM_CC)
if test -d pdclib -a x"$HAVE_ARM_CC" = xyes; then
- PDCLIB_INCLUDES='-I$(TOPDIR)/../pdclib/opt/include'
- PDCLIB_LIBS_M0='-L$(TOPDIR)/../pdclib/opt/lib -lpdclib-cortex-m0'
- PDCLIB_LIBS_M3='-L$(TOPDIR)/../pdclib/opt/lib -lpdclib-cortex-m3'
+ PDCLIB_ROOT='$(TOPDIR)/../pdclib-root'
+ PDCLIB_INCLUDES='-I$(TOPDIR)/../pdclib-root/include'
+ PDCLIB_LIBS_M0='-L$(TOPDIR)/../pdclib-root/lib -lpdclib-cortex-m0'
+ PDCLIB_LIBS_M3='-L$(TOPDIR)/../pdclib-root/lib -lpdclib-cortex-m3'
HAVE_PDCLIB=yes
else
PDCLIB_INCLUDES=''
@@ -255,6 +256,7 @@ AM_CONDITIONAL(PDCLIB, [test x$HAVE_PDCLIB = xyes])
AC_SUBST(PDCLIB_INCLUDES)
AC_SUBST(PDCLIB_LIBS_M0)
AC_SUBST(PDCLIB_LIBS_M3)
+AC_SUBST(PDCLIB_ROOT)
AC_SUBST(HAVE_PDCLIB)
if test "x$HAVE_ARM_CC" = "xyes"; then
diff --git a/doc/micropeak.xsl b/doc/micropeak.xsl
index afa6fd15..8c487e5d 100644
--- a/doc/micropeak.xsl
+++ b/doc/micropeak.xsl
@@ -115,20 +115,20 @@ NAR #88757, TRA #12200
<para>
Finish preparing the rocket for flight. After the
previous flight data have been reported, MicroPeak waits for
- 30 seconds before starting to check for launch. This gives
+ one minute before starting to check for launch. This gives
you time to finish assembling the rocket. As those
activities might cause pressure changes inside the airframe,
MicroPeak might accidentally detect boost. If you need to do
- anything to the airframe after the 30 second window passes,
+ anything to the airframe after the one minute window passes,
make sure to be careful not to disturb the altimeter. The
- LED will remain dark during the 30 second delay, but after
+ LED will remain dark during the one minute delay, but after
that, it will start blinking once every 3 seconds.
</para>
</listitem>
<listitem>
<para>
- Fly the rocket. Once the rocket passes about 10m in height
- (32 feet), the micro-controller will record the ground
+ Fly the rocket. Once the rocket passes about 30m in height
+ (100 feet), the micro-controller will record the ground
pressure and track the pressure seen during the flight. In
this mode, the LED flickers rapidly. When the rocket lands,
and the pressure stabilizes, the micro-controller will record
@@ -401,7 +401,7 @@ NAR #88757, TRA #12200
<section>
<title>Lithium Battery</title>
<para>
- The CR1025 battery used by MicroPeak holes 30mAh of power,
+ The CR1025 battery used by MicroPeak holds 30mAh of power,
which is sufficient to run for over 40 hours. Because
MicroPeak powers down on landing, run time includes only time
sitting on the launch pad or during flight.
diff --git a/libaltos/cjnitest.c b/libaltos/cjnitest.c
index f0fe78f7..3a65c3d6 100644
--- a/libaltos/cjnitest.c
+++ b/libaltos/cjnitest.c
@@ -10,7 +10,8 @@ altos_puts(struct altos_file *file, char *string)
altos_putchar(file, c);
}
-main ()
+int
+main (int argc, char **argv)
{
struct altos_device device;
struct altos_list *list;
diff --git a/libaltos/libaltos.c b/libaltos/libaltos.c
index 4a6363ed..a623d5ae 100644
--- a/libaltos/libaltos.c
+++ b/libaltos/libaltos.c
@@ -53,6 +53,8 @@ altos_get_last_error(struct altos_error *error)
#ifdef DARWIN
+#include <unistd.h>
+
#undef USE_POLL
/* Mac OS X don't have strndup even if _GNU_SOURCE is defined */
@@ -887,15 +889,6 @@ altos_list_next(struct altos_list *list, struct altos_device *device)
if (!get_number (object, CFSTR(kUSBVendorID), &device->vendor) ||
!get_number (object, CFSTR(kUSBProductID), &device->product))
continue;
- if (list->ftdi) {
- if (device->vendor != 0x0403)
- continue;
- } else {
- if (device->vendor != 0xfffe)
- continue;
- if (device->product < 0x000a || 0x0013 < device->product)
- continue;
- }
if (get_string (object, CFSTR("IOCalloutDevice"), device->path, sizeof (device->path)) &&
get_string (object, CFSTR("USB Product Name"), device->name, sizeof (device->name)) &&
get_string (object, CFSTR("USB Serial Number"), serial_string, sizeof (serial_string))) {
diff --git a/libaltos/libaltos.dylib b/libaltos/libaltos.dylib
index cfbd3f54..8b491c58 100755
--- a/libaltos/libaltos.dylib
+++ b/libaltos/libaltos.dylib
Binary files differ
diff --git a/micropeak/Makefile.am b/micropeak/Makefile.am
index 098a00fb..af46abc0 100644
--- a/micropeak/Makefile.am
+++ b/micropeak/Makefile.am
@@ -1,5 +1,5 @@
JAVAROOT=classes
-AM_JAVACFLAGS=-encoding UTF-8 -Xlint:deprecation
+AM_JAVACFLAGS=-target 1.6 -encoding UTF-8 -Xlint:deprecation -source 6
altoslibdir=$(libdir)/altos
diff --git a/pdclib b/pdclib
-Subproject f3165dbd639299d08033ed5eef62a21b69540a8
+Subproject 8b1c9061fa3a8f1b30ee13b373afe5cc1ad9d38
diff --git a/src/Makedefs.in b/src/Makedefs.in
index d4ef28be..a52f96fa 100644
--- a/src/Makedefs.in
+++ b/src/Makedefs.in
@@ -4,6 +4,7 @@ HAVE_ARM_M0_CC=@HAVE_ARM_M0_CC@
PDCLIB_INCLUDES=@PDCLIB_INCLUDES@
PDCLIB_LIBS_M0=@PDCLIB_LIBS_M0@
PDCLIB_LIBS_M3=@PDCLIB_LIBS_M3@
+PDCLIB_ROOT=@PDCLIB_ROOT@
HAVE_PDCLIB=@HAVE_PDCLIB@
SDCC=@SDCC@
diff --git a/src/Makefile b/src/Makefile
index 0ca101c0..392262d4 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,6 +13,7 @@ vpath load_csv.5c kalman
vpath matrix.5c kalman
include Version
+TOPDIR=.
include Makedefs
SDCCDIRS=\
@@ -114,7 +115,9 @@ clean-local: $(CLEAN_PDCLIB)
rm -f altitude.h ao_kalman.h
pdclib:
- cd ../pdclib && mkdir -p opt/include opt/lib && make && make prefix=`pwd`/opt install
+ mkdir -p $(PDCLIB_ROOT)/include $(PDCLIB_ROOT)/lib
+ cd ../pdclib && make && make prefix=`pwd`/../pdclib-root install
clean-pdclib:
- cd ../pdclib && make clean && rm -rf opt \ No newline at end of file
+ rm -rf $(PDCLIB_ROOT)
+ cd ../pdclib && make clean