1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
|
/*
* Copyright © 2011 Keith Packard <keithp@keithp.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
#ifndef _AO_TELEM_H_
#define _AO_TELEM_H_
#define AO_TELEMETRY_VERSION 4
/*
* Telemetry version 4 and higher format:
*
* General header fields
*
* Name Value
*
* VERSION Telemetry version number (4 or more). Must be first.
* c Callsign (string, no spaces allowed)
* n Flight unit serial number (integer)
* f Flight number (integer)
* r Packet RSSI value (integer)
* s Flight computer state (string, no spaces allowed)
* t Flight computer clock (integer in centiseconds)
*/
#define AO_TELEM_VERSION "VERSION"
#define AO_TELEM_CALL "c"
#define AO_TELEM_SERIAL "n"
#define AO_TELEM_FLIGHT "f"
#define AO_TELEM_RSSI "r"
#define AO_TELEM_STATE "s"
#define AO_TELEM_TICK "t"
/*
* Raw sensor values
*
* Name Value
* r_a Accelerometer reading (integer)
* r_b Barometer reading (integer)
* r_t Thermometer reading (integer)
* r_v Battery reading (integer)
* r_d Drogue continuity (integer)
* r_m Main continuity (integer)
*/
#define AO_TELEM_RAW_ACCEL "r_a"
#define AO_TELEM_RAW_BARO "r_b"
#define AO_TELEM_RAW_THERMO "r_t"
#define AO_TELEM_RAW_BATT "r_v"
#define AO_TELEM_RAW_DROGUE "r_d"
#define AO_TELEM_RAW_MAIN "r_m"
/*
* Sensor calibration values
*
* Name Value
* c_a Ground accelerometer reading (integer)
* c_b Ground barometer reading (integer)
* c_p Accelerometer reading for +1g
* c_m Accelerometer reading for -1g
*/
#define AO_TELEM_CAL_ACCEL_GROUND "c_a"
#define AO_TELEM_CAL_BARO_GROUND "c_b"
#define AO_TELEM_CAL_ACCEL_PLUS "c_p"
#define AO_TELEM_CAL_ACCEL_MINUS "c_m"
/*
* Kalman state values
*
* Name Value
* k_h Height above pad (integer, meters)
* k_s Vertical speeed (integer, m/s * 16)
* k_a Vertical acceleration (integer, m/s² * 16)
*/
#define AO_TELEM_KALMAN_HEIGHT "k_h"
#define AO_TELEM_KALMAN_SPEED "k_s"
#define AO_TELEM_KALMAN_ACCEL "k_a"
/*
* Ad-hoc flight values
*
* Name Value
* a_a Acceleration (integer, sensor units)
* a_s Speed (integer, integrated acceleration value)
* a_b Barometer reading (integer, sensor units)
*/
#define AO_TELEM_ADHOC_ACCEL "a_a"
#define AO_TELEM_ADHOC_SPEED "a_s"
#define AO_TELEM_ADHOC_BARO "a_b"
/*
* GPS values
*
* Name Value
* g GPS state (string):
* l locked
* u unlocked
* e error (missing or broken)
* g_n Number of sats used in solution
* g_ns Latitude (degrees * 10e7)
* g_ew Longitude (degrees * 10e7)
* g_a Altitude (integer meters)
* g_Y GPS year (integer)
* g_M GPS month (integer - 1-12)
* g_D GPS day (integer - 1-31)
* g_h GPS hour (integer - 0-23)
* g_m GPS minute (integer - 0-59)
* g_s GPS second (integer - 0-59)
* g_v GPS vertical speed (integer, cm/sec)
* g_g GPS horizontal speed (integer, cm/sec)
* g_c GPS course (integer, 0-359)
* g_hd GPS hdop (integer * 10)
* g_vd GPS vdop (integer * 10)
* g_he GPS h error (integer)
* g_ve GPS v error (integer)
*/
#define AO_TELEM_GPS_STATE "g"
#define AO_TELEM_GPS_STATE_LOCKED 'l'
#define AO_TELEM_GPS_STATE_UNLOCKED 'u'
#define AO_TELEM_GPS_STATE_ERROR 'e'
#define AO_TELEM_GPS_NUM_SAT "g_n"
#define AO_TELEM_GPS_LATITUDE "g_ns"
#define AO_TELEM_GPS_LONGITUDE "g_ew"
#define AO_TELEM_GPS_ALTITUDE "g_a"
#define AO_TELEM_GPS_YEAR "g_Y"
#define AO_TELEM_GPS_MONTH "g_M"
#define AO_TELEM_GPS_DAY "g_D"
#define AO_TELEM_GPS_HOUR "g_h"
#define AO_TELEM_GPS_MINUTE "g_m"
#define AO_TELEM_GPS_SECOND "g_s"
#define AO_TELEM_GPS_VERTICAL_SPEED "g_v"
#define AO_TELEM_GPS_HORIZONTAL_SPEED "g_g"
#define AO_TELEM_GPS_COURSE "g_c"
#define AO_TELEM_GPS_HDOP "g_hd"
#define AO_TELEM_GPS_VDOP "g_vd"
#define AO_TELEM_GPS_HERROR "g_he"
#define AO_TELEM_GPS_VERROR "g_ve"
/*
* GPS satellite values
*
* Name Value
* s_n Number of satellites reported (integer)
* s_v0 Space vehicle ID (integer) for report 0
* s_c0 C/N0 number (integer) for report 0
* s_v1 Space vehicle ID (integer) for report 1
* s_c1 C/N0 number (integer) for report 1
* ...
*/
#define AO_TELEM_SAT_NUM "s_n"
#define AO_TELEM_SAT_SVID "s_v"
#define AO_TELEM_SAT_C_N_0 "s_c"
#endif /* _AO_TELEM_H_ */
|