altos: Add Pico Beacon code as ao_aprs.c

Pico Beacon hooks a GPS to an AD9954 DDS radio chip with a PIC. It
directly synthesizes the necessary AX.25 packets to do APRS
reporting. We're going to appropriate the code for use in Mega Metrum
to (optionally) broadcast APRS packets.

	http://ad7zj.net/kd7lmo/aprsbeacon_code.html

Signed-off-by: Keith Packard <keithp@keithp.com>
(
altos: Make aprs code output encoded packets to stdout

This generates a .wav file containing a single APRS packet. This has
been tested and appears to be successfully decoded by an APRS receiver.

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Add test scaffolding for APRS

This moves some test code out of ao_aprs.c and into ao_aprs_test.c,
and then adds Makefile fragments to compile and run the resulting
program, creating a wav file as output

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Generate all of the APRS messages

Note that two of them are in NMEA form, which some receivers appear
not to parse

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Add missing ao_aprs.h file

This has defines for the planned APRS interface

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

altos: Switch APRS to standard position reporting form

Stop using NMEA sentences for position
altos: Strip out everything but the basic position reporting from APRS

Any useful data will be sent over the digital link; APRS is strictly
for position tracking

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Reduce printf calls in APRS packet generation

Merge all of the data into a single printf call

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Remove more unused APRS code

Getting down to a reasonable amount of code.

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: More APRS trimming

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Remove APRS sine-wave table

We're generating a lovely square wave, which appears to be decoded
just fine thankyouverymuch.

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Remove a bunch of time bits from the APRS code

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Start restructuring APRS code to create and send packets

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Prepare APRS for use within altos itself

Make all variables static, const-ify constants, change the public
name of the single entry point.

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Hook APRS up to the radio

This adds an arbitrary-length packet writing function to the radio
code.

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Hook up APRS to telemetry loop

Send APRS packet once every 2 seconds

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Allow telemetry, rdf and APRS to be individually controlled

But, only when APRS is available so that TeleMetrum and TeleMini don't
change behaviour

Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Send APRS packets even during ascent

If you're using APRS, presumably you want to watch the rocket going up too.

Signed-off-by: Keith Packard <keithp@keithp.com>
Merge branch 'master' into aprs
altos: Fix up APRS packet sending code in cc1120 driver

This fixes the FIFO management, ensuring that the data are streamed
into the radio fast enough to keep the packet continuous. Sounds like
it works, but testing with an actual APRS receiver is required.

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