Move altosui to the top level, placing libaltos inside it. Signed-off-by: Keith Packard <keithp@keithp.com>
altosui: Catch I/O errors on telemetry device, report to user This catches the USB device being unplugged and makes sure the user sees an error dialog in this case. Signed-off-by: Keith Packard <keithp@keithp.com>
libaltos: Use overlapped I/O on windows Otherwise, reads block writes and vice-versa. Crazy stuff. Signed-off-by: Keith Packard <keithp@keithp.com>
libaltos: Fix windows build. Need stdlib.h to get calloc/free defined, remove debug printfs, fix serial timeouts. Signed-off-by: Keith Packard <keithp@keithp.com>
libaltos: Mac OS X cannot use 'poll(2)' on serial lines. Who ships this stuff, anyway? Instead of blocking, we'll poll every 100ms now, otherwise, we won't be able to abort the read when the device is closed. Yay! Signed-off-by: Keith Packard <keithp@keithp.com>
libaltos: AltusMetrum devices use more than one USB ID. List all usb devices, picking those with AltusMetrum IDs. Signed-off-by: Keith Packard <keithp@keithp.com>
libaltos: use pipe to wake up getchar on close. use mutexes
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>
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>
Darwin doesn't have strndup. This provides a private version of this GNU extension. Signed-off-by: Keith Packard <keithp@keithp.com>
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>
Add libaltos which talks to USB connected altos devices