From 3c3c628b617dc53f0b7b59285c7d67888074c33d Mon Sep 17 00:00:00 2001 From: sicarius Date: Sun, 18 Feb 2007 00:14:00 +0000 Subject: +++ Additional Codework --- source/Concept/Framework/main.c | 189 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100755 source/Concept/Framework/main.c (limited to 'source/Concept/Framework/main.c') diff --git a/source/Concept/Framework/main.c b/source/Concept/Framework/main.c new file mode 100755 index 0000000..fa6d718 --- /dev/null +++ b/source/Concept/Framework/main.c @@ -0,0 +1,189 @@ +#include "stdafx.h" + +int main() +{ + //Init our robot + Robot* localRobot = new Robot(); + + //Init Engines + for(uint8 i = IO_ENGINE_START; i < IO_ENGINE_END; i++) + { + Engine* newEngine = new Engine(i); + localRobot->AddModule(newEngine); + newEngine = NULL; + } + + //Init Dribbler + for(uint8 i = IO_DRIBBLER_START; i < IO_DRIBBLER_END; i++) + { + Dribbler* newDribbler = new Dribbler(i); + localRobot->AddModule(newDribbler); + newDribbler = NULL; + } + + //Init Kicker + for(uint8 i = IO_KICKER_START; i < IO_KICKER_END; i++) + { + Kicker* newKicker = new Kicker(i); + localRobot->AddModule(newKicker); + newKicker = NULL; + } + + //Init Sensors + for(uint8 i = IO_SENSOR_START; i < IO_SENSOR_END; i++) + { + switch(i) + { + //Create correct type of sensor + case IO_SENSOR_IR_0_DEG: + case IO_SENSOR_IR_30_DEG: + case IO_SENSOR_IR_60_DEG: + case IO_SENSOR_IR_100_DEG: + case IO_SENSOR_IR_180_DEG: + case IO_SENSOR_IR_260_DEG: + case IO_SENSOR_IR_300_DEG: + case IO_SENSOR_IR_330_DEG: + { + IR_Sensor* newSensor = new IR_Sensor(i); + localRobot->AddModule(newSensor); + newSensor = NULL; + break; + } + case IO_SENSOR_DISTANCE_0_DEG: + case IO_SENSOR_DISTANCE_90_DEG: + case IO_SENSOR_DISTANCE_180_DEG: + case IO_SENSOR_DISTANCE_270_DEG: + { + Distance_Sensor* newSensor = new Distance_Sensor(i); + localRobot->AddModule(newSensor); + newSensor = NULL; + break; + } + case IO_SENSOR_MOUSE_LEFT: + case IO_SENSOR_MOUSE_RIGHT: + { + Mouse_Sensor* newSensor = new Mouse_Sensor(i); + localRobot->AddModule(newSensor); + newSensor = NULL; + break; + } + //Other cases + default: + { + Sensor* newSensor = new Sensor(i); + localRobot->AddModule(newSensor); + newSensor = NULL; + break; + } + } + } + + //Init Leds + for(uint8 i = IO_LED_START; i < IO_LED_END; i++) + { + Led* newLed = new Led(i); + localRobot->AddModule(newLed); + newLed = NULL; + } + + //Init Displays + for(uint8 i = IO_DISPLAY_START; i < IO_DISPLAY_END; i++) + { + Display* newDisplay = new Display(i); + localRobot->AddModule(newDisplay); + newDisplay = NULL; + } + + //Init Keyboards + for(uint8 i = IO_KEYBOARD_START; i < IO_KEYBOARD_END; i++) + { + Keyboard* newKeyboard = new Keyboard(i); + localRobot->AddModule(newKeyboard); + newKeyboard = NULL; + } + + //Init Position Tracker + for(uint8 i = IO_POSITION_TRACKER_START; i < IO_POSITION_TRACKER_END; i++) + { + Position_Tracker* newPositionTracker = new Position_Tracker(i); + localRobot->AddModule(newPositionTracker); + newPositionTracker = NULL; + } + + //Init Ball Tracker + for(uint8 i = IO_BALL_TRACKER_START; i < IO_BALL_TRACKER_END; i++) + { + Ball_Tracker* newBallTracker = new Ball_Tracker(i); + localRobot->AddModule(newBallTracker); + newBallTracker = NULL; + } + + //Init Navigators + for(uint8 i = IO_NAVIGATOR_START; i < IO_NAVIGATOR_END; i++) + { + Navigator* newNavigator = new Navigator(i); + localRobot->AddModule(newNavigator); + newNavigator = NULL; + } + + + + IR_Sensor* ourSensor = NULL; + uint16 value = 0; + int8 value2 = 0; + Display* ourDisplay = localRobot->GetModule(IO_DISPLAY_MAIN); + uint32 i = 1; + Ball_Tracker* ourBallTracker = localRobot->GetModule(IO_BALL_TRACKER_MAIN); + + //Run + while(true) + { + msleep(500); + ourDisplay->Clear(); + ourDisplay->Print(i++); + ourSensor = localRobot->GetModule(IO_SENSOR_IR_0_DEG); + value = ourSensor->GetIRIntensity(); + ourDisplay->Print(value, 1, 2); + ourDisplay->Print(";"); + ourSensor = localRobot->GetModule(IO_SENSOR_IR_30_DEG); + value = ourSensor->GetIRIntensity(); + ourDisplay->Print(value); + ourDisplay->Print(";"); + ourSensor = localRobot->GetModule(IO_SENSOR_IR_60_DEG); + value = ourSensor->GetIRIntensity(); + ourDisplay->Print(value); + ourDisplay->Print(";"); + ourSensor = localRobot->GetModule(IO_SENSOR_IR_100_DEG); + value = ourSensor->GetIRIntensity(); + ourDisplay->Print(value); + ourDisplay->Print(";"); + ourSensor = localRobot->GetModule(IO_SENSOR_IR_180_DEG); + value = ourSensor->GetIRIntensity(); + ourDisplay->Print(value, 1, 3); + ourDisplay->Print(";"); + ourSensor = localRobot->GetModule(IO_SENSOR_IR_260_DEG); + value = ourSensor->GetIRIntensity(); + ourDisplay->Print(value); + ourDisplay->Print(";"); + ourSensor = localRobot->GetModule(IO_SENSOR_IR_300_DEG); + value = ourSensor->GetIRIntensity(); + ourDisplay->Print(value); + ourDisplay->Print(";"); + ourSensor = localRobot->GetModule(IO_SENSOR_IR_330_DEG); + value = ourSensor->GetIRIntensity(); + ourDisplay->Print(value); + ourDisplay->Print(";"); + value2 = (localRobot->GetModule(IO_SENSOR_MOUSE_LEFT))->GetXMovement(); + ourDisplay->Print(value2, 10, 4); + value2 = (localRobot->GetModule(IO_SENSOR_MOUSE_LEFT))->GetYMovement(); + ourDisplay->Print(value2, 15, 4); + + localRobot->Update(); + + ourDisplay->PrintFloat(ourBallTracker->GetBallDirection(), 1, 4); + } + + //Cleanup + delete localRobot; + localRobot = NULL; +} -- cgit v1.2.3