summaryrefslogtreecommitdiffstats
path: root/source/Concept/Framework/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/Concept/Framework/main.c')
-rwxr-xr-xsource/Concept/Framework/main.c165
1 files changed, 94 insertions, 71 deletions
diff --git a/source/Concept/Framework/main.c b/source/Concept/Framework/main.c
index ba0e280..27edce3 100755
--- a/source/Concept/Framework/main.c
+++ b/source/Concept/Framework/main.c
@@ -130,6 +130,14 @@ int main()
newCommandHandler = NULL;
}
+ //Init Obstacle Tracker
+ for(uint8 i = IO_OBSTACLE_TRACKER_START; i < IO_OBSTACLE_TRACKER_END; i++)
+ {
+ Obstacle_Tracker* newObstacleTracker = new Obstacle_Tracker(i);
+ localRobot->AddModule(newObstacleTracker);
+ newObstacleTracker = NULL;
+ }
+
//Init Position Tracker
for(uint8 i = IO_POSITION_TRACKER_START; i < IO_POSITION_TRACKER_END; i++)
{
@@ -179,33 +187,62 @@ int main()
Command_Handler* ourCommandHandler = localRobot->GetModule<Command_Handler>(IO_COMMAND_HANDLER_MAIN);
uint32 i = 1;
Navigator* ourNavigator = localRobot->GetModule<Navigator>(IO_NAVIGATOR_MAIN);
- Position_Tracker* ourPosition_Tracker = localRobot->GetModule<Position_Tracker>(IO_POSITION_TRACKER_MAIN);
+ Position_Tracker* ourPositionTracker = localRobot->GetModule<Position_Tracker>(IO_POSITION_TRACKER_MAIN);
Ball_Tracker* ourBallTracker = localRobot->GetModule<Ball_Tracker>(IO_BALL_TRACKER_MAIN);
Dribbler* ourDribbler = localRobot->GetModule<Dribbler>(IO_DRIBBLER_MAIN);
- ourDribbler->SetSpeed(1);
- ourDribbler->SetEnabled(true);
+ //ourDribbler->SetSpeed(1);
+ //ourDribbler->SetEnabled(true);
Aktuator* ourAktuator = localRobot->GetModule<Aktuator>(IO_AKTUATOR_MAIN);
Logic* ourLogic = localRobot->GetModule<Logic>(IO_LOGIC_MAIN);
+ Wireless* ourWireless = localRobot->GetModule<Wireless>(IO_WIRELESS_MAIN);
- float rotation = 0;
- float speed = 200;
+ //(localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_BACK))->SetSpeed(200);
- //Mouse_Sensor* mouse_left = localRobot->GetModule<Mouse_Sensor>(IO_SENSOR_MOUSE_LEFT);
- //Mouse_Sensor* mouse_right = localRobot->GetModule<Mouse_Sensor>(IO_SENSOR_MOUSE_RIGHT);
+ //(localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_LEFT))->SetSpeed(200);
+ //(localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_LEFT))->SetEnabled(true);
- ourDisplay->Clear();
+ //sleep(2);
+
+ //(localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_RIGHT))->SetSpeed(200);
+ //(localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_RIGHT))->SetEnabled(true);
+
+ //sleep(2);
+
+
+
+ //(localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_LEFT))->SetSpeed(200);
+ //(localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_LEFT))->SetEnabled(true);
+
+ /*(localRobot->GetModule<Dribbler>(IO_DRIBBLER_MAIN))->SetSpeed(200);
+ (localRobot->GetModule<Dribbler>(IO_DRIBBLER_MAIN))->SetEnabled(true);*/
+
+ /*(localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_RIGHT))->SetSpeed(80);
+ (localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_RIGHT))->SetEnabled(true);*/
+
+ (localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_BACK))->SetSpeed(255);
+ (localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_BACK))->SetEnabled(true);
+
+ (localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_LEFT))->SetSpeed(255);
+ (localRobot->GetModule<Engine>(IO_ENGINE_DRIVE_LEFT))->SetEnabled(true);
+
+ sleep(2);
//Run
while(true)
{
- ourDisplay->Print(i++,1,1);
-
- //msleep(50);
-
- if(ourCommandHandler->displayDistanceSensors && !(i % 20))
+ i++;
+
+ /*if(!(i % 20))
{
ourDisplay->Clear();
+ msleep(10);
+ ourCommandHandler->PrintCommand();
+ }
+
+ localRobot->Update();
+ if(ourCommandHandler->displayDistanceSensors && !(i % 20))
+ {
distanceSensor = localRobot->GetModule<Distance_Sensor>(IO_SENSOR_DISTANCE_0_DEG);
value = distanceSensor->GetDistance();
ourDisplay->Print(value, 1, 4);
@@ -223,69 +260,43 @@ int main()
ourDisplay->Print(value);
ourDisplay->Print(";");
}
-
- /*uint8 someInput = ourKeyboard->GetInput();
- //ourDisplay->Print("Ready to accept...", 1, 2);
- switch(someInput)
+
+ if(ourCommandHandler->ticksPerCmOffset && !(i % 20))
{
- case 0:
- ourNavigator->Stop();
- return 0;
- break;
- case 1:
- ourNavigator->Drive(225, rotation, speed, rotation);
- break;
- case 2:
- ourNavigator->Drive(180, rotation, speed, rotation);
- break;
- case 3:
- ourNavigator->Drive(135, rotation, speed, rotation);
- break;
- case 4:
- ourNavigator->Drive(270, rotation, speed, rotation);
- break;
- case 5:
- ourNavigator->Drive(0, rotation, 0, rotation);
- break;
- case 6:
- ourNavigator->Drive(90, rotation, speed, rotation);
- break;
- case 7:
- ourNavigator->Drive(315, rotation, speed, rotation);
- break;
- case 8:
- ourNavigator->Drive(0, rotation, speed, rotation);
- break;
- case 9:
- ourNavigator->Drive(45, rotation, speed, rotation);
- break;
- case 10:
- ourPosition_Tracker->SetPosition(0,0,0); // Reset Position_Tracker
- break;
- case 11:
- ourLogic->SetKeeper(true); // Reset Position_Tracker
- break;
- }*/
-
- //ourDisplay->Clear();
- if(!(i % 20))
+ ourDisplay->Print(ourCommandHandler->ticksPerCmOffset * 10.0f, 10, 1);
+ }
+
+ if(ourCommandHandler->displayPositionTracker && !(i % 20))
+ {
+ ourDisplay->Print(ourPositionTracker->GetPositionX(), 1, 2);
+ ourDisplay->Print(ourPositionTracker->GetPositionY(), 1, 3);
+ ourDisplay->Print(ourPositionTracker->GetOrientation(), 1, 4);
+ }
+
+ if(ourCommandHandler->displayPositionTracker && !(i % 20))
+ {
+ ourDisplay->Print(ourPositionTracker->GetPositionX(), 1, 2);
+ ourDisplay->Print(ourPositionTracker->GetPositionY(), 1, 3);
+ ourDisplay->Print(ourPositionTracker->GetOrientation() * 180.0f / PI, 1, 4);
+ }
+
+ if(ourCommandHandler->displayBallTracker && !(i % 20))
{
- /*ourDisplay->Clear();
ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_0_DEG);
value = ourSensor->GetIRIntensity();
ourDisplay->Print(value, 1, 2);
ourDisplay->Print(";");
ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_30_DEG);
value = ourSensor->GetIRIntensity();
- ourDisplay->Print(value);
+ ourDisplay->Print(value, 6, 2);
ourDisplay->Print(";");
ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_60_DEG);
value = ourSensor->GetIRIntensity();
- ourDisplay->Print(value);
+ ourDisplay->Print(value, 11, 2);
ourDisplay->Print(";");
ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_100_DEG);
value = ourSensor->GetIRIntensity();
- ourDisplay->Print(value);
+ ourDisplay->Print(value, 16, 2);
ourDisplay->Print(";");
ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_180_DEG);
value = ourSensor->GetIRIntensity();
@@ -293,15 +304,15 @@ int main()
ourDisplay->Print(";");
ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_260_DEG);
value = ourSensor->GetIRIntensity();
- ourDisplay->Print(value);
+ ourDisplay->Print(value, 6, 3);
ourDisplay->Print(";");
ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_300_DEG);
value = ourSensor->GetIRIntensity();
- ourDisplay->Print(value);
+ ourDisplay->Print(value, 11, 3);
ourDisplay->Print(";");
ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_330_DEG);
value = ourSensor->GetIRIntensity();
- ourDisplay->Print(value);
+ ourDisplay->Print(value, 16, 3);
ourDisplay->Print(";");
if(ourBallTracker->KnowsBallDirection())
{
@@ -309,15 +320,27 @@ int main()
}
else
{
- ourDisplay->Print("Not found oder so", 1, 4);
- }*/
+ ourDisplay->Print("Ball not found", 1, 4);
+ }
+
+ if(ourBallTracker->HasBall()) {
+ ourDisplay->Print("Has Ball", 5, 4);
+ }
}
-
- localRobot->Update();
- //ourDisplay->Print(ourBallTracker->GetBallDirection() * 180.0f / PI, 1, 4);
+ //if(!(i % 20))
+ //{
+ // ourDisplay->Print(ourWireless->Recieve(), 10, 1);
+ //}
- //ourNavigator->Drive(ourBallTracker->GetBallDirection() * 180.0f / PI, 0, 255, 0);
+ if(ourBallTracker->KnowsBallDirection())
+ {
+ ourNavigator->Drive(ourBallTracker->GetBallDirection() * 180.0f / PI, 0, 255, 0);
+ }
+ else
+ {
+ ourNavigator->Stop();
+ }*/
}
//Cleanup