Add ADC

Dependencies:   Adafruit_GFX MbedJSONValue_v102 WIZnetInterface mbed

Fork of WIZwiki-REST-io_v101 by Lawrence Lee

Committer:
joon874
Date:
Tue May 03 02:15:59 2016 +0000
Revision:
2:ca36ecca24c2
Parent:
1:728e5b5c8dae
Child:
4:0b5a199e91f3
Revision 2016.05.03

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joon874 0:5886f525a4ad 1 #include <stdio.h>
joon874 0:5886f525a4ad 2 #include <stdlib.h>
joon874 0:5886f525a4ad 3 #include <string.h>
joon874 0:5886f525a4ad 4 #include "RequestHandler.h"
joon874 0:5886f525a4ad 5 #include "MbedJSONValue.h"
joon874 0:5886f525a4ad 6
joon874 0:5886f525a4ad 7 extern MbedJSONValue WIZwikiREST;
joon874 0:5886f525a4ad 8
joon874 0:5886f525a4ad 9 void GetRequestHandler::handle(char* rest_uri, char *reply)
joon874 0:5886f525a4ad 10 {
joon874 0:5886f525a4ad 11 MbedJSONValue* tmpJson;
joon874 0:5886f525a4ad 12
joon874 0:5886f525a4ad 13 char* tok;
joon874 0:5886f525a4ad 14 char* last;
joon874 2:ca36ecca24c2 15 const char * pchar = 0;
joon874 2:ca36ecca24c2 16 #ifdef DEBUG_HTTPREQ
joon874 0:5886f525a4ad 17 printf("GetRequestHandler():%s\r\n",rest_uri);
joon874 2:ca36ecca24c2 18 #endif
joon874 0:5886f525a4ad 19 if(!strcmp(rest_uri, "/"))
joon874 0:5886f525a4ad 20 {
joon874 2:ca36ecca24c2 21 tmpJson = &WIZwikiREST;
joon874 0:5886f525a4ad 22 }
joon874 2:ca36ecca24c2 23 else
joon874 2:ca36ecca24c2 24 {
joon874 0:5886f525a4ad 25 tok = strtok_r(rest_uri+1, "/", &last); // 20160226
joon874 0:5886f525a4ad 26 tmpJson = &WIZwikiREST;
joon874 2:ca36ecca24c2 27
joon874 2:ca36ecca24c2 28 char depth = 0;
joon874 2:ca36ecca24c2 29 char* name = 0;
joon874 2:ca36ecca24c2 30 while(tok)
joon874 2:ca36ecca24c2 31 {
joon874 2:ca36ecca24c2 32 #ifdef DEBUG_HTTPREQ
joon874 2:ca36ecca24c2 33 printf("tok = %s \r\n", tok); // Name
joon874 2:ca36ecca24c2 34 #endif
joon874 2:ca36ecca24c2 35 if(tmpJson->hasMember(tok))
joon874 2:ca36ecca24c2 36 {
joon874 2:ca36ecca24c2 37 tmpJson = &((*tmpJson)[tok]);
joon874 2:ca36ecca24c2 38 name = tok;
joon874 2:ca36ecca24c2 39 tok = strtok_r(0, "/", &last);
joon874 2:ca36ecca24c2 40 depth++;
joon874 2:ca36ecca24c2 41 }
joon874 2:ca36ecca24c2 42 else
joon874 2:ca36ecca24c2 43 {
joon874 2:ca36ecca24c2 44 #ifdef DEBUG_HTTPREQ
joon874 2:ca36ecca24c2 45 printf("No Member\r\n");
joon874 2:ca36ecca24c2 46 #endif
joon874 2:ca36ecca24c2 47 break;
joon874 2:ca36ecca24c2 48 }
joon874 2:ca36ecca24c2 49 }
joon874 2:ca36ecca24c2 50 if(name)
joon874 0:5886f525a4ad 51 {
joon874 2:ca36ecca24c2 52 if(tok)
joon874 2:ca36ecca24c2 53 {
joon874 2:ca36ecca24c2 54 if(tmpJson->accessible)
joon874 2:ca36ecca24c2 55 {
joon874 2:ca36ecca24c2 56 #ifdef DEBUG_HTTPREQ
joon874 2:ca36ecca24c2 57 printf("accessible : tmpJson->size()=%d\r\n",tmpJson->size());
joon874 2:ca36ecca24c2 58 #endif
joon874 2:ca36ecca24c2 59
joon874 2:ca36ecca24c2 60 if(tmpJson->size() > 0) {
joon874 2:ca36ecca24c2 61 *tmpJson = std::string(tok);
joon874 2:ca36ecca24c2 62 tmpJson->cb_action((void*)tok);
joon874 2:ca36ecca24c2 63 #ifdef DEBUG_HTTPREQ
joon874 2:ca36ecca24c2 64 printf("set string:%s\r\n",tok);
joon874 2:ca36ecca24c2 65 #endif
joon874 2:ca36ecca24c2 66 }
joon874 2:ca36ecca24c2 67 else {
joon874 2:ca36ecca24c2 68 *tmpJson = atoi(tok);
joon874 2:ca36ecca24c2 69 tmpJson->cb_action(&tmpJson->_value);
joon874 2:ca36ecca24c2 70 #ifdef DEBUG_HTTPREQ
joon874 2:ca36ecca24c2 71 printf("set int:%d\r\n",atoi(tok));
joon874 2:ca36ecca24c2 72 #endif
joon874 2:ca36ecca24c2 73 }
joon874 2:ca36ecca24c2 74 }
joon874 2:ca36ecca24c2 75 else
joon874 2:ca36ecca24c2 76 {
joon874 2:ca36ecca24c2 77 strcpy (reply, "HTTP/1.1 403 OK\r\n");
joon874 2:ca36ecca24c2 78 strcat (reply, "Sever: WIZwiki-REST\r\n");
joon874 2:ca36ecca24c2 79 strcat (reply, "content-Type: text/json\r\n");
joon874 2:ca36ecca24c2 80 sprintf(reply + strlen(reply), "Content-Length: %d\r\n\r\n", 26+4);
joon874 2:ca36ecca24c2 81 strcat(reply, "{\"Result : No Accessible\"}");
joon874 2:ca36ecca24c2 82 strcat (reply, "\r\n\r\n");
joon874 2:ca36ecca24c2 83 return;
joon874 2:ca36ecca24c2 84 }
joon874 2:ca36ecca24c2 85 }
MidnightCow 1:728e5b5c8dae 86 }
joon874 0:5886f525a4ad 87 else
joon874 0:5886f525a4ad 88 {
joon874 2:ca36ecca24c2 89 strcpy (reply, "HTTP/1.1 404 OK\r\n");
joon874 2:ca36ecca24c2 90 strcat (reply, "Sever: WIZwiki-REST\r\n");
joon874 2:ca36ecca24c2 91 strcat (reply, "content-Type: text/json\r\n");
joon874 2:ca36ecca24c2 92 sprintf(reply + strlen(reply), "Content-Length: %d\r\n\r\n", 33+4);
joon874 2:ca36ecca24c2 93 strcat(reply, "{\"Result\" : \"No defined Resource\"}");
joon874 2:ca36ecca24c2 94 strcat (reply, "\r\n\r\n");
joon874 2:ca36ecca24c2 95 return;
joon874 0:5886f525a4ad 96 }
MidnightCow 1:728e5b5c8dae 97 }
joon874 2:ca36ecca24c2 98 pchar = (*tmpJson).serialize().c_str();
joon874 2:ca36ecca24c2 99 strcpy (reply, "HTTP/1.1 200 OK\r\n");
joon874 2:ca36ecca24c2 100 strcat (reply, "Sever: WIZwiki-REST\r\n");
joon874 2:ca36ecca24c2 101 strcat (reply, "content-Type: text/json\r\n");
joon874 2:ca36ecca24c2 102 sprintf(reply + strlen(reply), "Content-Length: %d\r\n\r\n", strlen(pchar)+4);
joon874 2:ca36ecca24c2 103 strcat (reply, pchar);
joon874 2:ca36ecca24c2 104 strcat (reply, "\r\n\r\n");
joon874 2:ca36ecca24c2 105
MidnightCow 1:728e5b5c8dae 106 return;
joon874 0:5886f525a4ad 107 }
joon874 0:5886f525a4ad 108
joon874 0:5886f525a4ad 109 void PutRequestHandler::handle(char* rest_uri, char *reply)
joon874 0:5886f525a4ad 110 {
joon874 0:5886f525a4ad 111 }
joon874 0:5886f525a4ad 112
joon874 0:5886f525a4ad 113 void DeleteRequestHandler::handle(char* rest_uri, char *reply)
joon874 0:5886f525a4ad 114 {
joon874 0:5886f525a4ad 115 }