summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-12-05 20:10:54 -0800
committerKeith Packard <keithp@keithp.com>2012-12-05 20:10:54 -0800
commit8b1f186a574c22cebd9daba9d352ec82556c3b28 (patch)
tree059ebb6575e79befcc60b9eae22c964d21a43206
parent0c2c47dd7af2fc95de852178c4244daba02f44ed (diff)
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>
-rw-r--r--src/drivers/ao_aprs.c8
-rw-r--r--src/test/ao_aprs_test.c35
2 files changed, 20 insertions, 23 deletions
diff --git a/src/drivers/ao_aprs.c b/src/drivers/ao_aprs.c
index df68278c..0a41d5fd 100644
--- a/src/drivers/ao_aprs.c
+++ b/src/drivers/ao_aprs.c
@@ -395,7 +395,7 @@ const uint32_t freqTable[256] =
void ddsSetFTW (uint32_t ftw)
{
int x = ftw - freqTable[0];
- putchar (x > 0 ? 0xff : 0x0);
+ putchar (x > 0 ? 0xc0 : 0x40);
}
/**
@@ -1243,6 +1243,10 @@ tncPrintf(char *fmt, ...)
va_start(ap, fmt);
c = vsprintf((char *) tncBufferPnt, fmt, ap);
+ if (*fmt == '\015')
+ fprintf (stderr, "\n");
+ else
+ vfprintf(stderr, fmt, ap);
va_end(ap);
tncBufferPnt += c;
tncLength += c;
@@ -1378,7 +1382,7 @@ void tncStatusPacket(int16_t temperature)
tncPrintf (">ANSR ");
// Display the flight time.
- tncPrintf ("%02U:%02U:%02U ", timeHours, timeMinutes, timeSeconds);
+ tncPrintf ("%02u:%02u:%02u ", timeHours, timeMinutes, timeSeconds);
// Altitude in feet.
tncPrintf ("%ld' ", gpsPosition.altitudeFeet);
diff --git a/src/test/ao_aprs_test.c b/src/test/ao_aprs_test.c
index d791e930..1c0b252b 100644
--- a/src/test/ao_aprs_test.c
+++ b/src/test/ao_aprs_test.c
@@ -54,42 +54,34 @@
*/
-// This is where we go after reset.
-int main(int argc, char **argv)
+static void
+audio_gap(int secs)
{
- uint8_t utcSeconds, lockLostCounter;
-
-//test();
+ int samples = secs * 9600;
- // Configure the basic systems.
-// sysInit();
-
- // Wait for the power converter chains to stabilize.
-// delay_ms (100);
+ while (samples--)
+ putchar(0x7f);
+}
- // Setup the subsystems.
-// adcInit();
-// flashInit();
+// This is where we go after reset.
+int main(int argc, char **argv)
+{
+ uint8_t utcSeconds, lockLostCounter, i;
gpsInit();
-// logInit();
-// timeInit();
-// serialInit();
tncInit();
- // Program the DDS.
-// ddsInit();
-
+ audio_gap(1);
// Transmit software version packet on start up.
tncTxPacket(TNC_MODE_1200_AFSK);
- exit(0);
// Counters to send packets if the GPS time stamp is not available.
lockLostCounter = 5;
utcSeconds = 55;
// This is the main loop that process GPS data and waits for the once per second timer tick.
- for (;;)
+ for (i = 0; i < 5; i++)
{
+ audio_gap(10);
// Read the GPS engine serial port FIFO and process the GPS data.
// gpsUpdate();
@@ -138,6 +130,7 @@ int main(int argc, char **argv)
} // END if timeIsUpdate
} // END for
+ return 0;
}