fw/altos
10 years agoaltosui: Serial line is in UTF-8 encoding. Deal with it.
Keith Packard [Fri, 27 Aug 2010 06:50:51 +0000 (23:50 -0700)]
altosui: Serial line is in UTF-8 encoding. Deal with it.

We read bytes from the serial line and need to convert each line into
a string. So, save the bytes and at EOL, pass the whole mess to the
string constructor with the appropriate encoding info.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Add support for old (version < 3) telemetry files
Keith Packard [Fri, 27 Aug 2010 06:49:37 +0000 (23:49 -0700)]
altosui: Add support for old (version < 3) telemetry files

This lets the code read telemetry files from pre-released versions of
the software. Not strictly necessary for production, but useful for
analysing old files.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: AltosEepromReader was mis-setting boost tick
Keith Packard [Fri, 27 Aug 2010 06:47:38 +0000 (23:47 -0700)]
altosui: AltosEepromReader was mis-setting boost tick

It was supposed to use record.tick instead of the (unset) state.tick
value.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: add rssi and distance/dir from pad to CSV files
Keith Packard [Fri, 27 Aug 2010 06:44:25 +0000 (23:44 -0700)]
altosui: add rssi and distance/dir from pad to CSV files

Just adds a couple more fields to the CSV files that might be interesting.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Add AltosGreatCircle constructors
Keith Packard [Fri, 27 Aug 2010 06:43:00 +0000 (23:43 -0700)]
altosui: Add AltosGreatCircle constructors

This adds constructurs from AltosGPS pairs and also one from empty
args (which defines both distance and bearing as 0).

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Move number parsing code to Altos general class
Keith Packard [Fri, 27 Aug 2010 06:41:26 +0000 (23:41 -0700)]
altosui: Move number parsing code to Altos general class

This moves these shared functions to the global shared class.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: mark gps date written only after it gets into eeprom
Keith Packard [Fri, 27 Aug 2010 06:37:29 +0000 (23:37 -0700)]
altos: mark gps date written only after it gets into eeprom

Data logging doesn't start until boost detect occurs. As the GPS date
is only logged once, if that happens before logging is written to the
flash, then the GPS date will never get saved.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: print GPS state flags in GPS 'g' command
Keith Packard [Thu, 26 Aug 2010 22:59:09 +0000 (15:59 -0700)]
altos: print GPS state flags in GPS 'g' command

Having the GPS state information can help with GPS debugging.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: always rebuild ao_product.c to track git version
Keith Packard [Thu, 26 Aug 2010 22:57:09 +0000 (15:57 -0700)]
altos: always rebuild ao_product.c to track git version

The git version is built into ao_product.c and saved in eeprom log
files, providing useful diagnostics about the firmware revision used
for each flight. However, if ao_product.c isn't recompiled, then the
updated version won't be included. Force recompilation of this file
each time make is run to ensure that the final output contains an
updated version number.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: flush replies from serial link when entering debug mode
Keith Packard [Tue, 24 Aug 2010 23:43:38 +0000 (16:43 -0700)]
altosui: flush replies from serial link when entering debug mode

We use replies in debug mode a lot and depend on them matching the
expected parameters. The case which caused trouble was using
TeleMetrum to reprogram TeleDongle -- sending the 'm 0' command (to
disable telemetry monitoring on TeleDongle) to the TeleMetrum caused
it to reply 'Syntax Error' which confused the subsequent flashing
operation. Flushing that reply gets things back in sync.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: write USB serial number string while flashing
Keith Packard [Tue, 24 Aug 2010 11:02:27 +0000 (04:02 -0700)]
altosui: write USB serial number string while flashing

USB serial number is encoded in UCS2 as a part of the string
descriptors. Place those right after the other rom config bits so that
altosui can find it. altosui is changed to write the serial number there.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: always display romconfig ui while flashing
Keith Packard [Tue, 24 Aug 2010 11:01:47 +0000 (04:01 -0700)]
altosui: always display romconfig ui while flashing

10 years agoaltosui: fetch existing romconfig for flashing
Keith Packard [Tue, 24 Aug 2010 11:01:14 +0000 (04:01 -0700)]
altosui: fetch existing romconfig for flashing

10 years agoaltosui: Delay mapping Flash UI until flashing actually starts
Keith Packard [Tue, 24 Aug 2010 10:59:09 +0000 (03:59 -0700)]
altosui: Delay mapping Flash UI until flashing actually starts

The flash operation may be abandoned before it even starts; this makes
sure the UI doesn't flash up on the screen.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: disable radio monitoring while using serial line for debugging
Keith Packard [Tue, 24 Aug 2010 10:58:00 +0000 (03:58 -0700)]
altosui: disable radio monitoring while using serial line for debugging

10 years agoaltosui: Add ability to create CSV file from telem or eeprom files
Keith Packard [Tue, 24 Aug 2010 07:29:11 +0000 (00:29 -0700)]
altosui: Add ability to create CSV file from telem or eeprom files

This creates a comma separated value file to export data for
external programs.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: refactor logfile chooser dialog to share more code
Keith Packard [Tue, 24 Aug 2010 06:15:05 +0000 (23:15 -0700)]
altosui: refactor logfile chooser dialog to share more code

Move file opening logic into logfile chooser as it can be shared that way.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Separate out log file choosing dialog to share with CSV generator
Keith Packard [Tue, 24 Aug 2010 06:01:36 +0000 (23:01 -0700)]
altosui: Separate out log file choosing dialog to share with CSV generator

This dialog will be shared with the CSV file generating code, so split
it out instead of duplicating it.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: make default Manifest look for built-in freetts
Keith Packard [Tue, 24 Aug 2010 05:08:30 +0000 (22:08 -0700)]
altosui: make default Manifest look for built-in freetts

10 years agoaltos: Place rom config variables in fixed location
Keith Packard [Tue, 24 Aug 2010 05:03:36 +0000 (22:03 -0700)]
altos: Place rom config variables in fixed location

The device serial number and radio calibration values are stored in
flash, mostly so that TeleDongle gets them saved.

Placing them in well-known locations (starting at 0xa0) makes it
possible to find the previous configuration and to re-write it
easily, without requiring the .map file.

altosui doesn't have the .map file parsing code, so it relies upon
this new technique. As a benefit, it reads the old values from the
device before reprogramming it.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Finish device programming code
Keith Packard [Tue, 24 Aug 2010 05:02:21 +0000 (22:02 -0700)]
altosui: Finish device programming code

Altosui can now reprogram Altusmetrum devices.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Remove debug printf from AltosRomconfig
Keith Packard [Tue, 24 Aug 2010 05:01:38 +0000 (22:01 -0700)]
altosui: Remove debug printf from AltosRomconfig

10 years agoaltosui: flush serial output before waiting for reply
Keith Packard [Tue, 24 Aug 2010 05:01:11 +0000 (22:01 -0700)]
altosui: flush serial output before waiting for reply

10 years agoaltosui: remove debug printf from AltosHexfile
Keith Packard [Tue, 24 Aug 2010 05:00:16 +0000 (22:00 -0700)]
altosui: remove debug printf from AltosHexfile

10 years agoaltosui: Add lots more cc1111 debug interface functions
Keith Packard [Tue, 24 Aug 2010 04:58:50 +0000 (21:58 -0700)]
altosui: Add lots more cc1111 debug interface functions

These are sufficient to program the flash.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agolibaltos: use pipe to wake up getchar on close. use mutexes
Keith Packard [Tue, 24 Aug 2010 04:55:49 +0000 (21:55 -0700)]
libaltos: use pipe to wake up getchar on close. use mutexes

10 years agoaltosui: pad TM config dialog values to avoid clipping descenders
Keith Packard [Tue, 24 Aug 2010 04:54:47 +0000 (21:54 -0700)]
altosui: pad TM config dialog values to avoid clipping descenders

10 years agoao-dumplog: Fix --remote and --channel options to actually work
Keith Packard [Tue, 24 Aug 2010 04:53:37 +0000 (21:53 -0700)]
ao-dumplog: Fix --remote and --channel options to actually work

10 years agoaltosui: Add debug dongle API, split flash UI out
Keith Packard [Mon, 23 Aug 2010 21:32:58 +0000 (14:32 -0700)]
altosui: Add debug dongle API, split flash UI out

Create an API to talk through the debug port on another AltOS
device. Split the flash UI out from the flash implementation so that a
command line flash utility can be written.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Add .ihx file reading code and stub out flashing UI
Keith Packard [Mon, 23 Aug 2010 18:53:19 +0000 (11:53 -0700)]
altosui: Add .ihx file reading code and stub out flashing UI

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Set callsign when fetching eeprom data over the air
Keith Packard [Mon, 23 Aug 2010 06:06:15 +0000 (23:06 -0700)]
altosui: Set callsign when fetching eeprom data over the air

The updated firmware places the callsign in each packet to comply with
regulations, this ensures that TeleDongle has the current callsign
configured.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Add TeleMetrum configuration
Keith Packard [Mon, 23 Aug 2010 06:05:20 +0000 (23:05 -0700)]
altosui: Add TeleMetrum configuration

This presents a dialog with all of the user-settable options in the
TeleMetrum set for editing. Combo boxes are used for everything except
the callsign.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Make teledongle callsign configurable
Keith Packard [Sun, 22 Aug 2010 00:57:31 +0000 (17:57 -0700)]
altosui: Make teledongle callsign configurable

Teledongle uses the callsign in packet mode; this provides a way to
set that.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: Define USB product ID in per-product Makefile.defs file
Keith Packard [Sun, 22 Aug 2010 00:09:41 +0000 (17:09 -0700)]
altos: Define USB product ID in per-product Makefile.defs file

This allows Win7 to tell which kind of device is connected purely by
USB id as it doesn't expose the USB product ID string to user space.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Select devices by USB vendor/product ID.
Keith Packard [Wed, 18 Aug 2010 01:22:28 +0000 (18:22 -0700)]
altosui: Select devices by USB vendor/product ID.

Because Win7 doesn't expose the product name, we're swtiching to using
the USB idProduct/idVendor values. This patch adds support for
selecting devices by those new IDs.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agolibaltos: integrate Windows support.
Keith Packard [Wed, 18 Aug 2010 01:19:43 +0000 (18:19 -0700)]
libaltos: integrate Windows support.

This adds Windows support for discovery and I/O.

The API to the library is mostly unchanged, except that it now exports
product and vendor USB IDs as Win7 doesn't expose the product name
anywhere that we've been able to find, so we'll be updating the
firmware to use unique idProduct values for each product.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoao-dumplog: add --channel option (for use with -R option)
Keith Packard [Sun, 8 Aug 2010 02:30:55 +0000 (22:30 -0400)]
ao-dumplog: add --channel option (for use with -R option)

Sets the channel when downloading data with the -R option.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Start adding code to write csv files from eeprom/telem files
Keith Packard [Sat, 7 Aug 2010 04:42:25 +0000 (00:42 -0400)]
altosui: Start adding code to write csv files from eeprom/telem files

This is a start to code which can write out a csv file full of flight
data from either an eeprom or telem input file. It's not hooked up,
but the restructuring necessary is finished and the output is started.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltos: add callsign to packet mode, increase payload to 64 bytes
Keith Packard [Sat, 7 Aug 2010 04:40:59 +0000 (00:40 -0400)]
altos: add callsign to packet mode, increase payload to 64 bytes

Untested, but it 'should' work. Need to add callsign setting to packet
mode users.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Add comments to Eeprom reader
Keith Packard [Fri, 6 Aug 2010 17:09:21 +0000 (13:09 -0400)]
altosui: Add comments to Eeprom reader

10 years agoaltosui: Compute flight state from eeprom data
Keith Packard [Fri, 6 Aug 2010 02:49:53 +0000 (22:49 -0400)]
altosui: Compute flight state from eeprom data

This lets eeprom files be used to replay flights.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Split flight record out of telemetry class
Keith Packard [Thu, 5 Aug 2010 17:50:18 +0000 (13:50 -0400)]
altosui: Split flight record out of telemetry class

This will permit either telemetry or eeprom data to be used to
construct the sequence of flight events for reply or data generation.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Explicitly initialize Altos class
Keith Packard [Thu, 5 Aug 2010 17:40:17 +0000 (13:40 -0400)]
altosui: Explicitly initialize Altos class

Because the Altos class is never instantiated, the static initializers
are never called, leaving the string to state mapping empty. Hand-code
the call to the initialer instead.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Split status and info panels into separate files
Keith Packard [Sat, 31 Jul 2010 17:34:21 +0000 (10:34 -0700)]
altosui: Split status and info panels into separate files

This moves some code out of AltosUI.java into separate files

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Clear displayed data rows as needed.
Keith Packard [Sat, 31 Jul 2010 17:24:56 +0000 (10:24 -0700)]
altosui: Clear displayed data rows as needed.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Merge gps date and time classes into gps class
Keith Packard [Sat, 31 Jul 2010 17:07:38 +0000 (10:07 -0700)]
altosui: Merge gps date and time classes into gps class

No reason to split out the date and time information from the other gps info.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Capture config and version info in .eeprom files
Keith Packard [Sat, 31 Jul 2010 17:05:15 +0000 (10:05 -0700)]
altosui: Capture config and version info in .eeprom files

Instead of only writing the serial number to the .eeprom file, write
all of the config values and all of the version reply to the .eeprom
file. The config values, in particular, contain the accelerometer
calibration data which is needed to correctly compute acceleration
from the captured accelerometer data.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: rename AltosEeprom -> AltosEepromDownload, split out Altos constants
Keith Packard [Sat, 31 Jul 2010 16:57:49 +0000 (09:57 -0700)]
altosui: rename AltosEeprom -> AltosEepromDownload, split out Altos constants

Renames the eeprom downloading code and adds a new file to share the
flight data constants across the various UI modules.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoMerge remote branch 'origin/master'
Keith Packard [Thu, 29 Jul 2010 19:07:49 +0000 (12:07 -0700)]
Merge remote branch 'origin/master'

10 years agoMake altosui test script executable
Keith Packard [Thu, 29 Jul 2010 19:06:06 +0000 (12:06 -0700)]
Make altosui test script executable

10 years agoupdate changelogs for Debian build debian/0.6+277+gd184819
Bdale Garbee [Thu, 29 Jul 2010 18:57:31 +0000 (12:57 -0600)]
update changelogs for Debian build

10 years agoadd a jdk to the build deps
Bdale Garbee [Thu, 29 Jul 2010 18:56:59 +0000 (12:56 -0600)]
add a jdk to the build deps

10 years agoaltosui: remove option to install to alternate volume
Keith Packard [Thu, 29 Jul 2010 18:56:24 +0000 (11:56 -0700)]
altosui: remove option to install to alternate volume

10 years agoupdate changelogs for Debian build debian/0.6+275+g89109f9
Bdale Garbee [Thu, 29 Jul 2010 18:50:57 +0000 (12:50 -0600)]
update changelogs for Debian build

10 years agough, fixing failure due to aborted build debian/0.6+274+g865d5cd
Bdale Garbee [Thu, 29 Jul 2010 18:47:37 +0000 (12:47 -0600)]
ugh, fixing failure due to aborted build

10 years agoMoved Mac OS packaging to altosui dir
Keith Packard [Thu, 29 Jul 2010 18:45:56 +0000 (11:45 -0700)]
Moved Mac OS packaging to altosui dir

10 years agoadd swig as a build dep
Bdale Garbee [Thu, 29 Jul 2010 18:45:18 +0000 (12:45 -0600)]
add swig as a build dep

10 years agoaltosui: Switch eeprom extension back to .eeprom
Keith Packard [Thu, 29 Jul 2010 18:45:12 +0000 (11:45 -0700)]
altosui: Switch eeprom extension back to .eeprom

10 years agoupdate changelogs for Debian build debian/0.6+272+g62b4cc5
Bdale Garbee [Thu, 29 Jul 2010 18:40:52 +0000 (12:40 -0600)]
update changelogs for Debian build

10 years agoupdate changelogs for Debian build debian/0.6+271+g27a2d0c
Bdale Garbee [Thu, 29 Jul 2010 18:40:25 +0000 (12:40 -0600)]
update changelogs for Debian build

10 years agoAdd Mac OS X packaging bits
Keith Packard [Thu, 29 Jul 2010 18:24:47 +0000 (11:24 -0700)]
Add Mac OS X packaging bits

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: construct Darwin application directory
Keith Packard [Thu, 29 Jul 2010 18:09:19 +0000 (11:09 -0700)]
altosui: construct Darwin application directory

This adds the necessary files and build steps to construct
AltosUI.app on a Darwin system.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agolibaltos: build with java src encoding UTF8
Keith Packard [Thu, 29 Jul 2010 17:48:52 +0000 (10:48 -0700)]
libaltos: build with java src encoding UTF8

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: remove debug printf
Keith Packard [Thu, 29 Jul 2010 17:48:25 +0000 (10:48 -0700)]
altosui: remove debug printf

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Close serial, join reader thread, free altos_file
Keith Packard [Thu, 29 Jul 2010 17:45:02 +0000 (10:45 -0700)]
altosui: Close serial, join reader thread, free altos_file

Separating out the close and free actions ensures that the reader thread will not
access freed memory or dereference a null pointer while shutting down the
connection to the serial device. Otherwise, a race condition exists between the
serial close and the thread join.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Remove unnecessary freetts .jar files
Keith Packard [Thu, 29 Jul 2010 17:24:59 +0000 (10:24 -0700)]
altosui: Remove unnecessary freetts .jar files

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: check for closed serial device before reading
Keith Packard [Thu, 29 Jul 2010 17:24:09 +0000 (10:24 -0700)]
altosui: check for closed serial device before reading

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoupdate changelogs for Debian build debian/0.6+270+g537492d
Bdale Garbee [Thu, 29 Jul 2010 17:02:38 +0000 (11:02 -0600)]
update changelogs for Debian build

10 years agoupdate changelogs for Debian build debian/0.6+269+gadf6cbc
Bdale Garbee [Thu, 29 Jul 2010 17:01:21 +0000 (11:01 -0600)]
update changelogs for Debian build

10 years agoupdate changelogs for Debian build debian/0.6+268+gd0fd53b
Bdale Garbee [Thu, 29 Jul 2010 16:59:18 +0000 (10:59 -0600)]
update changelogs for Debian build

10 years agoReset GPS ready status when GPS comes unlocked on the pad
Keith Packard [Thu, 29 Jul 2010 04:49:23 +0000 (21:49 -0700)]
Reset GPS ready status when GPS comes unlocked on the pad

If GPS becomes unlocked, then report that in the UI and via
voice.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: report rocket ground bearing at landing only if known
Keith Packard [Thu, 29 Jul 2010 04:01:41 +0000 (21:01 -0700)]
altosui: report rocket ground bearing at landing only if known

if state.from_pad is null, then there isn't any data to report.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Replace device dialog. Center eeprom monitor.
Keith Packard [Thu, 29 Jul 2010 03:18:36 +0000 (20:18 -0700)]
altosui: Replace device dialog. Center eeprom monitor.

This adds a custom dialog for selecting device, which makes it look
much nicer on the screen and allows the user to double-click on an
entry to select it.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Fix Save flight data monitor layout, add cancel
Keith Packard [Thu, 29 Jul 2010 02:37:02 +0000 (19:37 -0700)]
altosui: Fix Save flight data monitor layout, add cancel

Use GridBagLayout to improve the appearance of the flight data monitor
widget, add a cancel button to stop loading data (useful if the
connection is wedged).

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Add progress bar for eeprom downloading status
Keith Packard [Thu, 29 Jul 2010 00:08:42 +0000 (17:08 -0700)]
altosui: Add progress bar for eeprom downloading status

This has a progress bar tracking the state and block count while
downloading stuff from telemetrum.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Add eeprom data capture function. No UI yet.
Keith Packard [Wed, 28 Jul 2010 22:41:34 +0000 (15:41 -0700)]
altosui: Add eeprom data capture function. No UI yet.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoMerge remote branch 'keithp/macos'
Keith Packard [Wed, 28 Jul 2010 20:29:51 +0000 (13:29 -0700)]
Merge remote branch 'keithp/macos'

10 years agoRemove debug printf
Keith Packard [Wed, 28 Jul 2010 20:29:21 +0000 (13:29 -0700)]
Remove debug printf

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoAdd voice test command for help in adjusting volume.
Keith Packard [Wed, 28 Jul 2010 20:10:11 +0000 (13:10 -0700)]
Add voice test command for help in adjusting volume.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoMake voice and channel menus work.
Keith Packard [Wed, 28 Jul 2010 20:01:52 +0000 (13:01 -0700)]
Make voice and channel menus work.

Stores voice and channel data to preferences.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoaltosui: Catch errors opening USB devices. Limit list to relevant devices
Keith Packard [Wed, 28 Jul 2010 19:24:53 +0000 (12:24 -0700)]
altosui: Catch errors opening USB devices. Limit list to relevant devices

Avoids a segfault when failing to open a device. Limit listed telemetry
devices to just TeleDongle units.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoMerge branch 'macos'
Keith Packard [Wed, 28 Jul 2010 18:20:22 +0000 (11:20 -0700)]
Merge branch 'macos'

10 years agoMake ao_log_data re-entrant as it is used for both sensor and GPS logs
Keith Packard [Wed, 28 Jul 2010 16:31:09 +0000 (09:31 -0700)]
Make ao_log_data re-entrant as it is used for both sensor and GPS logs

Because ao_log_data is called from two different threads, failing to
make it re-entrant would cause the 'log' pointer parameter to get
overwritten if another thread asked to log data while the eeprom was
busy writing out a block.

This would cause the second thread to re-writing data from the first
thread's address, but without re-checksumming the data as the checksum
is computed before the log mutex is taken.

The bug can be seen by log blocks with invalid checksums.

Here's what happens with the ao_gps_tracking_report and ao_log threads:

  ao_gps_tracking_report ao_log

   Writes a bunch of records
   *blocks* in the eeprom flush
sets ao_log_data 'log' to global 'log'
computes checksum for 'log' block
*blocks* on ao_log_mutex
   Wakes up
   sets ao_log_data 'log' to 'gps_log'
   writes remaining records
   'gps_log' is left with svid = 0
   *blocks* on ao_gps_tracking_data
writes data, reading from
the current ao_log_data 'log'
pointer which points at 'gps_log'

Making ao_log_data re-entrant fixes this by ensuring that the 'ao_log'
thread has its own copy of the ao_log_data 'log' parameter.

I made this function take an __xdata restricted pointer so that it
could be passed in the dptr register instead of needing to go on the stack.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoForce java source encoding to UTF-8
Keith Packard [Wed, 28 Jul 2010 02:29:38 +0000 (19:29 -0700)]
Force java source encoding to UTF-8

10 years agoJava voice reporting cleanups.
Keith Packard [Tue, 27 Jul 2010 22:29:28 +0000 (15:29 -0700)]
Java voice reporting cleanups.

Make sure it says something at the end of a log file replay.
Make sure it reports max speed after motor burn out, and max height
after apogee.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoJava clean ups -- use varargs where possible, remove AltosSerialReader
Keith Packard [Tue, 27 Jul 2010 17:18:20 +0000 (10:18 -0700)]
Java clean ups -- use varargs where possible, remove AltosSerialReader

Add methods that format stuff using String.format for voice and serial
link, remove AltosSerialReader class and just embed that in the
AltosSerial class directly.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoRemove directories as .class file dependencies; it makes them get rebuilt all the...
Keith Packard [Tue, 27 Jul 2010 17:18:09 +0000 (10:18 -0700)]
Remove directories as .class file dependencies; it makes them get rebuilt all the time

10 years agoClean up altosui build a bit
Keith Packard [Tue, 27 Jul 2010 08:22:56 +0000 (01:22 -0700)]
Clean up altosui build a bit

10 years agoAdd application icons for Mac OS X
Keith Packard [Tue, 27 Jul 2010 07:16:15 +0000 (00:16 -0700)]
Add application icons for Mac OS X

10 years agoAdd Mac OS X packaging files for altosui
Keith Packard [Tue, 27 Jul 2010 07:11:58 +0000 (00:11 -0700)]
Add Mac OS X packaging files for altosui

10 years agolibaltos: build fat 10.5-compatible library
Keith Packard [Tue, 27 Jul 2010 07:09:41 +0000 (00:09 -0700)]
libaltos: build fat 10.5-compatible library

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agolibaltos: make clean remove all built files
Keith Packard [Tue, 27 Jul 2010 07:09:18 +0000 (00:09 -0700)]
libaltos: make clean remove all built files

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agolibaltos needs -I. on all systems
Keith Packard [Tue, 27 Jul 2010 07:08:38 +0000 (00:08 -0700)]
libaltos needs -I. on all systems

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoDarwin doesn't have strndup.
Keith Packard [Tue, 27 Jul 2010 01:10:07 +0000 (18:10 -0700)]
Darwin doesn't have strndup.

This provides a private version of this GNU extension.

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoRe-enable Linux support for altosui.
Keith Packard [Tue, 27 Jul 2010 01:04:10 +0000 (18:04 -0700)]
Re-enable Linux support for altosui.

This steals code from cc-usbdev for scanning the USB tree and uses the
same tty code as on Darwin

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoRe-enable freetts
Keith Packard [Tue, 27 Jul 2010 00:04:04 +0000 (17:04 -0700)]
Re-enable freetts

10 years agoPresent list of altos devices in nice format
Keith Packard [Tue, 27 Jul 2010 00:03:47 +0000 (17:03 -0700)]
Present list of altos devices in nice format

10 years agoSwitch AltosUI to libaltos for device access
Keith Packard [Mon, 26 Jul 2010 22:42:48 +0000 (15:42 -0700)]
Switch AltosUI to libaltos for device access

Signed-off-by: Keith Packard <keithp@keithp.com>
10 years agoAdd libaltos which talks to USB connected altos devices
Keith Packard [Mon, 26 Jul 2010 22:41:39 +0000 (15:41 -0700)]
Add libaltos which talks to USB connected altos devices

10 years agoWhen the EP0 IN buffer is full, don't panic, just skip sending another
Keith Packard [Mon, 26 Jul 2010 19:52:17 +0000 (12:52 -0700)]
When the EP0 IN buffer is full, don't panic, just skip sending another

If the host doesn't pull the IN packet out of EP0 before sending
another SETUP command along, the IN buffer will still be busy when we
try to reply to the SETUP command. While I don't quite understand why
this would ever happen, there's no need to panic about it, just drop
the reply packet on the floor.

Signed-off-by: Keith Packard <keithp@keithp.com>