Fx0 hackathon team4

Dependencies:   NySNICInterface mbed-rtos mbed

Fork of RESTServerSample by KDDI Fx0 hackathon

control_motors.cpp

Committer:
yi
Date:
2015-02-15
Revision:
2:2f187e09bdb0
Child:
4:99a67256b765

File content as of revision 2:2f187e09bdb0:

#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
    // モーター制御の処理
}