Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NySNICInterface mbed-rtos mbed
Fork of RESTServerSample by
Revision 2:2f187e09bdb0, committed 2015-02-15
- Comitter:
- yi
- Date:
- Sun Feb 15 00:54:43 2015 +0000
- Parent:
- 1:e821c773d5f0
- Child:
- 3:f9d5cdce80dd
- Commit message:
- arranged the code (control_motors.cpp, control_motors.h)
Changed in this revision
--- a/HTTPServer.cpp Sun Feb 15 00:18:07 2015 +0000
+++ b/HTTPServer.cpp Sun Feb 15 00:54:43 2015 +0000
@@ -1,7 +1,7 @@
#include "HTTPServer.h"
#include "mbed.h"
-#include "parse_request.h"
+#include "control_motors.h"
bool cmp(char* a, char* b)
@@ -94,9 +94,7 @@
reply[0] = '\0';
response_code = HTTP_404_NOTFOUND;
-// 追加 20150214
- printf("%s\n",request);
-
+ // リクエストされたURLをパースしてモーターを制御
parse_request(request);
--- /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
+ // モーター制御の処理
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/control_motors.h Sun Feb 15 00:54:43 2015 +0000 @@ -0,0 +1,12 @@ +#include "mbed.h" + +#define MOTOR_RIGHT 0 +#define MOTOR_LEFT 1 + + +void parse_request(char *request); + +void move(int motor_id, int speed); +void start_shaking_tail(); +void stop_shaking_tail(); +
--- a/parse_request.cpp Sun Feb 15 00:18:07 2015 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#include "parse_request.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);
- printf("moter right %d\n", speed);
-
- // TODO
- // motor right の処理を追加
-
- }else if(strcmp(str, "left") == 0){
-
- str = strtok(NULL,"="); //"speed"
- str = strtok(NULL,"="); //
-
- int speed = atoi(str);
- printf("moter left %d\n", speed);
-
- // TODO
- // motor left の処理を追加
-
- }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){
- printf("tail start\n");
-
- // TODO
- // tail start の処理を追加
-
-
- }else if(strcmp(str, "end") == 0){
- printf("tail end\n");
-
- // TODO
- // tail end の処理を追加
-
- }else{
- errorFlag = true;
- }
- }else{
- errorFlag = true;
- }
- }
- }
-
- if(errorFlag){
- printf("error: request=%s\n", request);
- }
-}
--- a/parse_request.h Sun Feb 15 00:18:07 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -#include "mbed.h" - -void parse_request(char *request);
