summaryrefslogtreecommitdiffstats
path: root/Navigation.c
blob: 9a3f69d2d3131dfe5ff5642f205b49d2066858fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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();
}