post sensor data to esp yun

Dependencies:   WIZnetInterface mbed

Fork of espyun by root root

Committer:
jh_ndm
Date:
Fri Nov 04 02:29:00 2016 +0000
Revision:
1:3550659bd872
Parent:
0:af541535ef54
Child:
2:00baa8aaaaf1
http to esp v0.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jehoon 0:af541535ef54 1 #include "mbed.h"
jehoon 0:af541535ef54 2 #include "EthernetInterface.h"
jh_ndm 1:3550659bd872 3 #include "cJSON.h"
jehoon 0:af541535ef54 4
jh_ndm 1:3550659bd872 5 //AnalogIn Gas(A2);
jh_ndm 1:3550659bd872 6 int socketPort = 8000;
jh_ndm 1:3550659bd872 7 int httpPort = 80;
jh_ndm 1:3550659bd872 8
jh_ndm 1:3550659bd872 9 Serial pc(PA_13,PA_14);
jh_ndm 1:3550659bd872 10
jh_ndm 1:3550659bd872 11 char path[]="/v1/datastreams/test/datapoint/";
jh_ndm 1:3550659bd872 12
jh_ndm 1:3550659bd872 13 int MallocSize = 800*sizeof(char);
jh_ndm 1:3550659bd872 14 bool socket_GET(TCPSocketConnection &conn);
jh_ndm 1:3550659bd872 15 bool http_GET(TCPSocketConnection &conn);
jh_ndm 1:3550659bd872 16 bool http_POST(TCPSocketConnection &conn);
jh_ndm 1:3550659bd872 17 bool socket_POST(TCPSocketConnection &conn,int vall);
jh_ndm 1:3550659bd872 18 bool closeConnect(TCPSocketConnection &conn);
jh_ndm 1:3550659bd872 19
jh_ndm 1:3550659bd872 20 float val;
jh_ndm 1:3550659bd872 21 int mathtest;
jh_ndm 1:3550659bd872 22 bool out=false;
jh_ndm 1:3550659bd872 23
jh_ndm 1:3550659bd872 24 int main() {
jh_ndm 1:3550659bd872 25 pc.baud(115200);
jehoon 0:af541535ef54 26 int phy_link;
jh_ndm 1:3550659bd872 27 pc.printf("Wait a second...\r\n");
jh_ndm 1:3550659bd872 28 uint8_t mac_addr[6] = {0x78, 0x08, 0xDC, 0x1c, 0xa8, 0x95};
jehoon 0:af541535ef54 29
jehoon 0:af541535ef54 30 EthernetInterface eth;
jehoon 0:af541535ef54 31 eth.init(mac_addr); //Use DHCP
jehoon 0:af541535ef54 32 eth.connect();
jh_ndm 1:3550659bd872 33 pc.printf("start IP Address is %s\r\n", eth.getIPAddress());
jh_ndm 1:3550659bd872 34 /*
jh_ndm 1:3550659bd872 35 do{
jh_ndm 1:3550659bd872 36 phy_link = eth.ethernet_link();
jh_ndm 1:3550659bd872 37 pc.printf("...");
jh_ndm 1:3550659bd872 38 wait(2);
jh_ndm 1:3550659bd872 39 }while(!phy_link);
jh_ndm 1:3550659bd872 40 printf("\r\n");
jh_ndm 1:3550659bd872 41 */
jh_ndm 1:3550659bd872 42 pc.printf("IP Address is %s\r\n", eth.getIPAddress());
jh_ndm 1:3550659bd872 43
jh_ndm 1:3550659bd872 44 TCPSocketConnection conn;
jehoon 0:af541535ef54 45
jh_ndm 1:3550659bd872 46 while(true)
jh_ndm 1:3550659bd872 47 {
jh_ndm 1:3550659bd872 48 wait(1);
jh_ndm 1:3550659bd872 49 //val = Gas.read()*1023;
jh_ndm 1:3550659bd872 50 //int mathtest = ceil(val);//math.h
jh_ndm 1:3550659bd872 51 //pc.printf("Gas.read=%02f,n=%d\r\n",val,mathtest);
jh_ndm 1:3550659bd872 52 pc.printf("start http_post\r\n");
jh_ndm 1:3550659bd872 53 if(http_POST(conn))
jh_ndm 1:3550659bd872 54 {
jh_ndm 1:3550659bd872 55 if(!conn.close()){//短连接,断开一次连接一次
jh_ndm 1:3550659bd872 56 pc.printf("conn.close OK\r\n");
jh_ndm 1:3550659bd872 57 }else{
jh_ndm 1:3550659bd872 58 pc.printf("conn.close ERR\r\n");
jh_ndm 1:3550659bd872 59 break;
jh_ndm 1:3550659bd872 60 }
jh_ndm 1:3550659bd872 61 }else{
jh_ndm 1:3550659bd872 62 if(out)break;
jh_ndm 1:3550659bd872 63 pc.printf("connect close err!!!to do something\r\n");
jh_ndm 1:3550659bd872 64
jh_ndm 1:3550659bd872 65 }
jh_ndm 1:3550659bd872 66
jh_ndm 1:3550659bd872 67 //val = 0.0;
jh_ndm 1:3550659bd872 68 //mathtest = 0;
jh_ndm 1:3550659bd872 69
jh_ndm 1:3550659bd872 70 if(out)break;
jh_ndm 1:3550659bd872 71 }
jh_ndm 1:3550659bd872 72
jh_ndm 1:3550659bd872 73 eth.disconnect();
jh_ndm 1:3550659bd872 74 pc.printf("out the program!\r\n");
jh_ndm 1:3550659bd872 75 return 0;
jh_ndm 1:3550659bd872 76 }
jh_ndm 1:3550659bd872 77
jh_ndm 1:3550659bd872 78 /*socket GET*/
jh_ndm 1:3550659bd872 79 bool socket_GET(TCPSocketConnection &conn)
jh_ndm 1:3550659bd872 80 {
jh_ndm 1:3550659bd872 81 if(conn.is_connected()){
jh_ndm 1:3550659bd872 82 pc.printf("connect is already ok!\r\n");
jh_ndm 1:3550659bd872 83 }else{
jh_ndm 1:3550659bd872 84 if(!conn.connect("iot.espressif.cn", socketPort)) //80 for http,8000 for socket,处理超时,拔掉网线后,卡在conn.connect
jh_ndm 1:3550659bd872 85 pc.printf("connect OK!\r\n");
jh_ndm 1:3550659bd872 86 else{
jh_ndm 1:3550659bd872 87 pc.printf("connct ERR!\r\n");
jh_ndm 1:3550659bd872 88 out = true;
jh_ndm 1:3550659bd872 89 return false;
jh_ndm 1:3550659bd872 90 }
jh_ndm 1:3550659bd872 91 }
jh_ndm 1:3550659bd872 92
jh_ndm 1:3550659bd872 93 cJSON * pJsonRoot = NULL;
jh_ndm 1:3550659bd872 94 pJsonRoot = cJSON_CreateObject();
jh_ndm 1:3550659bd872 95 if(NULL == pJsonRoot)
jh_ndm 1:3550659bd872 96 {
jh_ndm 1:3550659bd872 97 pc.printf("socket_GET OUT1\r\n");
jh_ndm 1:3550659bd872 98 out = true;
jh_ndm 1:3550659bd872 99 return false;
jh_ndm 1:3550659bd872 100 }
jh_ndm 1:3550659bd872 101
jh_ndm 1:3550659bd872 102 cJSON * pSubJson = NULL;
jh_ndm 1:3550659bd872 103 pSubJson = cJSON_CreateObject();
jh_ndm 1:3550659bd872 104 if(NULL == pSubJson)
jh_ndm 1:3550659bd872 105 {
jh_ndm 1:3550659bd872 106 cJSON_Delete(pJsonRoot);
jh_ndm 1:3550659bd872 107 pc.printf("socket_GET OUT2\r\n");
jh_ndm 1:3550659bd872 108 out = true;
jh_ndm 1:3550659bd872 109 return false;
jh_ndm 1:3550659bd872 110 }
jh_ndm 1:3550659bd872 111
jh_ndm 1:3550659bd872 112 cJSON_AddStringToObject(pJsonRoot, "path", "/v1/datastreams/test/datapoint/");
jh_ndm 1:3550659bd872 113 cJSON_AddStringToObject(pSubJson, "Authorization", "token 48661aa81484f501362ed5ef4cc85e67eb2a3e3d");
jh_ndm 1:3550659bd872 114 cJSON_AddItemToObject(pJsonRoot, "meta", pSubJson);
jh_ndm 1:3550659bd872 115 cJSON_AddStringToObject(pJsonRoot, "method", "GET");
jh_ndm 1:3550659bd872 116
jh_ndm 1:3550659bd872 117 char* pJSON = cJSON_PrintUnformatted(pJsonRoot);
jh_ndm 1:3550659bd872 118 strcat(pJSON,"\n");//socket at the end should have '\n',use wireshark
jh_ndm 1:3550659bd872 119
jh_ndm 1:3550659bd872 120 if(NULL == pJSON)
jh_ndm 1:3550659bd872 121 {
jh_ndm 1:3550659bd872 122 cJSON_Delete(pJsonRoot);
jh_ndm 1:3550659bd872 123 pc.printf("socket_GET OUT3\r\n");
jh_ndm 1:3550659bd872 124 out = true;
jh_ndm 1:3550659bd872 125 return false;
jh_ndm 1:3550659bd872 126 }
jh_ndm 1:3550659bd872 127
jh_ndm 1:3550659bd872 128 conn.send_all(pJSON, strlen(pJSON));//http_cmd for http,pJSON for socket,should be three changes
jh_ndm 1:3550659bd872 129 pc.printf("%s\r\n",pJSON);
jh_ndm 1:3550659bd872 130
jh_ndm 1:3550659bd872 131 char *buffer = NULL;
jh_ndm 1:3550659bd872 132 buffer = (char *)malloc(MallocSize);
jh_ndm 1:3550659bd872 133 if(!buffer)pc.printf("malloc buffer err\r\n");
jh_ndm 1:3550659bd872 134 int ret;
jh_ndm 1:3550659bd872 135
jh_ndm 1:3550659bd872 136 while (true) {
jh_ndm 1:3550659bd872 137 wait(1);
jh_ndm 1:3550659bd872 138 ret = conn.receive(buffer, MallocSize-1);
jh_ndm 1:3550659bd872 139 pc.printf("ret = %d\r\n",ret);
jh_ndm 1:3550659bd872 140 if (ret <= 0) {
jh_ndm 1:3550659bd872 141 break;
jh_ndm 1:3550659bd872 142 }
jh_ndm 1:3550659bd872 143 buffer[ret] = '\0';
jh_ndm 1:3550659bd872 144 pc.printf("Received %d chars from server: %s\n", ret, buffer);
jh_ndm 1:3550659bd872 145 }
jh_ndm 1:3550659bd872 146 pc.printf("socket_GET OUT\r\n");
jh_ndm 1:3550659bd872 147
jh_ndm 1:3550659bd872 148 free(pJSON);//for socket
jh_ndm 1:3550659bd872 149 cJSON_Delete(pJsonRoot);//for socket
jh_ndm 1:3550659bd872 150 free(buffer);
jh_ndm 1:3550659bd872 151 return true;
jh_ndm 1:3550659bd872 152 }
jh_ndm 1:3550659bd872 153
jh_ndm 1:3550659bd872 154 /*http_GET*/
jh_ndm 1:3550659bd872 155 bool http_GET(TCPSocketConnection &conn)
jh_ndm 1:3550659bd872 156 {
jh_ndm 1:3550659bd872 157 if(conn.is_connected()){
jh_ndm 1:3550659bd872 158 pc.printf("connect is already ok!\r\n");
jh_ndm 1:3550659bd872 159 }else{
jh_ndm 1:3550659bd872 160 if(!conn.connect("iot.espressif.cn", httpPort)) //80 for http,8000 for socket
jh_ndm 1:3550659bd872 161 pc.printf("connect OK!\r\n");
jh_ndm 1:3550659bd872 162 else{
jh_ndm 1:3550659bd872 163 pc.printf("connct ERR!\r\n");
jh_ndm 1:3550659bd872 164 out = true;
jh_ndm 1:3550659bd872 165 return false;
jh_ndm 1:3550659bd872 166 }
jh_ndm 1:3550659bd872 167 }
jh_ndm 1:3550659bd872 168
jh_ndm 1:3550659bd872 169 char http_cmd[] = "GET /v1/datastreams/Gas/datapoint/ HTTP/1.1\r\nUser-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3\r\n"\
jh_ndm 1:3550659bd872 170 "Host:iot.espressif.cn\r\nAccept: */*\r\nAuthorization: token ebe1671e9d9f42a5231d017ec550552b9bae2cdf\r\n\r\n";
jh_ndm 1:3550659bd872 171
jh_ndm 1:3550659bd872 172 conn.send_all(http_cmd, strlen(http_cmd));//http_cmd for http,pJSON for socket,should be three changes
jh_ndm 1:3550659bd872 173 pc.printf("%s\r\n",http_cmd);
jh_ndm 1:3550659bd872 174
jh_ndm 1:3550659bd872 175 //char *buffer = NULL;
jh_ndm 1:3550659bd872 176 //buffer = (char *)malloc(MallocSize);
jh_ndm 1:3550659bd872 177 //if(!buffer)pc.printf("malloc buffer err\r\n");
jh_ndm 1:3550659bd872 178 char buffer[500];
jh_ndm 1:3550659bd872 179 int ret;
jh_ndm 1:3550659bd872 180
jh_ndm 1:3550659bd872 181 while (true) {
jh_ndm 1:3550659bd872 182 wait(1);
jh_ndm 1:3550659bd872 183 ret = conn.receive(buffer, 500-1);
jh_ndm 1:3550659bd872 184 pc.printf("ret = %d\r\n",ret);
jh_ndm 1:3550659bd872 185 if (ret <= 0) {
jh_ndm 1:3550659bd872 186 break;
jh_ndm 1:3550659bd872 187 }
jh_ndm 1:3550659bd872 188 buffer[ret] = '\0';
jh_ndm 1:3550659bd872 189 pc.printf("Received %d chars from server: %s\n", ret, buffer);
jh_ndm 1:3550659bd872 190 }
jh_ndm 1:3550659bd872 191 pc.printf("http_GET OUT\r\n");
jh_ndm 1:3550659bd872 192 /* ///conn.close已经放到main中,55 行
jh_ndm 1:3550659bd872 193 if(conn.close()){
jh_ndm 1:3550659bd872 194 pc.printf("conn.close OK\r\n");
jh_ndm 1:3550659bd872 195 }else{
jh_ndm 1:3550659bd872 196 pc.printf("conn.close ERR\r\n");
jh_ndm 1:3550659bd872 197 }
jh_ndm 1:3550659bd872 198 */
jh_ndm 1:3550659bd872 199 //free(buffer);
jh_ndm 1:3550659bd872 200 return true;
jh_ndm 1:3550659bd872 201 }
jh_ndm 1:3550659bd872 202
jh_ndm 1:3550659bd872 203 /*http POST*/
jh_ndm 1:3550659bd872 204 bool http_POST(TCPSocketConnection &conn)
jh_ndm 1:3550659bd872 205 {
jh_ndm 1:3550659bd872 206 pc.printf("1111\r\n");
jh_ndm 1:3550659bd872 207 wait(0.5);
jh_ndm 1:3550659bd872 208 if(conn.is_connected()){
jh_ndm 1:3550659bd872 209 pc.printf("connect is already ok!\r\n");
jh_ndm 1:3550659bd872 210 }else{
jh_ndm 1:3550659bd872 211 if(!conn.connect("iot.espressif.cn", httpPort)) //80 for http,8000 for socket
jh_ndm 1:3550659bd872 212 pc.printf("connect OK!\r\n");
jh_ndm 1:3550659bd872 213 else{
jh_ndm 1:3550659bd872 214 pc.printf("connct ERR!\r\n");
jh_ndm 1:3550659bd872 215 out = true;
jh_ndm 1:3550659bd872 216 return false;
jh_ndm 1:3550659bd872 217 }
jh_ndm 1:3550659bd872 218 }
jh_ndm 1:3550659bd872 219 pc.printf("2222\r\n");
jh_ndm 1:3550659bd872 220 cJSON* http_post=NULL;
jh_ndm 1:3550659bd872 221 http_post = cJSON_CreateObject();
jh_ndm 1:3550659bd872 222 if(NULL == http_post)
jh_ndm 1:3550659bd872 223 {
jh_ndm 1:3550659bd872 224 pc.printf("OUT4\r\n");
jh_ndm 1:3550659bd872 225 out = true;
jh_ndm 1:3550659bd872 226 return false;
jh_ndm 1:3550659bd872 227 }
jh_ndm 1:3550659bd872 228 pc.printf("3333\r\n");
jh_ndm 1:3550659bd872 229 cJSON* http_post_json=NULL;
jh_ndm 1:3550659bd872 230 http_post_json = cJSON_CreateObject();
jh_ndm 1:3550659bd872 231 if(NULL == http_post_json)
jh_ndm 1:3550659bd872 232 {
jh_ndm 1:3550659bd872 233 cJSON_Delete(http_post);
jh_ndm 1:3550659bd872 234 pc.printf("OUT5\r\n");
jh_ndm 1:3550659bd872 235 out = true;
jh_ndm 1:3550659bd872 236 return false;
jh_ndm 1:3550659bd872 237 }
jh_ndm 1:3550659bd872 238 cJSON_AddNumberToObject(http_post_json, "x", 2);
jh_ndm 1:3550659bd872 239 //cJSON_AddNumberToObject(http_post_json, "y", 2);
jh_ndm 1:3550659bd872 240 //cJSON_AddNumberToObject(http_post_json, "z", 2);
jh_ndm 1:3550659bd872 241 cJSON_AddItemToObject(http_post, "datapoint", http_post_json);
jh_ndm 1:3550659bd872 242 char* pJSON_http_post = cJSON_PrintUnformatted(http_post);
jh_ndm 1:3550659bd872 243 pc.printf("4444\r\n");
jh_ndm 1:3550659bd872 244 if(NULL == pJSON_http_post)
jh_ndm 1:3550659bd872 245 {
jh_ndm 1:3550659bd872 246 cJSON_Delete(http_post);
jh_ndm 1:3550659bd872 247 pc.printf("OUT6\r\n");
jh_ndm 1:3550659bd872 248 out = true;
jh_ndm 1:3550659bd872 249 return false;
jh_ndm 1:3550659bd872 250 }
jh_ndm 1:3550659bd872 251
jh_ndm 1:3550659bd872 252 //Pay attention to out of memory
jh_ndm 1:3550659bd872 253 //char http_POST_cmd[500] = "POST /v1/datastreams/jhtest/datapoint/ HTTP/1.1\r\nUser-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3\r\n"\
jh_ndm 1:3550659bd872 254 // "Host:iot.espressif.cn\r\nAccept: */*\r\nAuthorization: token ebe1671e9d9f42a5231d017ec550552b9bae2cdf\r\n"\
jh_ndm 1:3550659bd872 255 // "Content-Length: 33\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n";
jh_ndm 1:3550659bd872 256 char http_POST_cmd[500] = "POST /v1/datastreams/test/datapoint/ HTTP/1.1\r\nUser-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3\r\n"\
jh_ndm 1:3550659bd872 257 "Host:iot.espressif.cn\r\nAccept: */*\r\nAuthorization: token 48661aa81484f501362ed5ef4cc85e67eb2a3e3d\r\n"\
jh_ndm 1:3550659bd872 258 "Content-Length: ";
jh_ndm 1:3550659bd872 259 char len[2];
jh_ndm 1:3550659bd872 260 len[0]=strlen(pJSON_http_post)/10%10+48;
jh_ndm 1:3550659bd872 261 len[1]=strlen(pJSON_http_post)%10+48;
jh_ndm 1:3550659bd872 262 strcat(http_POST_cmd,len);
jh_ndm 1:3550659bd872 263 strcat(http_POST_cmd,"\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n");
jehoon 0:af541535ef54 264
jh_ndm 1:3550659bd872 265 strcat(http_POST_cmd,pJSON_http_post);
jh_ndm 1:3550659bd872 266 conn.send_all(http_POST_cmd, strlen(http_POST_cmd));//http_cmd for http,pJSON for socket,should be three changes
jh_ndm 1:3550659bd872 267 pc.printf("%s\r\n",http_POST_cmd);
jh_ndm 1:3550659bd872 268 pc.printf("5555\r\n");
jh_ndm 1:3550659bd872 269 char *buffer = NULL;
jh_ndm 1:3550659bd872 270 buffer = (char *)malloc(MallocSize);
jh_ndm 1:3550659bd872 271 if(!buffer)pc.printf("malloc buffer err\r\n");
jh_ndm 1:3550659bd872 272
jh_ndm 1:3550659bd872 273 int ret;
jh_ndm 1:3550659bd872 274 pc.printf("6666\r\n");
jh_ndm 1:3550659bd872 275 while (true) {
jh_ndm 1:3550659bd872 276 wait(1);
jh_ndm 1:3550659bd872 277 ret = conn.receive(buffer, MallocSize-1);
jh_ndm 1:3550659bd872 278 pc.printf("ret = %d\r\n",ret);
jh_ndm 1:3550659bd872 279 if (ret <= 0) {
jh_ndm 1:3550659bd872 280 break;
jh_ndm 1:3550659bd872 281 }
jh_ndm 1:3550659bd872 282 buffer[ret] = '\0';
jh_ndm 1:3550659bd872 283 pc.printf("Received %d chars from server: %s\n", ret, buffer);
jh_ndm 1:3550659bd872 284 }
jh_ndm 1:3550659bd872 285 pc.printf("http_POST OUT\r\n");
jh_ndm 1:3550659bd872 286
jh_ndm 1:3550659bd872 287 free(pJSON_http_post);
jh_ndm 1:3550659bd872 288 free(buffer);
jh_ndm 1:3550659bd872 289 cJSON_Delete(http_post);
jh_ndm 1:3550659bd872 290 pc.printf("7777\r\n");
jh_ndm 1:3550659bd872 291 return true;
jh_ndm 1:3550659bd872 292 }
jh_ndm 1:3550659bd872 293
jh_ndm 1:3550659bd872 294 /*socket POST*/
jh_ndm 1:3550659bd872 295 bool socket_POST(TCPSocketConnection &conn,int vall)
jh_ndm 1:3550659bd872 296 {
jh_ndm 1:3550659bd872 297 if(conn.is_connected()){
jh_ndm 1:3550659bd872 298 pc.printf("connect is already ok!\r\n");
jh_ndm 1:3550659bd872 299 }else{
jh_ndm 1:3550659bd872 300 if(!conn.connect("iot.espressif.cn", socketPort)) //80 for http,8000 for socket
jh_ndm 1:3550659bd872 301 pc.printf("connect OK!\r\n");
jh_ndm 1:3550659bd872 302 else{
jh_ndm 1:3550659bd872 303 pc.printf("connct ERR!\r\n");
jh_ndm 1:3550659bd872 304 out = true;
jh_ndm 1:3550659bd872 305 return false;
jh_ndm 1:3550659bd872 306 }
jh_ndm 1:3550659bd872 307 }
jh_ndm 1:3550659bd872 308 cJSON* socket_post=NULL;
jh_ndm 1:3550659bd872 309 socket_post = cJSON_CreateObject();
jh_ndm 1:3550659bd872 310 if(NULL == socket_post)
jh_ndm 1:3550659bd872 311 {
jh_ndm 1:3550659bd872 312 pc.printf("OUT4\r\n");
jh_ndm 1:3550659bd872 313 out = true;
jh_ndm 1:3550659bd872 314 return false;
jh_ndm 1:3550659bd872 315 }
jh_ndm 1:3550659bd872 316
jh_ndm 1:3550659bd872 317
jh_ndm 1:3550659bd872 318 cJSON_AddStringToObject(socket_post, "path", path);
jh_ndm 1:3550659bd872 319 cJSON_AddStringToObject(socket_post, "method", "POST");
jh_ndm 1:3550659bd872 320
jh_ndm 1:3550659bd872 321 cJSON* sock_post_token=NULL;
jh_ndm 1:3550659bd872 322 sock_post_token = cJSON_CreateObject();
jh_ndm 1:3550659bd872 323 if(NULL == sock_post_token)
jh_ndm 1:3550659bd872 324 {
jh_ndm 1:3550659bd872 325 cJSON_Delete(socket_post);
jh_ndm 1:3550659bd872 326 pc.printf("OUT5\r\n");
jh_ndm 1:3550659bd872 327 out = true;
jh_ndm 1:3550659bd872 328 return false;
jh_ndm 1:3550659bd872 329 }
jh_ndm 1:3550659bd872 330 cJSON_AddStringToObject(sock_post_token, "Authorization", "token 514cc9c3aa07a4a56246cb9259c8264fd2ae56f6");
jh_ndm 1:3550659bd872 331 cJSON_AddItemToObject(socket_post, "meta", sock_post_token);
jehoon 0:af541535ef54 332
jh_ndm 1:3550659bd872 333 cJSON* sock_post_xyz=NULL;
jh_ndm 1:3550659bd872 334 sock_post_xyz = cJSON_CreateObject();
jh_ndm 1:3550659bd872 335 if(NULL == sock_post_xyz)
jh_ndm 1:3550659bd872 336 {
jh_ndm 1:3550659bd872 337 cJSON_Delete(socket_post);
jh_ndm 1:3550659bd872 338 pc.printf("OUT6\r\n");
jh_ndm 1:3550659bd872 339 out = true;
jh_ndm 1:3550659bd872 340 return false;
jh_ndm 1:3550659bd872 341 }
jh_ndm 1:3550659bd872 342 cJSON_AddNumberToObject(sock_post_xyz, "x", vall);
jh_ndm 1:3550659bd872 343 //cJSON_AddNumberToObject(sock_post_xyz, "y", 8);
jh_ndm 1:3550659bd872 344 //cJSON_AddNumberToObject(sock_post_xyz, "z", 8);
jh_ndm 1:3550659bd872 345 cJSON* sock_post_datapoint=NULL;
jh_ndm 1:3550659bd872 346 sock_post_datapoint = cJSON_CreateObject();
jh_ndm 1:3550659bd872 347 if(NULL == sock_post_datapoint)
jh_ndm 1:3550659bd872 348 {
jh_ndm 1:3550659bd872 349 cJSON_Delete(socket_post);
jh_ndm 1:3550659bd872 350 pc.printf("OUT6\r\n");
jh_ndm 1:3550659bd872 351 out = true;
jh_ndm 1:3550659bd872 352 return false;
jh_ndm 1:3550659bd872 353 }
jh_ndm 1:3550659bd872 354 cJSON_AddItemToObject(sock_post_datapoint, "datapoint", sock_post_xyz);
jh_ndm 1:3550659bd872 355 cJSON_AddItemToObject(socket_post, "body", sock_post_datapoint);
jh_ndm 1:3550659bd872 356
jh_ndm 1:3550659bd872 357 char* pJSON_sock_post = cJSON_PrintUnformatted(socket_post);
jh_ndm 1:3550659bd872 358
jh_ndm 1:3550659bd872 359 if(NULL == pJSON_sock_post)
jh_ndm 1:3550659bd872 360 {
jh_ndm 1:3550659bd872 361 cJSON_Delete(socket_post);
jh_ndm 1:3550659bd872 362 pc.printf("OUT7\r\n");
jh_ndm 1:3550659bd872 363 out = true;
jh_ndm 1:3550659bd872 364 return false;
jh_ndm 1:3550659bd872 365 }
jh_ndm 1:3550659bd872 366 strcat(pJSON_sock_post,"\n");
jh_ndm 1:3550659bd872 367
jh_ndm 1:3550659bd872 368 conn.send_all(pJSON_sock_post, strlen(pJSON_sock_post));//http_cmd for http,pJSON for socket,should be three changes
jh_ndm 1:3550659bd872 369 pc.printf("%s\r\n",pJSON_sock_post);
jh_ndm 1:3550659bd872 370
jh_ndm 1:3550659bd872 371 char *buffer = NULL;
jh_ndm 1:3550659bd872 372 buffer = (char *)malloc(MallocSize);
jh_ndm 1:3550659bd872 373 if(!buffer)pc.printf("malloc buffer err\r\n");
jh_ndm 1:3550659bd872 374
jh_ndm 1:3550659bd872 375 int ret;
jh_ndm 1:3550659bd872 376
jh_ndm 1:3550659bd872 377 while (true) {
jh_ndm 1:3550659bd872 378 ret = conn.receive(buffer, MallocSize-1);
jh_ndm 1:3550659bd872 379 pc.printf("ret = %d\r\n",ret);
jh_ndm 1:3550659bd872 380 if (ret <= 0) {
jh_ndm 1:3550659bd872 381 break;
jh_ndm 1:3550659bd872 382 }
jh_ndm 1:3550659bd872 383 buffer[ret] = '\0';
jh_ndm 1:3550659bd872 384 pc.printf("Received %d chars from server: %s\n", ret, buffer);
jh_ndm 1:3550659bd872 385 }
jh_ndm 1:3550659bd872 386 pc.printf("socket_POST OUT\r\n");
jh_ndm 1:3550659bd872 387
jh_ndm 1:3550659bd872 388 free(pJSON_sock_post);
jh_ndm 1:3550659bd872 389 free(buffer);
jh_ndm 1:3550659bd872 390 cJSON_Delete(socket_post);
jh_ndm 1:3550659bd872 391
jh_ndm 1:3550659bd872 392 return true;
jh_ndm 1:3550659bd872 393 }
jh_ndm 1:3550659bd872 394
jh_ndm 1:3550659bd872 395 bool closeConnect(TCPSocketConnection &conn)
jh_ndm 1:3550659bd872 396 {
jh_ndm 1:3550659bd872 397 if(conn.is_connected()){
jh_ndm 1:3550659bd872 398 pc.printf("connect is already ok!\r\n");
jh_ndm 1:3550659bd872 399 }else{
jh_ndm 1:3550659bd872 400 if(!conn.connect("iot.espressif.cn", socketPort)) //80 for http,8000 for socket
jh_ndm 1:3550659bd872 401 pc.printf("connect OK!\r\n");
jh_ndm 1:3550659bd872 402 else{
jh_ndm 1:3550659bd872 403 pc.printf("connct ERR!\r\n");
jh_ndm 1:3550659bd872 404 out = true;
jh_ndm 1:3550659bd872 405 return false;
jh_ndm 1:3550659bd872 406 }
jh_ndm 1:3550659bd872 407 }
jehoon 0:af541535ef54 408
jehoon 0:af541535ef54 409
jh_ndm 1:3550659bd872 410 cJSON* close_post=NULL;
jh_ndm 1:3550659bd872 411 close_post = cJSON_CreateObject();
jh_ndm 1:3550659bd872 412 if(NULL == close_post)
jh_ndm 1:3550659bd872 413 {
jh_ndm 1:3550659bd872 414 pc.printf("OUT4\r\n");
jh_ndm 1:3550659bd872 415 out = true;
jh_ndm 1:3550659bd872 416 return false;
jh_ndm 1:3550659bd872 417 }
jh_ndm 1:3550659bd872 418
jh_ndm 1:3550659bd872 419
jh_ndm 1:3550659bd872 420 cJSON_AddStringToObject(close_post, "path", "/v1/The_Gas/quit/");
jh_ndm 1:3550659bd872 421 cJSON_AddStringToObject(close_post, "method", "POST");
jh_ndm 1:3550659bd872 422
jh_ndm 1:3550659bd872 423 cJSON* close_post_token=NULL;
jh_ndm 1:3550659bd872 424 close_post_token = cJSON_CreateObject();
jh_ndm 1:3550659bd872 425 if(NULL == close_post_token)
jh_ndm 1:3550659bd872 426 {
jh_ndm 1:3550659bd872 427 cJSON_Delete(close_post);
jh_ndm 1:3550659bd872 428 pc.printf("OUT5\r\n");
jh_ndm 1:3550659bd872 429 out = true;
jh_ndm 1:3550659bd872 430 return false;
jh_ndm 1:3550659bd872 431 }
jh_ndm 1:3550659bd872 432 cJSON_AddStringToObject(close_post_token, "Authorization", "token 514cc9c3aa07a4a56246cb9259c8264fd2ae56f6");
jh_ndm 1:3550659bd872 433 cJSON_AddItemToObject(close_post, "meta", close_post_token);
jh_ndm 1:3550659bd872 434
jh_ndm 1:3550659bd872 435 char* close_pJSON = cJSON_PrintUnformatted(close_post);
jehoon 0:af541535ef54 436
jh_ndm 1:3550659bd872 437 if(NULL == close_pJSON)
jh_ndm 1:3550659bd872 438 {
jh_ndm 1:3550659bd872 439 cJSON_Delete(close_post);
jh_ndm 1:3550659bd872 440 pc.printf("OUT7\r\n");
jh_ndm 1:3550659bd872 441 out = true;
jh_ndm 1:3550659bd872 442 return false;
jh_ndm 1:3550659bd872 443 }
jh_ndm 1:3550659bd872 444 strcat(close_pJSON,"\n");
jh_ndm 1:3550659bd872 445
jh_ndm 1:3550659bd872 446 conn.send_all(close_pJSON, strlen(close_pJSON));//http_cmd for http,pJSON for socket,should be three changes
jh_ndm 1:3550659bd872 447 pc.printf("%s\r\n",close_pJSON);
jh_ndm 1:3550659bd872 448
jh_ndm 1:3550659bd872 449 char *buffer = NULL;
jh_ndm 1:3550659bd872 450 buffer = (char *)malloc(MallocSize);
jh_ndm 1:3550659bd872 451 if(!buffer)pc.printf("malloc buffer err\r\n");
jh_ndm 1:3550659bd872 452
jehoon 0:af541535ef54 453 int ret;
jh_ndm 1:3550659bd872 454
jehoon 0:af541535ef54 455 while (true) {
jh_ndm 1:3550659bd872 456 ret = conn.receive(buffer, MallocSize-1);
jh_ndm 1:3550659bd872 457 pc.printf("ret = %d\r\n",ret);
jh_ndm 1:3550659bd872 458 if (ret <= 0) {
jh_ndm 1:3550659bd872 459 break;
jh_ndm 1:3550659bd872 460 }
jehoon 0:af541535ef54 461 buffer[ret] = '\0';
jh_ndm 1:3550659bd872 462 pc.printf("Received %d chars from server: %s\n", ret, buffer);
jehoon 0:af541535ef54 463 }
jh_ndm 1:3550659bd872 464 pc.printf("close_POST OUT\r\n");
jh_ndm 1:3550659bd872 465
jh_ndm 1:3550659bd872 466 free(close_pJSON);
jh_ndm 1:3550659bd872 467 free(buffer);
jh_ndm 1:3550659bd872 468 cJSON_Delete(close_post);
jehoon 0:af541535ef54 469
jh_ndm 1:3550659bd872 470 return true;
jh_ndm 1:3550659bd872 471 }