44 * Created on: Feb 16, 2016
55 * Author: lazar
66 */
7- #define RAMPARTS 0
8- #define LOWBAR 1
9- #define ROCKWALL 2
10- #define DEBRIS 3
11- #define MOAT 4
12- #define DRAW 5
13- #define CHEVAL 6
14- #define SALLY 7
15- #define PORTI 8
16-
177#include < Autonomous/CommandListMaker.h>
188#include " WPILib.h"
199
20- namespace AutoConstants {
21- const std::string pos1 = " Position One" ;
22- const std::string pos2 = " Position Two" ;
23- const std::string pos3 = " Position Three" ;
24- const std::string pos4 = " Position Four" ;
25- const std::string pos5 = " Position Five" ;
26-
27- const std::string ram = " Ramparts" ;
28- const std::string low = " Low Bar" ;
29- const std::string rock = " Rock Wall" ;
30- const std::string port = " Portculis" ;
31- const std::string chev = " Cheval de Frise" ;
32- const std::string sall = " Sally Port" ;
33- const std::string deb = " Rough Terrain" ;
34- const std::string moat = " Moat" ;
35- const std::string draw = " Drawbridge" ;
36-
37-
38- }
39-
4010CommandListMaker::CommandListMaker (IProfile *p) {
4111 profile = p;
4212 storage = new std::vector<stepBase*>();
@@ -47,33 +17,29 @@ CommandListMaker::CommandListMaker(IProfile *p) {
4717CommandListMaker::~CommandListMaker ()
4818{
4919 delete storage;
50- // TODO Auto-generated destructor stub
5120}
5221
5322void CommandListMaker::RobotInit ()
5423{
55-
56-
5724 autoPosition = new SendableChooser ();
58- autoPosition->AddObject (AutoConstants::pos1, (void *)1 );
59- autoPosition->AddObject (AutoConstants::pos2, (void *)2 );
60- autoPosition->AddObject (AutoConstants::pos3, (void *)3 );
61- autoPosition->AddObject (AutoConstants::pos4, (void *)4 );
62- autoPosition->AddObject (AutoConstants::pos5, (void *)5 );
25+ autoPosition->AddDefault (low, (void *)&low);
26+ autoPosition->AddObject (ram, (void *)&ram);
27+ autoPosition->AddObject (rock, (void *)&rock);
28+ autoPosition->AddObject (port, (void *)&port);
29+ autoPosition->AddObject (chev, (void *)&chev);
30+ autoPosition->AddObject (sall, (void *)&sall);
31+ autoPosition->AddObject (deb, (void *)&deb);
32+ autoPosition->AddObject (moat, (void *)&moat);
33+ autoPosition->AddObject (draw, (void *)&draw);
34+ SmartDashboard::PutData (" Position" , autoPosition);
6335
6436 autoDefence = new SendableChooser ();
65- autoDefence->AddObject (AutoConstants::rock,(void *)ROCKWALL);
66- autoDefence->AddObject (AutoConstants::low, (void *)LOWBAR);
67- autoDefence->AddObject (AutoConstants::ram, (void *)RAMPARTS);
68- autoDefence->AddObject (AutoConstants::port, (void *)PORTI);
69- autoDefence->AddObject (AutoConstants::chev, (void *)CHEVAL);
70- autoDefence->AddObject (AutoConstants::sall, (void *)SALLY);
71- autoDefence->AddObject (AutoConstants::deb, (void *)DEBRIS);
72- autoDefence->AddObject (AutoConstants::moat, (void *)MOAT);
73- autoDefence->AddObject (AutoConstants::draw, (void *)DRAW);
74-
75- SmartDashboard::PutData (" Auto Defence" , autoDefence);
76- SmartDashboard::PutData (" Auto Position" , autoPosition);
37+ autoDefence->AddDefault (pos1, (void *)&pos1);
38+ autoDefence->AddObject (pos2, (void *)&pos2);
39+ autoDefence->AddObject (pos3, (void *)&pos3);
40+ autoDefence->AddObject (pos4, (void *)&pos4);
41+ autoDefence->AddObject (pos5, (void *)&pos5);
42+ SmartDashboard::PutData (" Defence" , autoDefence);
7743}
7844
7945void CommandListMaker::makeBasic ()
@@ -112,57 +78,71 @@ void CommandListMaker::makeBasic()
11278
11379
11480void CommandListMaker::makeDefenceBreaker () {
115- int def = (int )autoDefence->GetSelected ();
116- int pos = (int )autoPosition->GetSelected ();
81+ void * temp = autoPosition->GetSelected ();
82+ std::string* dt = static_cast <std::string*>(temp);
83+ std::string defence = *dt;
84+
85+ temp = autoDefence->GetSelected ();
86+ dt = static_cast <std::string*>(temp);
87+ std::string position = *dt;
88+
89+ delete dt;
90+ delete temp;
11791
11892 driveStep* drive = new driveStep ();
119- switch (def) {
120- case DEBRIS:
93+
94+ if (defence.compare (deb) == 0 ) // DEBRIS
95+ {
12196 drive->stepNum = 0 ;
12297 drive->command = stepBase::driveStraight;
12398 drive->distance = 2.0 ;
12499 drive->speed = .75 ;
125100 storage->push_back (drive);
126- break ; // TODO
127- case RAMPARTS:
101+ }
102+ else if (defence.compare (ram)) // RAMPARTS
103+ {
128104 drive->stepNum = 0 ;
129105 drive->command = stepBase::driveStraight;
130106 drive->distance = 2.0 ;
131107 drive->speed = .75 ;
132108 storage->push_back (drive);
133- break ; // TODO
134- case LOWBAR:
109+ }
110+ else if (defence.compare (rock)) // ROCK WALL
111+ {
135112 drive->stepNum = 0 ;
136113 drive->command = stepBase::driveStraight;
137114 drive->distance = 2.0 ;
138115 drive->speed = .75 ;
139116 storage->push_back (drive);
140- break ; // TODO
141- case MOAT:
117+ }
118+ else if (defence.compare (low)) // LOW BAR
119+ {
142120 drive->stepNum = 0 ;
143121 drive->command = stepBase::driveStraight;
144122 drive->distance = 2.0 ;
145123 drive->speed = .75 ;
146124 storage->push_back (drive);
147- break ; // TODO
148- case ROCKWALL:
125+ }
126+ else if (defence.compare (moat) == 0 ) // DRAWBRIDGE
127+ {
149128 drive->stepNum = 0 ;
150129 drive->command = stepBase::driveStraight;
151130 drive->distance = 2.0 ;
152131 drive->speed = .75 ;
153132 storage->push_back (drive);
154- break ; // TODO
155- case PORTI:
133+ }
134+ else // THE OTHERS
135+ {
156136 drive->stepNum = 0 ;
157137 drive->command = stepBase::driveStraight;
158138 drive->distance = 2.0 ;
159139 drive->speed = .75 ;
160140 storage->push_back (drive);
161- break ; // TODO
162141 }
163142
164- turnStep *turn = new turnStep ();
165143
144+ turnStep *turn = new turnStep ();
145+ int pos = position[position.length ()-1 ] - ' 0' ;
166146 switch (pos) {
167147 case 1 :
168148 turn->stepNum = 1 ;
0 commit comments