diff options
Diffstat (limited to 'source/Concept/Framework/modules')
-rwxr-xr-x | source/Concept/Framework/modules/executor/aktuator.c | 11 | ||||
-rwxr-xr-x | source/Concept/Framework/modules/executor/aktuator.h | 27 | ||||
-rwxr-xr-x | source/Concept/Framework/modules/logic/logic.c | 43 | ||||
-rwxr-xr-x | source/Concept/Framework/modules/logic/logic.h | 58 | ||||
-rwxr-xr-x | source/Concept/Framework/modules/wireless.c | 1 | ||||
-rwxr-xr-x | source/Concept/Framework/modules/wireless.h | 58 |
6 files changed, 198 insertions, 0 deletions
diff --git a/source/Concept/Framework/modules/executor/aktuator.c b/source/Concept/Framework/modules/executor/aktuator.c new file mode 100755 index 0000000..51dc331 --- /dev/null +++ b/source/Concept/Framework/modules/executor/aktuator.c @@ -0,0 +1,11 @@ +#include "aktuator.h"
+
+//-----------------------------------------------------------------------------
+void Aktuator::Kick()
+{
+ (parent->GetModule<Kicker>(IO_KICKER_MAIN))->SetEnabled(true);//aktivate kicker
+ (parent->GetModule<Dribbler>(IO_DRIBBLER_MAIN))->SetSpeed(-1);//aktivate dribbler reverse
+ msleep(10);//wait 100us
+ (parent->GetModule<Kicker>(IO_KICKER_MAIN))->SetEnabled(false);//deaktivate kicker
+ (parent->GetModule<Dribbler>(IO_DRIBBLER_MAIN))->SetSpeed(1);//deaktivate dribbler reverse
+}
diff --git a/source/Concept/Framework/modules/executor/aktuator.h b/source/Concept/Framework/modules/executor/aktuator.h new file mode 100755 index 0000000..9dc8684 --- /dev/null +++ b/source/Concept/Framework/modules/executor/aktuator.h @@ -0,0 +1,27 @@ +#ifndef _AKTUATOR_H
+#define _AKTUATOR_H
+
+#include "../../stdafx.h"
+
+class Aktuator : public IO_Module
+{
+public:
+ Aktuator()
+ {
+ this->parent = NULL;
+ this->moduleId = 0;
+ }
+
+ Aktuator(uint32 aktuatorId)
+ {
+ this->parent = NULL;
+ this->moduleId = aktuatorId;
+ }
+
+protected:
+
+public:
+ void Kick();
+};
+
+#endif diff --git a/source/Concept/Framework/modules/logic/logic.c b/source/Concept/Framework/modules/logic/logic.c new file mode 100755 index 0000000..00599d8 --- /dev/null +++ b/source/Concept/Framework/modules/logic/logic.c @@ -0,0 +1,43 @@ +#include "logic.h"
+
+//-----------------------------------------------------------------------------
+void Logic::OnBallOwned()
+{
+ Wireless* ourWireless = parent->GetModule<Wireless>(IO_WIRELESS_MAIN);
+
+ //ourWireless->Send(WIRELESS_CODE);
+ //ourWireless->Send();
+}
+
+//-----------------------------------------------------------------------------
+void Logic::OnBallLost()
+{
+ Wireless* ourWireless = parent->GetModule<Wireless>(IO_WIRELESS_MAIN);
+
+ //ourWireless->Send(WIRELESS_CODE);
+ //ourWireless->Send();
+}
+
+//-----------------------------------------------------------------------------
+void Logic::Update()
+{
+ // We want to use a navigator
+ Navigator* ourNavigator = parent->GetModule<Navigator>(IO_NAVIGATOR_MAIN);
+
+ // is Keeper?
+ if(isKeeper) {
+ // turn around al little bit...
+ if((status == STATUS_KEEPER_TURN_LEFT && ourNavigator->AngleReached()) ||
+ (status != STATUS_KEEPER_TURN_LEFT && status != STATUS_KEEPER_TURN_RIGHT)) {
+ status = STATUS_KEEPER_TURN_RIGHT;
+ ourNavigator->RotateTo(315,200);
+ }
+ else if(status == STATUS_KEEPER_TURN_RIGHT && ourNavigator->AngleReached()) {
+ status = STATUS_KEEPER_TURN_LEFT;
+ ourNavigator->RotateTo(45, 200);
+ }
+ }
+ else { // is Player?
+
+ }
+}
diff --git a/source/Concept/Framework/modules/logic/logic.h b/source/Concept/Framework/modules/logic/logic.h new file mode 100755 index 0000000..296956b --- /dev/null +++ b/source/Concept/Framework/modules/logic/logic.h @@ -0,0 +1,58 @@ +#ifndef _LOGIC_H
+#define _LOGIC_H
+
+#include "../../stdafx.h"
+
+#define STATUS_KEEPER_TURN_RIGHT 1
+#define STATUS_KEEPER_TURN_LEFT 2
+
+class Logic : public IO_Module
+{
+public:
+ Logic()
+ {
+ this->parent = NULL;
+ this->moduleId = 0;
+ this->isKeeper = false;
+ this->status = 0;
+ }
+
+ Logic(uint32 logicId)
+ {
+ this->parent = NULL;
+ this->moduleId = logicId;
+ this->isKeeper = false;
+ this->status = 0;
+ }
+
+protected:
+ bool isKeeper;
+ uint8 status;
+
+ void OnBallOwned();
+ void OnBallLost();
+
+public:
+ void Update();
+
+ bool IsKeeper()
+ {
+ return isKeeper;
+ }
+
+ bool IsAttacker()
+ {
+ return !isKeeper;
+ }
+
+ void SetKeeper(bool newStatus) {
+ this->isKeeper = newStatus;
+ }
+
+ bool HasBall()
+ {
+ //fill me!
+ }
+};
+
+#endif diff --git a/source/Concept/Framework/modules/wireless.c b/source/Concept/Framework/modules/wireless.c new file mode 100755 index 0000000..0a60e6a --- /dev/null +++ b/source/Concept/Framework/modules/wireless.c @@ -0,0 +1 @@ +#include "wireless.h"
diff --git a/source/Concept/Framework/modules/wireless.h b/source/Concept/Framework/modules/wireless.h new file mode 100755 index 0000000..19cc3d1 --- /dev/null +++ b/source/Concept/Framework/modules/wireless.h @@ -0,0 +1,58 @@ +#ifndef _WIRELESS_H
+#define _WIRELESS_H
+
+#include "../../stdafx.h"
+
+class Wireless : public IO_Module
+{
+public:
+ Wireless()
+ {
+ this->parent = NULL;
+ this->moduleId = 0;
+ }
+
+ Wireless(uint32 wirelessId)
+ {
+ this->parent = NULL;
+ this->moduleId = wirelessId;
+
+ switch(wirelessId)
+ {
+ case IO_WIRELESS_MAIN:
+ uart_init(51); // 19200 Baud at 16MHz Atmel
+ break;
+ default:
+ break;
+ }
+ }
+
+protected:
+ uint8 transmitPower;
+public:
+ void SetTransmitPower(uint8 newTransmitPower)
+ {
+ this->transmitPower = newTransmitPower;
+
+ char buffer[12];
+ ltoa(this->transmitPower-1, buffer, 10);
+ uart_puts(buffer);
+ }
+
+ void Send(char* message)
+ {
+ uart_puts(message);
+ }
+
+ void Send(uint8 message)
+ {
+ uart_putc(message);
+ }
+
+ int16 Recieve()
+ {
+ return uart_getc();
+ }
+};
+
+#endif |