Skip to content

Commit 8fbeadf

Browse files
author
Ezra Boley
committed
Added braking vent states and a safe brake move
1 parent 24968b3 commit 8fbeadf

File tree

5 files changed

+72
-29
lines changed

5 files changed

+72
-29
lines changed

embedded/app/src/transitions.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,13 @@ int toPropulsion() {
2020

2121
int toBraking() {
2222
if (stopMotor() != 0) return 1;
23-
if (brakePrimary() != 0) return 1;
24-
23+
brake();
2524
return 0;
2625
}
2726

2827
int toCrawl() {
29-
brakePrimaryRelease();
30-
brakeSecondaryRelease(); /* Usually doesnt do anything */
28+
brakePrimaryUnactuate();
29+
brakeSecondaryUnactuate(); /* Usually doesnt do anything */
3130
if (startMotor() != 0) return 1;
3231
setTorque(CRAWL_TORQUE);
3332
return 0;

embedded/examples/brakingTest.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@ int main(int argc, char *argv[]) {
2929
if (strcmp(argv[1], "-p") == 0) {
3030
if (argc > 2) {
3131
if (strcmp(argv[2], "on") == 0)
32-
brakePrimary();
32+
brakePrimaryActuate();
3333
else if (strcmp(argv[2], "off") == 0)
34-
brakePrimaryRelease();
34+
brakePrimaryUnactuate();
3535

3636
}
3737
}
3838
else if (strcmp(argv[1], "-s") == 0) {
3939
if (argc > 2) {
4040
if (strcmp(argv[2], "on") == 0)
41-
brakeSecondary();
41+
brakeSecondaryActuate();
4242
else if (strcmp(argv[2], "off") == 0)
43-
brakeSecondaryRelease();
43+
brakeSecondaryUnactuate();
4444
}
4545
}
4646
}

embedded/peripherals/include/braking.h

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,17 @@ void showPressures(void);
3131

3232
int joinPressureMonitor(void);
3333

34-
int brakePrimary(void);
34+
int brake(void);
3535

36-
int brakeSecondary(void);
36+
int brakePrimaryUnactuate(void);
3737

38-
int brakePrimaryRelease(void);
38+
int brakeSecondaryUnactuate(void);
3939

40-
int brakeSecondaryRelease(void);
40+
int brakePrimaryActuate(void);
41+
42+
int brakeSecondaryActuate(void);
43+
44+
int brakePrimaryVent(void);
45+
46+
int brakeSecondaryVent(void);
4147

embedded/peripherals/src/braking.c

Lines changed: 50 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,15 @@ static double avgDouble(double *arr, int size) {
8484
return sum / (double) size;
8585
}
8686

87-
int brakePrimary() {
87+
int brake() {
88+
brakePrimaryActuate();
89+
usleep(500000);
90+
if (!limSwitchGet(PRIM_LIM_SWITCH))
91+
brakeSecondaryActuate();
92+
return 0;
93+
}
94+
95+
int brakePrimaryUnactuate() {
8896
if (solenoidSet(SOLENOID_0, 1) != 0) {
8997
fprintf(stderr, "Failed to set SOLENOID_0\n");
9098
return 1;
@@ -93,9 +101,11 @@ int brakePrimary() {
93101
fprintf(stderr, "Failed to set SOLENOID_1\n");
94102
return 1;
95103
}
104+
105+
return 0;
96106
}
97107

98-
int brakeSecondary() {
108+
int brakeSecondaryUnactuate() {
99109
if (solenoidSet(SOLENOID_4, 0) != 0) {
100110
fprintf(stderr, "Failed to set SOLENOID_4\n");
101111
return 1;
@@ -108,10 +118,11 @@ int brakeSecondary() {
108118
fprintf(stderr, "Failed to set SOLENOID_6\n");
109119
return 1;
110120
}
111-
return;
121+
122+
return 0;
112123
}
113124

114-
int brakePrimaryRelease() {
125+
int brakePrimaryActuate() {
115126
if (solenoidSet(SOLENOID_0, 0) != 0) {
116127
fprintf(stderr, "Failed to set SOLENOID_0\n");
117128
return 1;
@@ -120,9 +131,11 @@ int brakePrimaryRelease() {
120131
fprintf(stderr, "Failed to set SOLENOID_1\n");
121132
return 1;
122133
}
134+
135+
return 0;
123136
}
124137

125-
int brakeSecondaryRelease() {
138+
int brakeSecondaryActuate() {
126139
if (solenoidSet(SOLENOID_4, 1) != 0) {
127140
fprintf(stderr, "Failed to set SOLENOID_2\n");
128141
return 1;
@@ -135,16 +148,40 @@ int brakeSecondaryRelease() {
135148
fprintf(stderr, "Failed to set SOLENOID_4\n");
136149
return 1;
137150
}
138-
return;
151+
152+
return 0;
153+
}
154+
155+
int brakePrimaryVent() {
156+
if (solenoidSet(SOLENOID_0, 0) != 0) {
157+
fprintf(stderr, "Failed to set SOLENOID_0\n");
158+
return 1;
159+
}
160+
if (solenoidSet(SOLENOID_2, 0) != 0) {
161+
fprintf(stderr, "Failed to set SOLENOID_1\n");
162+
return 1;
163+
}
164+
165+
return 0;
139166
}
167+
168+
int brakeSecondaryVent() {
169+
if (solenoidSet(SOLENOID_4, 0) != 0) {
170+
fprintf(stderr, "Failed to set SOLENOID_2\n");
171+
return 1;
172+
}
173+
if (solenoidSet(SOLENOID_5, 0) != 0) {
174+
fprintf(stderr, "Failed to set SOLENOID_3\n");
175+
return 1;
176+
}
177+
if (solenoidSet(SOLENOID_6, 0) != 0) {
178+
fprintf(stderr, "Failed to set SOLENOID_4\n");
179+
return 1;
180+
}
140181

141-
/*VENT*/
142-
/*
143-
*void brakePrimaryVent() {}
144-
*
145-
*void brakeSecondaryVent() {}
146-
*
147-
*/
182+
return 0;
183+
}
184+
148185

149186
//Voltage
150187
double readPrimaryTank() {

middleware/src/HVTCPSocket.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,23 +135,24 @@ void *TCPLoop(void *arg)
135135

136136
if (!strncmp(buffer, "primBrakeOff", MAX_COMMAND_SIZE))
137137
{
138-
brakePrimaryRelease();
138+
brakePrimaryUnactuate();
139139
}
140140
if (!strncmp(buffer, "primBrakeOn", MAX_COMMAND_SIZE))
141141
{
142-
brakePrimary();
142+
brakePrimaryActuate();
143143
}
144144
if (!strncmp(buffer, "secBrakeOff", MAX_COMMAND_SIZE))
145145
{
146-
brakeSecondaryRelease();
146+
brakeSecondaryUnactuate();
147147
}
148148
if (!strncmp(buffer, "secBrakeOn", MAX_COMMAND_SIZE))
149149
{
150-
brakeSecondary();
150+
brakeSecondaryActuate();
151151
}
152152

153153
if (!strncmp(buffer, "hvEnable", MAX_COMMAND_SIZE))
154154
{
155+
/* Lets add a safety check here */
155156
setMCUHVEnabled(true);
156157
}
157158

0 commit comments

Comments
 (0)