diff options
| author | Keith Packard <keithp@keithp.com> | 2012-06-21 09:45:42 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2012-06-21 09:45:42 -0700 | 
| commit | d2bd95edb6f77daeb1e8f043c4a239c248728e0c (patch) | |
| tree | 5a9e16cc40bc2b6b7ba2daa811299f4768f40d00 /src/core/ao.h | |
| parent | 419a801131c1034f1fa149a67850290431cbda72 (diff) | |
altos: Add full MM telemetry
Create two new telemetry packets to hold all of the MM data.
This patch also splits the telemetry structures out of ao.h
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/core/ao.h')
| -rw-r--r-- | src/core/ao.h | 177 | 
1 files changed, 1 insertions, 176 deletions
| diff --git a/src/core/ao.h b/src/core/ao.h index 3dae8b40..204c8530 100644 --- a/src/core/ao.h +++ b/src/core/ao.h @@ -325,182 +325,7 @@ ao_spi_slave_init(void);  void  ao_spi_slave(void); -/* - * ao_telemetry.c - */ -#define AO_MAX_CALLSIGN			8 -#define AO_MAX_VERSION			8 -#if LEGACY_MONITOR -#define AO_MAX_TELEMETRY		128 -#else -#define AO_MAX_TELEMETRY		32 -#endif - -struct ao_telemetry_generic { -	uint16_t	serial;		/* 0 */ -	uint16_t	tick;		/* 2 */ -	uint8_t		type;		/* 4 */ -	uint8_t		payload[27];	/* 5 */ -	/* 32 */ -}; - -#define AO_TELEMETRY_SENSOR_TELEMETRUM	0x01 -#define AO_TELEMETRY_SENSOR_TELEMINI	0x02 -#define AO_TELEMETRY_SENSOR_TELENANO	0x03 -#define AO_TELEMETRY_SENSOR_MEGAMETRUM	0x08 - -struct ao_telemetry_sensor { -	uint16_t	serial;		/*  0 */ -	uint16_t	tick;		/*  2 */ -	uint8_t		type;		/*  4 */ - -	uint8_t         state;          /*  5 flight state */ -	int16_t		accel;		/*  6 accelerometer (TM only) */ -	int16_t		pres;		/*  8 pressure sensor */ -	int16_t		temp;		/* 10 temperature sensor */ -	int16_t		v_batt;		/* 12 battery voltage */ -	int16_t		sense_d;	/* 14 drogue continuity sense (TM/Tm) */ -	int16_t		sense_m;	/* 16 main continuity sense (TM/Tm) */ - -	int16_t         acceleration;   /* 18 m/s² * 16 */ -	int16_t         speed;          /* 20 m/s * 16 */ -	int16_t         height;         /* 22 m */ - -	int16_t		ground_pres;	/* 24 average pres on pad */ -	int16_t		ground_accel;	/* 26 average accel on pad */ -	int16_t		accel_plus_g;	/* 28 accel calibration at +1g */ -	int16_t		accel_minus_g;	/* 30 accel calibration at -1g */ -	/* 32 */ -}; - -#define AO_TELEMETRY_CONFIGURATION	0x04 - -struct ao_telemetry_configuration { -	uint16_t	serial;				/*  0 */ -	uint16_t	tick;				/*  2 */ -	uint8_t		type;				/*  4 */ - -	uint8_t         device;         		/*  5 device type */ -	uint16_t        flight;				/*  6 flight number */ -	uint8_t		config_major;			/*  8 Config major version */ -	uint8_t		config_minor;			/*  9 Config minor version */ -	uint16_t	apogee_delay;			/* 10 Apogee deploy delay in seconds */ -	uint16_t	main_deploy;			/* 12 Main deploy alt in meters */ -	uint16_t	flight_log_max;			/* 14 Maximum flight log size in kB */ -	char		callsign[AO_MAX_CALLSIGN];	/* 16 Radio operator identity */ -	char		version[AO_MAX_VERSION];	/* 24 Software version */ -	/* 32 */ -}; - -#define AO_TELEMETRY_LOCATION		0x05 - -#define AO_GPS_MODE_NOT_VALID		'N' -#define AO_GPS_MODE_AUTONOMOUS		'A' -#define AO_GPS_MODE_DIFFERENTIAL	'D' -#define AO_GPS_MODE_ESTIMATED		'E' -#define AO_GPS_MODE_MANUAL		'M' -#define AO_GPS_MODE_SIMULATED		'S' - -struct ao_telemetry_location { -	uint16_t	serial;		/*  0 */ -	uint16_t	tick;		/*  2 */ -	uint8_t		type;		/*  4 */ - -	uint8_t         flags;		/*  5 Number of sats and other flags */ -	int16_t         altitude;	/*  6 GPS reported altitude (m) */ -	int32_t         latitude;	/*  8 latitude (degrees * 10⁷) */ -	int32_t         longitude;	/* 12 longitude (degrees * 10⁷) */ -	uint8_t         year;		/* 16 (- 2000) */ -	uint8_t         month;		/* 17 (1-12) */ -	uint8_t         day;		/* 18 (1-31) */ -	uint8_t         hour;		/* 19 (0-23) */ -	uint8_t         minute;		/* 20 (0-59) */ -	uint8_t         second;		/* 21 (0-59) */ -	uint8_t         pdop;		/* 22 (m * 5) */ -	uint8_t         hdop;		/* 23 (m * 5) */ -	uint8_t         vdop;		/* 24 (m * 5) */ -	uint8_t         mode;		/* 25 */ -	uint16_t	ground_speed;	/* 26 cm/s */ -	int16_t		climb_rate;	/* 28 cm/s */ -	uint8_t		course;		/* 30 degrees / 2 */ -	uint8_t		unused[1];	/* 31 */ -	/* 32 */ -}; - -#define AO_TELEMETRY_SATELLITE		0x06 - -struct ao_telemetry_satellite_info { -	uint8_t		svid; -	uint8_t		c_n_1; -}; - -struct ao_telemetry_satellite { -	uint16_t				serial;		/*  0 */ -	uint16_t				tick;		/*  2 */ -	uint8_t					type;		/*  4 */ -	uint8_t					channels;	/*  5 number of reported sats */ - -	struct ao_telemetry_satellite_info	sats[12];	/* 6 */ -	uint8_t					unused[2];	/* 30 */ -	/* 32 */ -}; - -#define AO_TELEMETRY_COMPANION		0x07 - -#define AO_COMPANION_MAX_CHANNELS	12 - -struct ao_telemetry_companion { -	uint16_t				serial;		/*  0 */ -	uint16_t				tick;		/*  2 */ -	uint8_t					type;		/*  4 */ -	uint8_t					board_id;	/*  5 */ - -	uint8_t					update_period;	/*  6 */ -	uint8_t					channels;	/*  7 */ -	uint16_t				companion_data[AO_COMPANION_MAX_CHANNELS];	/*  8 */ -	/* 32 */ -}; -	 -/* #define AO_SEND_ALL_BARO */ - -#define AO_TELEMETRY_BARO		0x80 - -/* - * This packet allows the full sampling rate baro - * data to be captured over the RF link so that the - * flight software can be tested using 'real' data. - * - * Along with this telemetry packet, the flight - * code is modified to send full-rate telemetry all the time - * and never send an RDF tone; this ensure that the full radio - * link is available. - */ -struct ao_telemetry_baro { -	uint16_t				serial;		/*  0 */ -	uint16_t				tick;		/*  2 */ -	uint8_t					type;		/*  4 */ -	uint8_t					samples;	/*  5 number samples */ - -	int16_t					baro[12];	/* 6 samples */ -	/* 32 */ -}; - -union ao_telemetry_all { -	struct ao_telemetry_generic		generic; -	struct ao_telemetry_sensor		sensor; -	struct ao_telemetry_configuration	configuration; -	struct ao_telemetry_location		location; -	struct ao_telemetry_satellite		satellite; -	struct ao_telemetry_companion		companion; -	struct ao_telemetry_baro		baro; -}; - -struct ao_telemetry_all_recv { -	union ao_telemetry_all		telemetry; -	int8_t				rssi; -	uint8_t				status; -}; - +#include <ao_telemetry.h>  /*   * ao_gps.c   */ | 
