diff options
| -rw-r--r-- | ao-tools/ao-postflight/ao-postflight.c | 4 | ||||
| -rw-r--r-- | ao-tools/lib/cc-logfile.c | 1 | ||||
| -rw-r--r-- | ao-tools/lib/cc-telem.c | 17 | ||||
| -rw-r--r-- | ao-tools/lib/cc.h | 1 | ||||
| -rw-r--r-- | src/ao.h | 12 | ||||
| -rw-r--r-- | src/ao_gps_print.c | 7 | ||||
| -rw-r--r-- | src/ao_gps_sirf.c | 5 | ||||
| -rw-r--r-- | src/ao_gps_skytraq.c | 6 | ||||
| -rw-r--r-- | src/ao_gps_test.c | 5 | 
9 files changed, 23 insertions, 35 deletions
diff --git a/ao-tools/ao-postflight/ao-postflight.c b/ao-tools/ao-postflight/ao-postflight.c index 733eb38c..c12939aa 100644 --- a/ao-tools/ao-postflight/ao-postflight.c +++ b/ao-tools/ao-postflight/ao-postflight.c @@ -360,7 +360,7 @@ analyse_flight(struct cc_flightraw *f, FILE *summary_file, FILE *detail_file,  			nsat = 0;  			for (k = 0; k < f->gps.sats[j].nsat; k++) {  				fprintf (gps_file, " %12.7f", (double) f->gps.sats[j].sat[k].c_n); -				if (f->gps.sats[j].sat[k].state == 0xbf) +				if (f->gps.sats[j].sat[k].svid != 0)  					nsat++;  			}  			fprintf(gps_file, " %d\n", nsat); @@ -381,7 +381,7 @@ analyse_flight(struct cc_flightraw *f, FILE *summary_file, FILE *detail_file,  			}  			nsat = 0;  			for (k = 0; k < f->gps.sats[j].nsat; k++) -				if (f->gps.sats[j].sat[k].state == 0xbf) +				if (f->gps.sats[j].sat[k].svid != 0)  					nsat++;  			fprintf(kml_file, "%12.7f, %12.7f, %12.7f <!-- time %12.7f sats %d -->", diff --git a/ao-tools/lib/cc-logfile.c b/ao-tools/lib/cc-logfile.c index 3d346bcc..9d086c82 100644 --- a/ao-tools/lib/cc-logfile.c +++ b/ao-tools/lib/cc-logfile.c @@ -212,7 +212,6 @@ read_eeprom(const char *line, struct cc_flightraw *f, double *ground_pres, int *  	case AO_LOG_GPS_SAT:  		sat.time = tick;  		sat.svid = a; -		sat.state = (b & 0xff);  		sat.c_n = (b >> 8) & 0xff;  		gpssat_add(&f->gps, &sat);  		break; diff --git a/ao-tools/lib/cc-telem.c b/ao-tools/lib/cc-telem.c index 9a2f6155..ccd40ac2 100644 --- a/ao-tools/lib/cc-telem.c +++ b/ao-tools/lib/cc-telem.c @@ -178,18 +178,25 @@ cc_telem_parse(const char *input_line, struct cc_telem *telem)  	}  	if (tracking_pos >= 0 && nword >= tracking_pos + 2 && strcmp(words[tracking_pos], "SAT") == 0) {  		int	c, n, pos; +		int	per_sat; +		int	state; + +		if (version >= 2) +			per_sat = 2; +		else +			per_sat = 3;  		cc_parse_int(&n, words[tracking_pos + 1]);  		pos = tracking_pos + 2; -		if (nword >= pos + n * 3) { +		if (nword >= pos + n * per_sat) {  			telem->gps_tracking.channels = n;  			for (c = 0; c < n; c++) {  				cc_parse_int(&telem->gps_tracking.sats[c].svid,  						 words[pos + 0]); -				cc_parse_hex(&telem->gps_tracking.sats[c].state, -						 words[pos + 1]); +				if (version < 2) +					cc_parse_hex(&state, words[pos + 1]);  				cc_parse_int(&telem->gps_tracking.sats[c].c_n0, -						 words[pos + 2]); -				pos += 3; +						 words[pos + per_sat - 1]); +				pos += per_sat;  			}  		} else {  			telem->gps_tracking.channels = 0; diff --git a/ao-tools/lib/cc.h b/ao-tools/lib/cc.h index ebc0db7d..0e8ced8a 100644 --- a/ao-tools/lib/cc.h +++ b/ao-tools/lib/cc.h @@ -103,7 +103,6 @@ struct cc_gpselt {  struct cc_gpssat {  	double		time;  	uint16_t	svid; -	uint8_t		state;  	uint8_t		c_n;  }; @@ -536,7 +536,7 @@ struct ao_log_record {  		} gps_altitude;  		struct {  			uint16_t	svid; -			uint8_t		state; +			uint8_t		unused;  			uint8_t		c_n;  		} gps_sat;  		struct { @@ -747,18 +747,8 @@ struct ao_gps_data {  	uint16_t		v_error;	/* m */  }; -#define SIRF_SAT_STATE_ACQUIRED			(1 << 0) -#define SIRF_SAT_STATE_CARRIER_PHASE_VALID	(1 << 1) -#define SIRF_SAT_BIT_SYNC_COMPLETE		(1 << 2) -#define SIRF_SAT_SUBFRAME_SYNC_COMPLETE		(1 << 3) -#define SIRF_SAT_CARRIER_PULLIN_COMPLETE	(1 << 4) -#define SIRF_SAT_CODE_LOCKED			(1 << 5) -#define SIRF_SAT_ACQUISITION_FAILED		(1 << 6) -#define SIRF_SAT_EPHEMERIS_AVAILABLE		(1 << 7) -  struct ao_gps_sat_data {  	uint8_t		svid; -	uint8_t		state;  	uint8_t		c_n_1;  }; diff --git a/src/ao_gps_print.c b/src/ao_gps_print.c index 95439ec7..b8b73cd2 100644 --- a/src/ao_gps_print.c +++ b/src/ao_gps_print.c @@ -112,17 +112,16 @@ ao_gps_tracking_print(__xdata struct ao_gps_tracking_data *gps_tracking_data) __  	sat = gps_tracking_data->sats;  	v = 0;  	for (c = 0; c < n; c++) { -		if (sat->svid && sat->state) +		if (sat->svid)  			v++;  		sat++;  	}  	printf("%d ", v);  	sat = gps_tracking_data->sats;  	for (c = 0; c < n; c++) { -		if (sat->svid && sat->state) -			printf (" %3d %02x %3d", +		if (sat->svid) +			printf (" %3d %3d",  				sat->svid, -				sat->state,  				sat->c_n_1);  		sat++;  	} diff --git a/src/ao_gps_sirf.c b/src/ao_gps_sirf.c index 58438760..eb00224c 100644 --- a/src/ao_gps_sirf.c +++ b/src/ao_gps_sirf.c @@ -108,7 +108,6 @@ static __xdata struct sirf_geodetic_nav_data	ao_sirf_data;  struct sirf_measured_sat_data {  	uint8_t		svid; -	uint16_t	state;  	uint8_t		c_n_1;  }; @@ -264,8 +263,7 @@ static const struct sirf_packet_parse measured_tracker_data_packet[] = {  static const struct sirf_packet_parse measured_sat_data_packet[] = {  	{ SIRF_U8, offsetof (struct sirf_measured_sat_data, svid) },		/* 0 SV id */ -	{ SIRF_DISCARD, 2 },							/* 1 azimuth, 2 elevation */ -	{ SIRF_U16, offsetof (struct sirf_measured_sat_data, state) },		/* 2 state */ +	{ SIRF_DISCARD, 4 },							/* 1 azimuth, 2 elevation, 3 state */  	{ SIRF_U8, offsetof (struct sirf_measured_sat_data, c_n_1) },		/* C/N0 1 */  	{ SIRF_DISCARD, 9 },							/* C/N0 2-10 */  	{ SIRF_END, 0 }, @@ -421,7 +419,6 @@ ao_gps(void) __reentrant  			ao_gps_tracking_data.channels = ao_sirf_tracker_data.channels;  			for (i = 0; i < 12; i++) {  				ao_gps_tracking_data.sats[i].svid = ao_sirf_tracker_data.sats[i].svid; -				ao_gps_tracking_data.sats[i].state = (uint8_t) ao_sirf_tracker_data.sats[i].state;  				ao_gps_tracking_data.sats[i].c_n_1 = ao_sirf_tracker_data.sats[i].c_n_1;  			}  			ao_mutex_put(&ao_gps_mutex); diff --git a/src/ao_gps_skytraq.c b/src/ao_gps_skytraq.c index b2eef04b..bf192f28 100644 --- a/src/ao_gps_skytraq.c +++ b/src/ao_gps_skytraq.c @@ -326,10 +326,8 @@ ao_gps(void) __reentrant  				ao_gps_skip_field();	/* elevation */  				ao_gps_lexchar();  				ao_gps_skip_field();	/* azimuth */ -				if (ao_gps_tracking_next.sats[i].c_n_1 = ao_gps_decimal(2))	/* C/N0 */ -					ao_gps_tracking_next.sats[i].state = 0xbf; -				else -					ao_gps_tracking_next.sats[i].state = 0; +				if (!(ao_gps_tracking_next.sats[i].c_n_1 = ao_gps_decimal(2)))	/* C/N0 */ +					ao_gps_tracking_next.sats[i].svid = 0;  				ao_gps_tracking_next.channels = i + 1;  			}  			if (ao_gps_char == '*') { diff --git a/src/ao_gps_test.c b/src/ao_gps_test.c index 3692f0e5..fddfedfd 100644 --- a/src/ao_gps_test.c +++ b/src/ao_gps_test.c @@ -59,7 +59,6 @@ struct ao_gps_data {  struct ao_gps_sat_data {  	uint8_t		svid; -	uint8_t		state;  	uint8_t		c_n_1;  }; @@ -435,9 +434,9 @@ ao_dump_state(void *wchan)  	printf("\n");  	printf ("\t");  	for (i = 0; i < 12; i++) -		printf (" %2d(%02x)", +		printf (" %2d(%02d)",  			ao_gps_tracking_data.sats[i].svid, -			ao_gps_tracking_data.sats[i].state); +			ao_gps_tracking_data.sats[i].c_n_1);  	printf ("\n");  }  | 
