Fx0 hackathon team4

Dependencies:   NySNICInterface mbed-rtos mbed

Fork of RESTServerSample by KDDI Fx0 hackathon

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