summaryrefslogtreecommitdiffstats
path: root/Navigation.c
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2007-04-03 14:47:03 +0200
committerneoraider <devnull@localhost>2007-04-03 14:47:03 +0200
commit98c623dc8969151c0872a2d102d486f9a735d614 (patch)
treec9746d588928c618c6687e719a910350f8c070b5 /Navigation.c
downloadrc2007-rescue-old-98c623dc8969151c0872a2d102d486f9a735d614.tar
rc2007-rescue-old-98c623dc8969151c0872a2d102d486f9a735d614.zip
Neues Rescue-Programm angefangenHEADmaster
Diffstat (limited to 'Navigation.c')
-rw-r--r--Navigation.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/Navigation.c b/Navigation.c
new file mode 100644
index 0000000..9a3f69d
--- /dev/null
+++ b/Navigation.c
@@ -0,0 +1,46 @@
+#include "Navigation.h"
+
+
+void Navigation::start() {
+ int r = m_speed, l = m_speed;
+
+
+ switch(m_richtung)
+ {
+ case -2:
+ l = 0;
+ break;
+ case -1:
+ l /= 4;
+ break;
+ case 1:
+ r /= 4;
+ break;
+ case 2:
+ r = 0;
+ }
+
+ m_board->motor(MOTOR_PORT_LINKS, l);
+ m_board->motor(MOTOR_PORT_RECHTS, r);
+
+ m_gestartet = true;
+}
+
+void Navigation::stop() {
+ m_board->motor(MOTOR_PORT_LINKS, 0);
+ m_board->motor(MOTOR_PORT_RECHTS, 0);
+
+ m_gestartet = false;
+}
+
+void Navigation::setSpeed(int speed) {
+ m_speed = (speed > 255) ? 255 : (speed < -255) ? -255 : speed;
+
+ if(m_gestartet) start();
+}
+
+void Navigation::setRichtung(int richtung) {
+ m_richtung = richtung;
+
+ if(m_gestartet) start();
+}