-
Notifications
You must be signed in to change notification settings - Fork 1
/
TelemetryMessage.proto
182 lines (147 loc) · 5.08 KB
/
TelemetryMessage.proto
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
174
175
176
177
178
179
180
181
182
/**
* FILE: Telemetry.proto
* BRIEF: Telemetry data from various boards (Data Management Board, Sensor Observation Board, Plumbing Bay Board, etc.)
* AUTHOR: Christopher Chan (cjchanx) and Shanna Hollingworth (shanna1408)
*/
syntax = "proto3";
package Proto;
import "CoreProto.proto";
/* This acts as the telemetry wrapper message for all SOAR Telemetry Messages.
* Telemetry messages are considered best-effort NON-CRITICAL messages, and are (currently) not guaranteed to be received (no ACK or Sequence Number)
*/
message TelemetryMessage {
// Message Path
Node source = 1; // This is the source of the message (the node that sent the message)
Node target = 2; // This is the destination of the message, if this is a broadcast message, this should be set to NODE_ANY
// Message Data
oneof message {
Gps gps = 3;
Baro baro = 4;
Imu imu = 5;
Battery battery = 6;
Flash flashState = 7;
DmbPressure dmbPressure = 8;
PbbPressure pbbPressure = 9;
PbbTemperature pbbTemperature = 10;
CombustionControlStatus combustionControlStatus = 11;
RcuPressure rcuPressure = 12;
RcuTemperature rcuTemperature = 13;
NosLoadCell nosLoadCell = 14;
RelayStatus relayStatus = 15;
PadBoxStatus padBoxStatus = 16;
LaunchRailLoadCell launchRailLoadCell = 17;
SobTemperature sobTemperature = 18;
// Log-type messages
PressureLog pressureLog = 19;
}
}
/* DMB -> RCU Messages ---------------------------------------------------------------- */
message Gps{
CoordinateType latitude = 1; // latitude of rocket
CoordinateType longitude = 2; // longitude of rocket
AltitudeType antenna_altitude = 3; // altitude of antenna
AltitudeType geo_id_altitude = 4; // altitude of geoid
AltitudeType total_altitude = 5; // total altitude of rocket
uint32 time = 6; // time of message
}
message CoordinateType {
int32 degrees = 1;
int32 minutes = 2;
}
message AltitudeType {
int32 altitude = 1;
int32 unit = 2;
}
message Baro{
int32 baro_pressure = 1; // barometer pressure
int32 baro_temperature = 2; // barometer temperature
}
message Imu{
int32 accel_x = 1; // x direction of acceleration
int32 accel_y = 2; // y direction of acceleration
int32 accel_z = 3; // z direction of acceleration
int32 gyro_x = 4; // x direction of gyroscope
int32 gyro_y = 5; // y direction of gyroscope
int32 gyro_z = 6; // z direction of gyroscope
int32 mag_x = 7; // x direction gauss
int32 mag_y = 8; // y direction gauss
int32 mag_z = 9; // z direction gauss
}
message Battery{
enum PowerSource {
INVALID = 0;
GROUND = 1;
ROCKET = 2;
};
PowerSource power_source = 1; // power source of battery
int32 voltage = 2; // voltage of battery
}
message Flash {
uint32 sector_address = 1;
uint32 logging_rate = 2;
}
message DmbPressure{
int32 upper_pv_pressure = 1; // pressure vessel pressure
}
/* PBB -> DMB Messages ---------------------------------------------------------------- */
message PbbPressure {
int32 ib_pressure = 1; //injector bulk pressure
int32 lower_pv_pressure = 2; //pressure vessel pressure
}
message PbbTemperature {
int32 ib_temperature = 1; //injector bulk temperature
int32 pv_temperature = 2; //pressure vessel temperature
}
message CombustionControlStatus {
bool vent_open = 1;
bool drain_open = 2;
bool mev_open = 3;
}
/* RCU Messages ---------------------------------------------------------------- */
message RcuPressure {
int32 pt1_pressure = 1; //pressure transducer
int32 pt2_pressure = 2;
int32 pt3_pressure = 3;
int32 pt4_pressure = 4;
}
message RcuTemperature {
int32 tc1_temperature = 1; //thermocouple
int32 tc2_temperature = 2;
}
message NosLoadCell {
int32 nos1_mass = 1; //nitrous mass
int32 nos2_mass = 2;
}
message RelayStatus {
bool ac1_open = 1; // air conditioner states
bool ac2_open = 2;
bool pbv1_open = 3; //pneumatic ball valve states
bool pbv2_open = 4;
bool pbv3_open = 5;
bool pbv4_open = 6;
bool sol5_open = 10; // solenoid states
bool sol6_open = 11;
bool sol7_open = 12;
bool sol8a_open = 13;
bool sol8b_open = 14;
}
message PadBoxStatus {
bool continuity_1 = 1; // continuity state 1
bool continuity_2 = 2; // continuity state 2
bool box1_on = 3; // box 1 gpio state
bool box2_on = 4; // box 2 gpio state
}
/* SOB Messages ---------------------------------------------------------------- */
message LaunchRailLoadCell {
int32 rocket_mass = 1;
}
message SobTemperature {
int32 tc1_temperature = 1;
int32 tc2_temperature = 2;
}
/* Log Messages ---------------------------------------------------------------- */
message PressureLog {
uint32 time = 1;
int32 pv_pressure = 2;
int32 ib_pressure = 3;
}