MurataTypeYD_RPC_Sample fixed version for 050314

Dependencies:   PowerControl SNICInterface_mod2 mbed-rtos mbed

Fork of HTTPClient_WiFi_HelloWorld by KDDI Fx0 hackathon

Committer:
komoritan
Date:
Thu Mar 12 12:27:31 2015 +0000
Revision:
6:6c49fdc29825
Fixed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
komoritan 6:6c49fdc29825 1 #include "RPCObject.h"
komoritan 6:6c49fdc29825 2 #include "parse_pins.h"
komoritan 6:6c49fdc29825 3 #include "mbed.h"
komoritan 6:6c49fdc29825 4 #include "HTTPServer.h"
komoritan 6:6c49fdc29825 5 // KTEC ADD START
komoritan 6:6c49fdc29825 6 #include "RPC_Function.h"
komoritan 6:6c49fdc29825 7 // KTEC ADD END
komoritan 6:6c49fdc29825 8
komoritan 6:6c49fdc29825 9 RPCObject::RPCObject()
komoritan 6:6c49fdc29825 10 {
komoritan 6:6c49fdc29825 11 }
komoritan 6:6c49fdc29825 12
komoritan 6:6c49fdc29825 13
komoritan 6:6c49fdc29825 14 int RPCObject::decode(char* request, char* reply)
komoritan 6:6c49fdc29825 15 {
komoritan 6:6c49fdc29825 16 // KTEC MOD START
komoritan 6:6c49fdc29825 17 // 以下のようなURLで接続された場合は、関数を実行する
komoritan 6:6c49fdc29825 18 // http://ipアドレス/rpc/setLed/1,0,1,1 LED1~4の点灯、消灯
komoritan 6:6c49fdc29825 19 // http://ipアドレス/rpc/getGyro/ ジャイロ情報の取得
komoritan 6:6c49fdc29825 20 char* rpc = strtok(request+1,"/");
komoritan 6:6c49fdc29825 21 char* method = strtok(NULL, "/");
komoritan 6:6c49fdc29825 22 char* param = strtok(NULL, "/");
komoritan 6:6c49fdc29825 23 DEBUG_PRINT("decode rpc = %s\r\n", rpc);
komoritan 6:6c49fdc29825 24 DEBUG_PRINT("decode method = %s\r\n", method);
komoritan 6:6c49fdc29825 25 DEBUG_PRINT("decode param = %s\r\n", param);
komoritan 6:6c49fdc29825 26
komoritan 6:6c49fdc29825 27 if (strcmp(rpc, "rpc") == 0) {
komoritan 6:6c49fdc29825 28 // LEDの点灯、消灯処理実行
komoritan 6:6c49fdc29825 29 if (strcmp(method, "setLed") == 0) {
komoritan 6:6c49fdc29825 30 DEBUG_PRINT("decode call doSetLed \r\n");
komoritan 6:6c49fdc29825 31 doSetLed(param, reply);
komoritan 6:6c49fdc29825 32 // ジャイロセンサーの値の取得処理実行
komoritan 6:6c49fdc29825 33 } else if (strcmp(method, "getGyro") == 0) {
komoritan 6:6c49fdc29825 34 DEBUG_PRINT("decode call doGetGyro \r\n");
komoritan 6:6c49fdc29825 35 doGetGyro(param, reply);
komoritan 6:6c49fdc29825 36 } else {
komoritan 6:6c49fdc29825 37 DEBUG_PRINT("decode Unsupported method = %s\r\n", method);
komoritan 6:6c49fdc29825 38 return -1;
komoritan 6:6c49fdc29825 39 }
komoritan 6:6c49fdc29825 40 } else {
komoritan 6:6c49fdc29825 41 DEBUG_PRINT("decode rpc does not exist in URL, rpc = %s \r\n", rpc);
komoritan 6:6c49fdc29825 42 return -1;
komoritan 6:6c49fdc29825 43 }
komoritan 6:6c49fdc29825 44 // KTEC MOD END
komoritan 6:6c49fdc29825 45
komoritan 6:6c49fdc29825 46 return 0;
komoritan 6:6c49fdc29825 47 }
komoritan 6:6c49fdc29825 48
komoritan 6:6c49fdc29825 49
komoritan 6:6c49fdc29825 50 bool RPCObject::create_pin_object(char* reply)
komoritan 6:6c49fdc29825 51 {
komoritan 6:6c49fdc29825 52 RPCClass* pinobj;
komoritan 6:6c49fdc29825 53
komoritan 6:6c49fdc29825 54 if(pinObjects.find(pin_name) != pinObjects.end()){
komoritan 6:6c49fdc29825 55 printf("The pin already exists.\r\n");
komoritan 6:6c49fdc29825 56 strcat(reply, "The pin already exists. ");
komoritan 6:6c49fdc29825 57 return false;
komoritan 6:6c49fdc29825 58 }
komoritan 6:6c49fdc29825 59
komoritan 6:6c49fdc29825 60 switch(type){
komoritan 6:6c49fdc29825 61 case RPC_PIN_DIGITAL_IN:
komoritan 6:6c49fdc29825 62 printf("DigitalIn.\r\n");
komoritan 6:6c49fdc29825 63 pinobj = new RPCDigitalIn(pin_name);
komoritan 6:6c49fdc29825 64 break;
komoritan 6:6c49fdc29825 65 case RPC_PIN_DIGITAL_OUT:
komoritan 6:6c49fdc29825 66 printf("DigitalOut.\r\n");
komoritan 6:6c49fdc29825 67 pinobj = new RPCDigitalOut(pin_name);
komoritan 6:6c49fdc29825 68 break;
komoritan 6:6c49fdc29825 69 case RPC_PIN_DIGITAL_INOUT:
komoritan 6:6c49fdc29825 70 printf("DigitalInOut.\r\n");
komoritan 6:6c49fdc29825 71 pinobj = new RPCDigitalInOut(pin_name);
komoritan 6:6c49fdc29825 72 break;
komoritan 6:6c49fdc29825 73 default:
komoritan 6:6c49fdc29825 74 printf(" Unsupported type.\r\n");
komoritan 6:6c49fdc29825 75 strcat(reply, "Unsupported type. ");
komoritan 6:6c49fdc29825 76 return false;
komoritan 6:6c49fdc29825 77 }
komoritan 6:6c49fdc29825 78
komoritan 6:6c49fdc29825 79 pinObjects[pin_name] = pinobj;
komoritan 6:6c49fdc29825 80
komoritan 6:6c49fdc29825 81 return true;
komoritan 6:6c49fdc29825 82 }