diff options
| author | Keith Packard <keithp@keithp.com> | 2014-06-20 00:41:17 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2014-06-20 00:41:17 -0700 | 
| commit | 602d6a2424a5c16e22febf6b4e6b3816022261c7 (patch) | |
| tree | ea302a4a96c0ec182e0f7fba1452203ef0c20dc3 | |
| parent | 3016ee5f21ec66bf9230b90ab1420b8fad628f8d (diff) | |
altos/aprs: Encode last serial number in SSID. Transmit serial in comment
This makes it a lot easier to tell which device is sending
information, and to receive data from multiple devices on the same
receiver.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | src/drivers/ao_aprs.c | 4 | ||||
| -rw-r--r-- | src/test/ao_aprs_test.c | 24 | ||||
| -rw-r--r-- | telegps/Makefile.am | 2 | 
3 files changed, 4 insertions, 26 deletions
| diff --git a/src/drivers/ao_aprs.c b/src/drivers/ao_aprs.c index 8a1b6a4d..c33016f0 100644 --- a/src/drivers/ao_aprs.c +++ b/src/drivers/ao_aprs.c @@ -261,6 +261,7 @@ static uint8_t TNC_AX25_HEADER[] = {  #define TNC_CALLSIGN_OFF	7  #define TNC_CALLSIGN_LEN	6 +#define TNC_SSID_OFF		13  static void  tncSetCallsign(void) @@ -275,6 +276,7 @@ tncSetCallsign(void)  	}  	for (; i < TNC_CALLSIGN_LEN; i++)  		TNC_AX25_HEADER[TNC_CALLSIGN_OFF + i] = ' ' << 1; +	TNC_AX25_HEADER[TNC_SSID_OFF] = 0x60 | ((ao_serial_number % 10) << 1);  #endif  } @@ -530,6 +532,7 @@ static int tncComment(uint8_t *buf)  #ifdef AO_SENSE_MAIN  		       " M%d.%d"  #endif +		       " %d"  		       , ao_gps_locked(),  		       ao_num_sats(),  		       battery/10, @@ -542,6 +545,7 @@ static int tncComment(uint8_t *buf)  		       , main/10,  		       main%10  #endif +		       , ao_serial_number  		);  #else  	return sprintf((char *) buf, diff --git a/src/test/ao_aprs_test.c b/src/test/ao_aprs_test.c index 86cf527a..573b5cb2 100644 --- a/src/test/ao_aprs_test.c +++ b/src/test/ao_aprs_test.c @@ -97,36 +97,12 @@ audio_gap(int secs)  #endif  } -#include <math.h> - -int -ao_aprs_encode_altitude_expensive(int meters) -{ -	double	feet = meters / 0.3048; - -	double	encode = log(feet) / log(1.002); -	return floor(encode + 0.5); -} -  // This is where we go after reset.  int main(int argc, char **argv)  {  	int	e, x;  	int	a; -	for (a = 1; a < 100000; a++) { -		e = ao_aprs_encode_altitude(a); -		x = ao_aprs_encode_altitude_expensive(a); - -		if (e != x) { -			double	back_feet, back_meters; -			back_feet = pow(1.002, e); -			back_meters = back_feet * 0.3048; -			fprintf (stderr, "APRS altitude encoding failure: altitude %d actual %d expected %d actual meters %f\n", -				 a, e, x, back_meters); -		} -	} -      audio_gap(1);      ao_gps_data.latitude = (45.0 + 28.25 / 60.0) * 10000000; diff --git a/telegps/Makefile.am b/telegps/Makefile.am index a7defb8a..3f53b949 100644 --- a/telegps/Makefile.am +++ b/telegps/Makefile.am @@ -205,8 +205,6 @@ $(FATJAR): classtelegps.stamp Manifest-fat.txt $(ALTOSLIB_CLASS) $(ALTOSUILIB_CL  		-C classes org \  		-C ../libaltos libaltosJNI -classtelegps.stamp: $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) -  libaltos.so: build-libaltos  	-rm -f "$@"  	$(LN_S) ../libaltos/.libs/"$@" . | 
