First

Dependents:   mbed-os-rest-api-V1-1 mbed-os-rest-api-V1-2 mbed-os-rest-api-V1-2-2

Committer:
asaewing
Date:
Mon Oct 08 00:49:17 2018 +0000
Revision:
0:b3b078af7b16
Child:
1:4db49ba6e885
First;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
asaewing 0:b3b078af7b16 1 #include "module_for_all.h"
asaewing 0:b3b078af7b16 2
asaewing 0:b3b078af7b16 3 RestAPI_Manager::RestAPI_Manager() {
asaewing 0:b3b078af7b16 4 _ip = "192.168.20.101";
asaewing 0:b3b078af7b16 5 _ip_s = std::string(_ip);
asaewing 0:b3b078af7b16 6 _main = 1;
asaewing 0:b3b078af7b16 7 }
asaewing 0:b3b078af7b16 8
asaewing 0:b3b078af7b16 9 RestAPI_Manager::RestAPI_Manager(char* IP, std::string Main) {
asaewing 0:b3b078af7b16 10 _ip = IP;
asaewing 0:b3b078af7b16 11 _ip_s = std::string(_ip);
asaewing 0:b3b078af7b16 12 _main = Main;
asaewing 0:b3b078af7b16 13 }
asaewing 0:b3b078af7b16 14
asaewing 0:b3b078af7b16 15 void RestAPI_Manager::SetConfig(char* IP, std::string Main) {
asaewing 0:b3b078af7b16 16 _ip = IP;
asaewing 0:b3b078af7b16 17 _ip_s = std::string(_ip);
asaewing 0:b3b078af7b16 18 _main = Main;
asaewing 0:b3b078af7b16 19 printf("RestAPI_Manager::SetConfig OK\r\n");
asaewing 0:b3b078af7b16 20 }
asaewing 0:b3b078af7b16 21
asaewing 0:b3b078af7b16 22 std::string RestAPI_Manager::runCommand(std::string HTTP_METHOD, std::string API_COMMAND) {
asaewing 0:b3b078af7b16 23 std::string _response = "";
asaewing 0:b3b078af7b16 24
asaewing 0:b3b078af7b16 25 if (HTTP_METHOD.compare("GET") == 0) {
asaewing 0:b3b078af7b16 26 _response.append(switchCommand_GET(API_COMMAND));
asaewing 0:b3b078af7b16 27 //_response.append("001 GET");
asaewing 0:b3b078af7b16 28
asaewing 0:b3b078af7b16 29 } else if (HTTP_METHOD.compare("POST") == 0) {
asaewing 0:b3b078af7b16 30 _response.append(switchCommand_POST(API_COMMAND));
asaewing 0:b3b078af7b16 31 //_response.append("002 POST");
asaewing 0:b3b078af7b16 32
asaewing 0:b3b078af7b16 33 } else {
asaewing 0:b3b078af7b16 34 /*response.append("\r\n");
asaewing 0:b3b078af7b16 35 response.append(HTTP_HEADER_FIELDS);
asaewing 0:b3b078af7b16 36 response.append("\r\n\r\n");
asaewing 0:b3b078af7b16 37 response.append("000 No Method\r\n");*/
asaewing 0:b3b078af7b16 38 //makeResponse("000 No Method");
asaewing 0:b3b078af7b16 39 _response.append("000 No Method");
asaewing 0:b3b078af7b16 40 }
asaewing 0:b3b078af7b16 41
asaewing 0:b3b078af7b16 42 return _response;
asaewing 0:b3b078af7b16 43 }
asaewing 0:b3b078af7b16 44
asaewing 0:b3b078af7b16 45 std::string RestAPI_Manager::switchCommand_GET(std::string API_COMMAND) {
asaewing 0:b3b078af7b16 46 int count = countRoot(API_COMMAND);
asaewing 0:b3b078af7b16 47
asaewing 0:b3b078af7b16 48 std::vector<std::string> _commandList;
asaewing 0:b3b078af7b16 49 _commandList.reserve(10);
asaewing 0:b3b078af7b16 50 split(API_COMMAND, _commandList, "/");
asaewing 0:b3b078af7b16 51
asaewing 0:b3b078af7b16 52 std::string returnString = "";
asaewing 0:b3b078af7b16 53
asaewing 0:b3b078af7b16 54 //returnString.append(_commandList[0]);
asaewing 0:b3b078af7b16 55 //returnString.append("\r\n");
asaewing 0:b3b078af7b16 56
asaewing 0:b3b078af7b16 57 if (_commandList[0].compare("who") == 0) {
asaewing 0:b3b078af7b16 58 /*printf("mbed #");
asaewing 0:b3b078af7b16 59 printf(_main);
asaewing 0:b3b078af7b16 60 printf("mbed #\r\n");*/
asaewing 0:b3b078af7b16 61 returnString.append("mbed #");
asaewing 0:b3b078af7b16 62 //char* tmpS;
asaewing 0:b3b078af7b16 63 //sprintf(tmpS,"%d",_main);
asaewing 0:b3b078af7b16 64 //std::string tmpS2(tmpS);
asaewing 0:b3b078af7b16 65 returnString.append(_main);
asaewing 0:b3b078af7b16 66 returnString.append("\r\n");
asaewing 0:b3b078af7b16 67 returnString.append(_ip_s);
asaewing 0:b3b078af7b16 68 } else if (_commandList[0].compare("ir_test") == 0) {
asaewing 0:b3b078af7b16 69
asaewing 0:b3b078af7b16 70 AnalogIn IR_Test(PA_3);
asaewing 0:b3b078af7b16 71 float tmp_v = IR_Test.read()*1000.0f;
asaewing 0:b3b078af7b16 72 printf("Voltage: %f\n", tmp_v);
asaewing 0:b3b078af7b16 73
asaewing 0:b3b078af7b16 74 /*std::ostringstream ss;
asaewing 0:b3b078af7b16 75 ss << tmp_v;
asaewing 0:b3b078af7b16 76 std::string ss2(ss.str());*/
asaewing 0:b3b078af7b16 77
asaewing 0:b3b078af7b16 78 /*printf("mbed #");
asaewing 0:b3b078af7b16 79 printf(_main);
asaewing 0:b3b078af7b16 80 printf("mbed #\r\n");*/
asaewing 0:b3b078af7b16 81
asaewing 0:b3b078af7b16 82
asaewing 0:b3b078af7b16 83 char* tmpS;
asaewing 0:b3b078af7b16 84 sprintf(tmpS,"%5.5f%",tmp_v);
asaewing 0:b3b078af7b16 85 std::string tmpS2(tmpS);
asaewing 0:b3b078af7b16 86 returnString.append(tmpS);
asaewing 0:b3b078af7b16 87 } else {
asaewing 0:b3b078af7b16 88 returnString.append("No Command");
asaewing 0:b3b078af7b16 89 }
asaewing 0:b3b078af7b16 90 /*std::string tmp = "";
asaewing 0:b3b078af7b16 91
asaewing 0:b3b078af7b16 92 //char buf[20];
asaewing 0:b3b078af7b16 93 char* buf;
asaewing 0:b3b078af7b16 94 sprintf(buf,"%03d", count);
asaewing 0:b3b078af7b16 95 string tmpCount(buf);
asaewing 0:b3b078af7b16 96 tmp.append("count:");
asaewing 0:b3b078af7b16 97 tmp.append(tmpCount);
asaewing 0:b3b078af7b16 98 tmp.append("\r\n");
asaewing 0:b3b078af7b16 99
asaewing 0:b3b078af7b16 100 for(int ii=0;ii<count-1;ii++) {
asaewing 0:b3b078af7b16 101 sprintf(buf,"%03d", ii);
asaewing 0:b3b078af7b16 102 string tmpII(buf);
asaewing 0:b3b078af7b16 103
asaewing 0:b3b078af7b16 104 tmp.append(tmpII);
asaewing 0:b3b078af7b16 105 tmp.append(":");
asaewing 0:b3b078af7b16 106 tmp.append(_commandList[ii]);
asaewing 0:b3b078af7b16 107 tmp.append(",");
asaewing 0:b3b078af7b16 108 }
asaewing 0:b3b078af7b16 109 tmp.append("\r\n");
asaewing 0:b3b078af7b16 110 tmp.append(API_COMMAND);
asaewing 0:b3b078af7b16 111
asaewing 0:b3b078af7b16 112 printf("### %%% \r\n");
asaewing 0:b3b078af7b16 113 printf(stringToChar(API_COMMAND));
asaewing 0:b3b078af7b16 114 printf("\r\n");
asaewing 0:b3b078af7b16 115 printf(stringToChar(tmp));
asaewing 0:b3b078af7b16 116 printf("### %%% \r\n");
asaewing 0:b3b078af7b16 117 return tmp;*/
asaewing 0:b3b078af7b16 118
asaewing 0:b3b078af7b16 119 return returnString;
asaewing 0:b3b078af7b16 120 }
asaewing 0:b3b078af7b16 121
asaewing 0:b3b078af7b16 122 std::string RestAPI_Manager::switchCommand_POST(std::string API_COMMAND) {
asaewing 0:b3b078af7b16 123 /*int count = countRoot(API_COMMAND);
asaewing 0:b3b078af7b16 124
asaewing 0:b3b078af7b16 125 std::vector<std::string> _commandList;
asaewing 0:b3b078af7b16 126 _commandList.reserve(10);
asaewing 0:b3b078af7b16 127 split(API_COMMAND, _commandList, "/");
asaewing 0:b3b078af7b16 128 std::string tmp = "";
asaewing 0:b3b078af7b16 129
asaewing 0:b3b078af7b16 130 char buf[20];
asaewing 0:b3b078af7b16 131 sprintf(buf,"%03d", count);
asaewing 0:b3b078af7b16 132 string tmpCount(buf);
asaewing 0:b3b078af7b16 133 tmp.append("count:");
asaewing 0:b3b078af7b16 134 tmp.append(tmpCount);
asaewing 0:b3b078af7b16 135 tmp.append("\r\n");
asaewing 0:b3b078af7b16 136
asaewing 0:b3b078af7b16 137 for(int ii=0;ii<count-1;ii++) {
asaewing 0:b3b078af7b16 138 sprintf(buf,"%03d", ii);
asaewing 0:b3b078af7b16 139 string tmpII(buf);
asaewing 0:b3b078af7b16 140
asaewing 0:b3b078af7b16 141 tmp.append(tmpII);
asaewing 0:b3b078af7b16 142 tmp.append(":");
asaewing 0:b3b078af7b16 143 tmp.append(_commandList[ii]);
asaewing 0:b3b078af7b16 144 tmp.append(",");
asaewing 0:b3b078af7b16 145 }
asaewing 0:b3b078af7b16 146 tmp.append("\r\n");
asaewing 0:b3b078af7b16 147 tmp.append(API_COMMAND);
asaewing 0:b3b078af7b16 148
asaewing 0:b3b078af7b16 149 printf("### %%% \r\n");
asaewing 0:b3b078af7b16 150 printf(stringToChar(API_COMMAND));
asaewing 0:b3b078af7b16 151 printf("\r\n");
asaewing 0:b3b078af7b16 152 printf(stringToChar(tmp));
asaewing 0:b3b078af7b16 153 printf("### %%% \r\n");
asaewing 0:b3b078af7b16 154 return tmp;*/
asaewing 0:b3b078af7b16 155 int count = countRoot(API_COMMAND);
asaewing 0:b3b078af7b16 156
asaewing 0:b3b078af7b16 157 std::vector<std::string> _commandList;
asaewing 0:b3b078af7b16 158 _commandList.reserve(10);
asaewing 0:b3b078af7b16 159 split(API_COMMAND, _commandList, "/");
asaewing 0:b3b078af7b16 160
asaewing 0:b3b078af7b16 161 std::string returnString = "";
asaewing 0:b3b078af7b16 162
asaewing 0:b3b078af7b16 163 //returnString.append(_commandList[0]);
asaewing 0:b3b078af7b16 164 //returnString.append("\r\n");
asaewing 0:b3b078af7b16 165
asaewing 0:b3b078af7b16 166 if (_commandList[0].compare("who2") == 0) {
asaewing 0:b3b078af7b16 167 /*printf("mbed #");
asaewing 0:b3b078af7b16 168 printf(_main);
asaewing 0:b3b078af7b16 169 printf("mbed #\r\n");*/
asaewing 0:b3b078af7b16 170 returnString.append("mbed #");
asaewing 0:b3b078af7b16 171 //char* tmpS;
asaewing 0:b3b078af7b16 172 //sprintf(tmpS,"%d",_main);
asaewing 0:b3b078af7b16 173 //std::string tmpS2(tmpS);
asaewing 0:b3b078af7b16 174 returnString.append(_main);
asaewing 0:b3b078af7b16 175 returnString.append("\r\n");
asaewing 0:b3b078af7b16 176 returnString.append(_ip_s);
asaewing 0:b3b078af7b16 177 } else {
asaewing 0:b3b078af7b16 178 returnString.append("No Command");
asaewing 0:b3b078af7b16 179 }
asaewing 0:b3b078af7b16 180
asaewing 0:b3b078af7b16 181 return returnString;
asaewing 0:b3b078af7b16 182 }