diff options
| author | Keith Packard <keithp@keithp.com> | 2012-12-07 17:20:02 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2012-12-07 17:20:02 -0800 | 
| commit | 1f797066857b171b19829e2bb7187b8faf37d07c (patch) | |
| tree | b29c2443cd9eb8edf0050b283df9eb8d1ae58362 /src/drivers | |
| parent | b28323ce91d23db5e1c3cbd1309c72aafcfbe235 (diff) | |
altos: Use configured callsign in APRS packets
Instead of hard-coding my own call sign...
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/ao_aprs.c | 23 | 
1 files changed, 21 insertions, 2 deletions
| diff --git a/src/drivers/ao_aprs.c b/src/drivers/ao_aprs.c index e273908f..e3abe52e 100644 --- a/src/drivers/ao_aprs.c +++ b/src/drivers/ao_aprs.c @@ -253,12 +253,30 @@ typedef enum  /// AX.25 compliant packet header that contains destination, station call sign, and path.  /// 0x76 for SSID-11, 0x78 for SSID-12 -static const uint8_t TNC_AX25_HEADER[] = {  +static uint8_t TNC_AX25_HEADER[] = {       'A' << 1, 'P' << 1, 'A' << 1, 'M' << 1, ' ' << 1, ' ' << 1, 0x60, \ -    'K' << 1, 'D' << 1, '7' << 1, 'S' << 1, 'Q' << 1, 'G' << 1, 0x78, \ +    'N' << 1, '0' << 1, 'C' << 1, 'A' << 1, 'L' << 1, 'L' << 1, 0x78, \      'W' << 1, 'I' << 1, 'D' << 1, 'E' << 1, '2' << 1, ' ' << 1, 0x65, \      0x03, 0xf0 }; +#define TNC_CALLSIGN_OFF	7 +#define TNC_CALLSIGN_LEN	6 + +static void +tncSetCallsign(void) +{ +	uint8_t	i; + +	for (i = 0; i < TNC_CALLSIGN_LEN; i++) { +		if (!ao_config.callsign[i]) +			break; +		TNC_AX25_HEADER[TNC_CALLSIGN_OFF + i] = ao_config.callsign[i] << 1; +	} +	for (; i < TNC_CALLSIGN_LEN; i++) +		TNC_AX25_HEADER[TNC_CALLSIGN_OFF + i] = ' ' << 1; +		 +} +  /// The next bit to transmit.  static uint8_t tncTxBit; @@ -547,6 +565,7 @@ void ao_aprs_send(void)      timeInit();      tncInit(); +    tncSetCallsign();      tncLength = tncPositionPacket(); | 
