summaryrefslogtreecommitdiff
path: root/Venus_Skeleton/dataTypes.h
blob: f19eaf5ac85dcb3f63de7b361d69d51c1197d3b6 (plain)
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
// ****************
// ** Data types **
// ****************

// Left and Right
typedef enum {
	L,
	R
} lr_t;

// Sensor data
typedef struct {
	bool IR_left_detected;
	bool IR_right_detected;
	bool sample_gripper_detected;
	bool sample_turret_detected[NUM_TURRET_DIRECTIONS];
	bool beacon_detected[NUM_TURRET_DIRECTIONS];
	long obstacle_turret_distances[NUM_TURRET_DIRECTIONS];
	int compass;
	int robot_x[NUM_TURRET_DIRECTIONS];
	int robot_y[NUM_TURRET_DIRECTIONS];
	int robot_deg[NUM_TURRET_DIRECTIONS];
	float robot_curr_x;
	float robot_curr_y;
	int robot_curr_deg;
} data_t;
enum {
	CHANGED_SENS_COMPASS = 1 << 0,
	CHANGED_SENS_OBSTACLETURRET = 1 << 1,
	CHANGED_SENS_IRLEFT = 1 << 2,
	CHANGED_SENS_IRRIGHT = 1 << 3,
	CHANGED_SENS_SAMPLETURRET = 1 << 4,
	CHANGED_SENS_SAMPLEGRIPPER = 1 << 5
};

// Raspberry Pi Data type declarations
typedef enum {
	PI_DATATYPE_COMPASS, 
	PI_DATATYPE_OBSTACLETURRET, 
	PI_DATATYPE_IRLEFT, 
	PI_DATATYPE_IRRIGHT, 
	PI_DATATYPE_SAMPLETURRET, 
	PI_DATATYPE_SAMPLEGRIPPER, 
	PI_DATATYPE_BEACONTURRET, 
	PI_DATATYPE_LAB, 
	PI_DATATYPE_MOVETO, 
	PI_DATATYPE_GRIPPER, 
	PI_DATATYPE_TURRET,
	PI_DATATYPE_ALL
} pi_datatype_t;

// Operation modes
typedef enum {
	OPMODE_WAIT,
	OPMODE_INITIALSEQUENCE,
	OPMODE_RANDOM,
	OPMODE_MAPPING,
	OPMODE_CHECKSAMPLE,
	OPMODE_GRABSAMPLE,
	OPMODE_GOTOLABLOCATION,
	OPMODE_WAITFORLAB,
	OPMODE_FINDMAGNET,
	OPMODE_LABSEQUENCE,
	OPMODE_ERROR
} opmode_t;