Fx0 hackathon team4

Dependencies:   NySNICInterface mbed-rtos mbed

Fork of RESTServerSample by KDDI Fx0 hackathon

Committer:
yi
Date:
Sun Feb 15 03:38:17 2015 +0000
Revision:
5:70c9f6045f2d
Parent:
4:99a67256b765
Child:
7:bdd579baaa91
delete unnecessary code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yi 2:2f187e09bdb0 1 #include "control_motors.h"
yi 2:2f187e09bdb0 2
yi 5:70c9f6045f2d 3 bool parse_request(char *request){
yi 2:2f187e09bdb0 4
yi 5:70c9f6045f2d 5 bool okFlag = false;
yi 2:2f187e09bdb0 6
yi 2:2f187e09bdb0 7 char* str = strtok(request+1,"/");
yi 2:2f187e09bdb0 8
yi 2:2f187e09bdb0 9 if(strcmp(str, "api") == 0){
yi 2:2f187e09bdb0 10 str = strtok(NULL,"/");
yi 2:2f187e09bdb0 11
yi 2:2f187e09bdb0 12 if(strcmp(str, "motor") == 0){
yi 2:2f187e09bdb0 13 str = strtok(NULL,"?");
yi 2:2f187e09bdb0 14
yi 2:2f187e09bdb0 15 if(strcmp(str, "right") == 0){
yi 2:2f187e09bdb0 16
yi 2:2f187e09bdb0 17 str = strtok(NULL,"="); //"speed"
yi 2:2f187e09bdb0 18 str = strtok(NULL,""); //
yi 2:2f187e09bdb0 19
yi 2:2f187e09bdb0 20 int speed = atoi(str);
yi 2:2f187e09bdb0 21
yi 2:2f187e09bdb0 22 // motor right
yi 2:2f187e09bdb0 23 move(MOTOR_RIGHT, speed);
yi 5:70c9f6045f2d 24 okFlag = true;
yi 2:2f187e09bdb0 25
yi 2:2f187e09bdb0 26 }else if(strcmp(str, "left") == 0){
yi 2:2f187e09bdb0 27
yi 2:2f187e09bdb0 28 str = strtok(NULL,"="); //"speed"
yi 2:2f187e09bdb0 29 str = strtok(NULL,""); //
yi 2:2f187e09bdb0 30
yi 2:2f187e09bdb0 31 int speed = atoi(str);
yi 2:2f187e09bdb0 32
yi 2:2f187e09bdb0 33 // motor left
yi 2:2f187e09bdb0 34 move(MOTOR_LEFT, speed);
yi 5:70c9f6045f2d 35 okFlag = true;
yi 5:70c9f6045f2d 36
yi 2:2f187e09bdb0 37 }
yi 2:2f187e09bdb0 38
yi 2:2f187e09bdb0 39 }else if(strcmp(str, "tail") == 0){
yi 2:2f187e09bdb0 40 str = strtok(NULL,"/");
yi 2:2f187e09bdb0 41 if(strcmp(str, "swing") == 0){
yi 2:2f187e09bdb0 42 str = strtok(NULL,"/");
yi 2:2f187e09bdb0 43 if(strcmp(str, "start") == 0){
yi 2:2f187e09bdb0 44
yi 2:2f187e09bdb0 45 // tail start
yi 2:2f187e09bdb0 46 start_shaking_tail();
yi 2:2f187e09bdb0 47
yi 5:70c9f6045f2d 48 okFlag = true;
yi 5:70c9f6045f2d 49
yi 2:2f187e09bdb0 50 }else if(strcmp(str, "end") == 0){
yi 2:2f187e09bdb0 51
yi 2:2f187e09bdb0 52 // tail end
yi 2:2f187e09bdb0 53 stop_shaking_tail();
yi 2:2f187e09bdb0 54
yi 5:70c9f6045f2d 55 okFlag = true;
yi 5:70c9f6045f2d 56
yi 2:2f187e09bdb0 57 }
yi 2:2f187e09bdb0 58 }
yi 2:2f187e09bdb0 59 }
yi 2:2f187e09bdb0 60 }
yi 2:2f187e09bdb0 61
yi 5:70c9f6045f2d 62 if(!okFlag){
yi 2:2f187e09bdb0 63 printf("error: request=%s\n", request);
yi 5:70c9f6045f2d 64 return false;
yi 2:2f187e09bdb0 65 }
yi 5:70c9f6045f2d 66
yi 5:70c9f6045f2d 67 return true;
yi 2:2f187e09bdb0 68 }
yi 2:2f187e09bdb0 69
yi 2:2f187e09bdb0 70
yi 2:2f187e09bdb0 71 void move(int motor_id, int speed){
yi 2:2f187e09bdb0 72 if(motor_id == MOTOR_RIGHT){
yi 2:2f187e09bdb0 73 printf("motor right speed = %d\n", speed);
yi 2:2f187e09bdb0 74
yi 2:2f187e09bdb0 75 // TODO
yi 2:2f187e09bdb0 76 // モーター制御の処理
oks486 4:99a67256b765 77 if(speed > 0){
oks486 4:99a67256b765 78 mPwmMotorR = (float)speed/255;
oks486 4:99a67256b765 79 mDoutMotorR1 = 1;
oks486 4:99a67256b765 80 mDoutMotorR2 = 0;
oks486 4:99a67256b765 81 }else if (speed < 0){
oks486 4:99a67256b765 82 mPwmMotorR = -(float)speed/255;
oks486 4:99a67256b765 83 mDoutMotorR1 = 0;
oks486 4:99a67256b765 84 mDoutMotorR2 = 1;
oks486 4:99a67256b765 85 }else{
oks486 4:99a67256b765 86 mPwmMotorR = 0;
oks486 4:99a67256b765 87 mDoutMotorR1 = 0;
oks486 4:99a67256b765 88 mDoutMotorR2 = 0;
oks486 4:99a67256b765 89 }
oks486 4:99a67256b765 90
yi 2:2f187e09bdb0 91 }else if(motor_id == MOTOR_LEFT){
yi 2:2f187e09bdb0 92 printf("motor left speed = %d\n", speed);
yi 2:2f187e09bdb0 93
yi 2:2f187e09bdb0 94 // TODO
yi 2:2f187e09bdb0 95 // モーター制御の処理
oks486 4:99a67256b765 96 if(speed > 0){
oks486 4:99a67256b765 97 mPwmMotorL = (float)speed/255;
oks486 4:99a67256b765 98 mDoutMotorL1 = 1;
oks486 4:99a67256b765 99 mDoutMotorL2 = 0;
oks486 4:99a67256b765 100 }else if (speed < 0){
oks486 4:99a67256b765 101 mPwmMotorL = -(float)speed/255;
oks486 4:99a67256b765 102 mDoutMotorL1 = 0;
oks486 4:99a67256b765 103 mDoutMotorL2 = 1;
oks486 4:99a67256b765 104 }else{
oks486 4:99a67256b765 105 mPwmMotorL = 0.0;
oks486 4:99a67256b765 106 mDoutMotorL1 = 0;
oks486 4:99a67256b765 107 mDoutMotorL2 = 0;
oks486 4:99a67256b765 108 }
oks486 4:99a67256b765 109
yi 2:2f187e09bdb0 110 }
yi 2:2f187e09bdb0 111 }
yi 2:2f187e09bdb0 112
yi 2:2f187e09bdb0 113
yi 2:2f187e09bdb0 114 void start_shaking_tail(){
yi 2:2f187e09bdb0 115 printf("start_shaking_tail\n");
yi 2:2f187e09bdb0 116
yi 2:2f187e09bdb0 117 // TODO
yi 2:2f187e09bdb0 118 // モーター制御の処理
oks486 4:99a67256b765 119 mPwmMotorTail = 0.8;
oks486 4:99a67256b765 120 mDoutMotorTail1 = 1;
oks486 4:99a67256b765 121 mDoutMotorTail2 = 0;
oks486 4:99a67256b765 122
yi 2:2f187e09bdb0 123 }
yi 2:2f187e09bdb0 124
yi 2:2f187e09bdb0 125
yi 2:2f187e09bdb0 126 void stop_shaking_tail(){
yi 2:2f187e09bdb0 127 printf("stop_shaking_tail\n");
yi 2:2f187e09bdb0 128
yi 2:2f187e09bdb0 129 // TODO
yi 2:2f187e09bdb0 130 // モーター制御の処理
oks486 4:99a67256b765 131 mPwmMotorTail = 0.0;
oks486 4:99a67256b765 132 mDoutMotorTail1 = 0;
oks486 4:99a67256b765 133 mDoutMotorTail2 = 0;
oks486 4:99a67256b765 134
yi 2:2f187e09bdb0 135 }