-
Notifications
You must be signed in to change notification settings - Fork 0
/
science.proto
74 lines (61 loc) · 1.47 KB
/
science.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
// Version 1.0
syntax = "proto3";
import "version.proto";
/// The state of a servo. If undefined, don't open or close.
enum ServoState {
SERVO_STATE_UNDEFINED = 0;
SERVO_OPEN = 1;
SERVO_CLOSE = 2;
}
/// The state of a pump. If undefined: don't do anything. If fill: turn on, wait, then turn off.
enum PumpState {
PUMP_STATE_UNDEFINED = 0;
PUMP_ON = 1;
PUMP_OFF = 2;
FILL = 3;
}
/// The state of the science subsystem. If not COLLECT_DATA, don't stream data at all.
enum ScienceState {
SCIENCE_STATE_UNDEFINED = 0;
COLLECT_DATA = 1;
STOP_COLLECTING = 2;
}
/// A command for the carousel and funnel to follow.
enum CarouselCommand {
CAROUSEL_COMMAND_UNDEFINED = 0;
NEXT_TUBE = 1;
PREV_TUBE = 2;
NEXT_SECTION = 3;
PREV_SECTION = 4;
FILL_TUBE = 5;
FILL_SECTION = 6;
}
/// A command to the science subsystem.
message ScienceCommand {
// Individual control over each motor. Indicates steps to move
float carousel_motor = 1;
float scoop_motor = 2;
float subsurface_motor = 3;
// Control over other hardware
PumpState pumps = 4;
ServoState funnel = 5;
ServoState scoop = 6;
CarouselCommand carousel = 7;
// High level commands
bool calibrate = 8;
bool stop = 9;
int32 sample = 10;
ScienceState state = 11;
Version version = 12;
}
/// Data coming from the science subsystem.
message ScienceData {
// High-level data
int32 sample = 1;
ScienceState state = 2;
// Sensor data
float co2 = 3;
float humidity = 4;
float temperature = 5;
Version version = 6;
}