Working, Clean

Fork of Movement by Dustin Berendsen

Committer:
peterknoben
Date:
Wed Nov 01 22:46:38 2017 +0000
Revision:
4:c81764efe40d
Parent:
3:61733f7f1fea
Child:
5:d13de19a1eea
Working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
peterknoben 0:9c61094ffaac 1 #include "Movement.h"
peterknoben 0:9c61094ffaac 2 #include "mbed.h"
peterknoben 0:9c61094ffaac 3
peterknoben 3:61733f7f1fea 4 float movement_left, movement_right;
peterknoben 0:9c61094ffaac 5
peterknoben 0:9c61094ffaac 6 Movement::Movement(void)
peterknoben 0:9c61094ffaac 7 {
peterknoben 0:9c61094ffaac 8
peterknoben 0:9c61094ffaac 9 }
peterknoben 0:9c61094ffaac 10
peterknoben 3:61733f7f1fea 11 int Movement::getdirectionLeft(int mode){
peterknoben 3:61733f7f1fea 12 int directionL;
peterknoben 3:61733f7f1fea 13 if(mode==1 || mode==2){
peterknoben 3:61733f7f1fea 14 directionL = 1;
peterknoben 3:61733f7f1fea 15 }
peterknoben 3:61733f7f1fea 16 else if (mode==4 || mode==5){
peterknoben 3:61733f7f1fea 17 directionL = -1;
peterknoben 3:61733f7f1fea 18 }
peterknoben 3:61733f7f1fea 19 else{
peterknoben 3:61733f7f1fea 20 directionL = 0;
peterknoben 3:61733f7f1fea 21 }
peterknoben 3:61733f7f1fea 22 return directionL;
peterknoben 3:61733f7f1fea 23 }
peterknoben 3:61733f7f1fea 24
peterknoben 3:61733f7f1fea 25 int Movement::getdirectionRight(int mode){
peterknoben 3:61733f7f1fea 26 int directionR;
peterknoben 3:61733f7f1fea 27 if(mode==1 || mode==5){
peterknoben 3:61733f7f1fea 28 directionR = 1;
peterknoben 3:61733f7f1fea 29 }
peterknoben 3:61733f7f1fea 30 else if (mode==2 || mode==4){
peterknoben 3:61733f7f1fea 31 directionR = -1;
peterknoben 3:61733f7f1fea 32 }
peterknoben 3:61733f7f1fea 33 else{
peterknoben 3:61733f7f1fea 34 directionR = 0;
peterknoben 3:61733f7f1fea 35 }
peterknoben 3:61733f7f1fea 36 return directionR;
peterknoben 3:61733f7f1fea 37 }
peterknoben 3:61733f7f1fea 38
peterknoben 3:61733f7f1fea 39
peterknoben 4:c81764efe40d 40 //Get the left position
peterknoben 3:61733f7f1fea 41 float Movement::getpositionLeft(int SignalNumber, int mode, float max_range){
peterknoben 3:61733f7f1fea 42 static float positionLeft; //Define a position array
peterknoben 3:61733f7f1fea 43 int directionLeft = getdirectionLeft(mode);
peterknoben 3:61733f7f1fea 44 float position_math_left;
peterknoben 3:61733f7f1fea 45 switch(SignalNumber){
peterknoben 3:61733f7f1fea 46 case 1: //Move slowest
peterknoben 3:61733f7f1fea 47 movement_left = directionLeft*0.25;
peterknoben 3:61733f7f1fea 48 position_math_left = positionLeft + movement_left;
peterknoben 3:61733f7f1fea 49 if (position_math_left >= max_range || position_math_left <=0){
peterknoben 3:61733f7f1fea 50 positionLeft = positionLeft;
peterknoben 3:61733f7f1fea 51 }
peterknoben 3:61733f7f1fea 52 else{
peterknoben 3:61733f7f1fea 53 positionLeft += movement_left;
peterknoben 3:61733f7f1fea 54 }
peterknoben 3:61733f7f1fea 55 break;
peterknoben 3:61733f7f1fea 56 case 2: //Move slow
peterknoben 3:61733f7f1fea 57 movement_left = directionLeft *1;
peterknoben 3:61733f7f1fea 58 position_math_left = positionLeft + movement_left;
peterknoben 3:61733f7f1fea 59 if (position_math_left >= max_range || position_math_left <=0){
peterknoben 3:61733f7f1fea 60 positionLeft = positionLeft;
peterknoben 3:61733f7f1fea 61 }
peterknoben 3:61733f7f1fea 62 else{
peterknoben 3:61733f7f1fea 63 positionLeft += movement_left;
peterknoben 3:61733f7f1fea 64 }
peterknoben 3:61733f7f1fea 65 break;
peterknoben 3:61733f7f1fea 66 default : //if something is wrong or no muscles are flexed, standstill
peterknoben 3:61733f7f1fea 67 positionLeft = positionLeft;
peterknoben 3:61733f7f1fea 68 break;
peterknoben 3:61733f7f1fea 69 }
peterknoben 3:61733f7f1fea 70 return positionLeft;
peterknoben 3:61733f7f1fea 71 }
peterknoben 3:61733f7f1fea 72
peterknoben 4:c81764efe40d 73 // Get the right position
peterknoben 3:61733f7f1fea 74 float Movement::getpositionRight(int SignalNumber, int mode, float max_range){
peterknoben 3:61733f7f1fea 75 static float positionRight; //Define a position array
peterknoben 3:61733f7f1fea 76 int directionRight = getdirectionRight(mode);
peterknoben 3:61733f7f1fea 77 float position_math_right;
peterknoben 3:61733f7f1fea 78 switch(SignalNumber){
peterknoben 3:61733f7f1fea 79 case 1: //Move slowest
peterknoben 3:61733f7f1fea 80 movement_right = directionRight*0.25;
peterknoben 3:61733f7f1fea 81 position_math_right = positionRight + movement_right;
peterknoben 3:61733f7f1fea 82 if (position_math_right >= max_range || position_math_right <=0){
peterknoben 3:61733f7f1fea 83 positionRight = positionRight;
peterknoben 3:61733f7f1fea 84 }
peterknoben 3:61733f7f1fea 85 else{
peterknoben 3:61733f7f1fea 86 positionRight += movement_right;
peterknoben 3:61733f7f1fea 87 }
peterknoben 3:61733f7f1fea 88 break;
peterknoben 3:61733f7f1fea 89 case 2: //Move slow
peterknoben 3:61733f7f1fea 90 movement_right = directionRight *1;
peterknoben 3:61733f7f1fea 91 position_math_right = positionRight + movement_right;
peterknoben 3:61733f7f1fea 92 if (position_math_right >= max_range || position_math_right <=0){
peterknoben 3:61733f7f1fea 93 positionRight = positionRight;
peterknoben 3:61733f7f1fea 94 }
peterknoben 3:61733f7f1fea 95 else{
peterknoben 3:61733f7f1fea 96 positionRight += movement_right;
peterknoben 3:61733f7f1fea 97 }
peterknoben 3:61733f7f1fea 98 break;
peterknoben 3:61733f7f1fea 99 default : //if something is wrong or no muscles are flexed, standstill
peterknoben 3:61733f7f1fea 100 positionRight = positionRight;
peterknoben 3:61733f7f1fea 101 break;
peterknoben 3:61733f7f1fea 102 }
peterknoben 3:61733f7f1fea 103 return positionRight;
peterknoben 3:61733f7f1fea 104 }