Fx0 hackathon team4
Dependencies: NySNICInterface mbed-rtos mbed
Fork of RESTServerSample by
Diff: control_motors.cpp
- Revision:
- 2:2f187e09bdb0
- Child:
- 4:99a67256b765
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/control_motors.cpp Sun Feb 15 00:54:43 2015 +0000 @@ -0,0 +1,97 @@ +#include "control_motors.h" + +void parse_request(char *request){ + + bool errorFlag = false; + + char* str = strtok(request+1,"/"); + + if(strcmp(str, "api") == 0){ + str = strtok(NULL,"/"); + + if(strcmp(str, "motor") == 0){ + str = strtok(NULL,"?"); + + if(strcmp(str, "right") == 0){ + + str = strtok(NULL,"="); //"speed" + str = strtok(NULL,""); // + + int speed = atoi(str); + + // motor right + move(MOTOR_RIGHT, speed); + + }else if(strcmp(str, "left") == 0){ + + str = strtok(NULL,"="); //"speed" + str = strtok(NULL,""); // + + int speed = atoi(str); + + // motor left + move(MOTOR_LEFT, speed); + + }else{ + errorFlag = true; + } + + }else if(strcmp(str, "tail") == 0){ + str = strtok(NULL,"/"); + if(strcmp(str, "swing") == 0){ + str = strtok(NULL,"/"); + if(strcmp(str, "start") == 0){ + + // tail start + start_shaking_tail(); + + }else if(strcmp(str, "end") == 0){ + + // tail end + stop_shaking_tail(); + + }else{ + errorFlag = true; + } + }else{ + errorFlag = true; + } + } + } + + if(errorFlag){ + printf("error: request=%s\n", request); + } +} + + +void move(int motor_id, int speed){ + if(motor_id == MOTOR_RIGHT){ + printf("motor right speed = %d\n", speed); + + // TODO + // モーター制御の処理 + + }else if(motor_id == MOTOR_LEFT){ + printf("motor left speed = %d\n", speed); + + // TODO + // モーター制御の処理 + } +} + + +void start_shaking_tail(){ + printf("start_shaking_tail\n"); + + // TODO + // モーター制御の処理 +} + + +void stop_shaking_tail(){ + printf("stop_shaking_tail\n"); + + // TODO + // モーター制御の処理 +}