Using DHT11 sensor, sdWrite, wdt. Need to sleep more then this.

Dependencies:   DHT GPRSInterface HTTPClient_GPRS SDFileSystem USBDevice mbed

Committer:
seedteam20
Date:
Wed Apr 01 16:16:13 2015 +0000
Revision:
0:b6b64c1e74bb
Using DHT11 sensor and wdt. Not fully going to sleep.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
seedteam20 0:b6b64c1e74bb 1 /*
seedteam20 0:b6b64c1e74bb 2 IOT_Mbed.cpp
seedteam20 0:b6b64c1e74bb 3 2013 Copyright (c) Seeed Technology Inc. All right reserved.
seedteam20 0:b6b64c1e74bb 4
seedteam20 0:b6b64c1e74bb 5 Author:Loovee
seedteam20 0:b6b64c1e74bb 6 2013-7-21
seedteam20 0:b6b64c1e74bb 7
seedteam20 0:b6b64c1e74bb 8 This library is free software; you can redistribute it and/or
seedteam20 0:b6b64c1e74bb 9 modify it under the terms of the GNU Lesser General Public
seedteam20 0:b6b64c1e74bb 10 License as published by the Free Software Foundation; either
seedteam20 0:b6b64c1e74bb 11 version 2.1 of the License, or (at your option) any later version.
seedteam20 0:b6b64c1e74bb 12
seedteam20 0:b6b64c1e74bb 13 This library is distributed in the hope that it will be useful,
seedteam20 0:b6b64c1e74bb 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
seedteam20 0:b6b64c1e74bb 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
seedteam20 0:b6b64c1e74bb 16 Lesser General Public License for more details.
seedteam20 0:b6b64c1e74bb 17
seedteam20 0:b6b64c1e74bb 18 You should have received a copy of the GNU Lesser General Public
seedteam20 0:b6b64c1e74bb 19 License along with this library; if not, write to the Free Software
seedteam20 0:b6b64c1e74bb 20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
seedteam20 0:b6b64c1e74bb 21 */
seedteam20 0:b6b64c1e74bb 22 #include <stdio.h>
seedteam20 0:b6b64c1e74bb 23
seedteam20 0:b6b64c1e74bb 24 #include "mbed.h"
seedteam20 0:b6b64c1e74bb 25 #include "tcp_yeelink.h"
seedteam20 0:b6b64c1e74bb 26 #include "tcp_yeelink_dfs.h"
seedteam20 0:b6b64c1e74bb 27 #include "i2c_uart.h"
seedteam20 0:b6b64c1e74bb 28 #include "ARCH_GPRS_Sleep.h"
seedteam20 0:b6b64c1e74bb 29
seedteam20 0:b6b64c1e74bb 30
seedteam20 0:b6b64c1e74bb 31 Serial serial1(P0_19, P0_18); // tx, rx
seedteam20 0:b6b64c1e74bb 32 Timer tcnt;
seedteam20 0:b6b64c1e74bb 33
seedteam20 0:b6b64c1e74bb 34 void IOT_Mbed::init(char *postURL, char *APIKey)
seedteam20 0:b6b64c1e74bb 35 {
seedteam20 0:b6b64c1e74bb 36 serial1.baud(115200);
seedteam20 0:b6b64c1e74bb 37 strcpy(yeelinkPostURL, postURL);
seedteam20 0:b6b64c1e74bb 38 sprintf(yeelinkPostHeads, "U-ApiKey: %s\r\n", APIKey);
seedteam20 0:b6b64c1e74bb 39 strcpy(yeelinkDns, "42.96.164.52"); // api.yeelink.net
seedteam20 0:b6b64c1e74bb 40 sprintf(yeelinkPort, "%d", HTTP_DEFAULT_PORT);
seedteam20 0:b6b64c1e74bb 41 }
seedteam20 0:b6b64c1e74bb 42
seedteam20 0:b6b64c1e74bb 43 void IOT_Mbed::callTest()
seedteam20 0:b6b64c1e74bb 44 {
seedteam20 0:b6b64c1e74bb 45 sendCmdAndWaitForRest("ATD:10086;\r\n", "OK", 10);
seedteam20 0:b6b64c1e74bb 46 }
seedteam20 0:b6b64c1e74bb 47
seedteam20 0:b6b64c1e74bb 48 int IOT_Mbed::checkAT(int timeout)
seedteam20 0:b6b64c1e74bb 49 {
seedteam20 0:b6b64c1e74bb 50 return sendCmdAndWaitForRest("AT\r\n", "OK", timeout);
seedteam20 0:b6b64c1e74bb 51 }
seedteam20 0:b6b64c1e74bb 52
seedteam20 0:b6b64c1e74bb 53 int IOT_Mbed::waitString(const char *str, int timeout) // time out : s
seedteam20 0:b6b64c1e74bb 54 {
seedteam20 0:b6b64c1e74bb 55 int len = strlen(str);
seedteam20 0:b6b64c1e74bb 56 int sum=0;
seedteam20 0:b6b64c1e74bb 57
seedteam20 0:b6b64c1e74bb 58 tcnt.start(); // start timer
seedteam20 0:b6b64c1e74bb 59
seedteam20 0:b6b64c1e74bb 60 for(;;)
seedteam20 0:b6b64c1e74bb 61 {
seedteam20 0:b6b64c1e74bb 62 if(serial1.readable())
seedteam20 0:b6b64c1e74bb 63 {
seedteam20 0:b6b64c1e74bb 64 char c = serial1.getc();
seedteam20 0:b6b64c1e74bb 65 DBG(c);
seedteam20 0:b6b64c1e74bb 66 sum = (c==str[sum]) ? sum+1 : 0;
seedteam20 0:b6b64c1e74bb 67 if(sum == len)break;
seedteam20 0:b6b64c1e74bb 68 }
seedteam20 0:b6b64c1e74bb 69
seedteam20 0:b6b64c1e74bb 70 if(tcnt.read() > timeout) // time out
seedteam20 0:b6b64c1e74bb 71 {
seedteam20 0:b6b64c1e74bb 72 tcnt.stop();
seedteam20 0:b6b64c1e74bb 73 tcnt.reset();
seedteam20 0:b6b64c1e74bb 74
seedteam20 0:b6b64c1e74bb 75 DBG("time out\r\n");
seedteam20 0:b6b64c1e74bb 76 return ERRTOUT;
seedteam20 0:b6b64c1e74bb 77 }
seedteam20 0:b6b64c1e74bb 78
seedteam20 0:b6b64c1e74bb 79 wdt_sleep.feed();
seedteam20 0:b6b64c1e74bb 80 }
seedteam20 0:b6b64c1e74bb 81
seedteam20 0:b6b64c1e74bb 82 tcnt.stop(); // stop timer
seedteam20 0:b6b64c1e74bb 83 tcnt.reset(); // clear timer
seedteam20 0:b6b64c1e74bb 84
seedteam20 0:b6b64c1e74bb 85 while(serial1.readable()) // display the other thing..
seedteam20 0:b6b64c1e74bb 86 {
seedteam20 0:b6b64c1e74bb 87 char c = serial1.getc();
seedteam20 0:b6b64c1e74bb 88 DBG(c);
seedteam20 0:b6b64c1e74bb 89 }
seedteam20 0:b6b64c1e74bb 90
seedteam20 0:b6b64c1e74bb 91 return 1;
seedteam20 0:b6b64c1e74bb 92 }
seedteam20 0:b6b64c1e74bb 93
seedteam20 0:b6b64c1e74bb 94
seedteam20 0:b6b64c1e74bb 95 int IOT_Mbed::sendCmdAndWaitForRest(char *dta, const char *resq, int timeout)
seedteam20 0:b6b64c1e74bb 96 {
seedteam20 0:b6b64c1e74bb 97 sendCmd(dta);
seedteam20 0:b6b64c1e74bb 98 return waitString(resq, timeout);
seedteam20 0:b6b64c1e74bb 99 }
seedteam20 0:b6b64c1e74bb 100
seedteam20 0:b6b64c1e74bb 101 void IOT_Mbed::sendCmd(char *dta)
seedteam20 0:b6b64c1e74bb 102 {
seedteam20 0:b6b64c1e74bb 103 serial1.printf("%s\r\n", dta);
seedteam20 0:b6b64c1e74bb 104 }
seedteam20 0:b6b64c1e74bb 105
seedteam20 0:b6b64c1e74bb 106 int IOT_Mbed::connectTCP()
seedteam20 0:b6b64c1e74bb 107 {
seedteam20 0:b6b64c1e74bb 108
seedteam20 0:b6b64c1e74bb 109 sendCmdAndWaitForRest("ATE0\r\n", "OK", 3);
seedteam20 0:b6b64c1e74bb 110 int tout = 0;
seedteam20 0:b6b64c1e74bb 111 while(1)
seedteam20 0:b6b64c1e74bb 112 {
seedteam20 0:b6b64c1e74bb 113 if(sendCmdAndWaitForRest(STROPENGPRS, "OK", 20) == ERRTOUT)
seedteam20 0:b6b64c1e74bb 114 {
seedteam20 0:b6b64c1e74bb 115 DBG("GPRS OPEN ERR, OPEN AGAIN\r\n");
seedteam20 0:b6b64c1e74bb 116 wait(5);
seedteam20 0:b6b64c1e74bb 117 }
seedteam20 0:b6b64c1e74bb 118 else
seedteam20 0:b6b64c1e74bb 119 {
seedteam20 0:b6b64c1e74bb 120 DBG("GPRS OPEN OK!\r\n");
seedteam20 0:b6b64c1e74bb 121 break;
seedteam20 0:b6b64c1e74bb 122 }
seedteam20 0:b6b64c1e74bb 123 tout++;
seedteam20 0:b6b64c1e74bb 124 if(tout>5)return 0;
seedteam20 0:b6b64c1e74bb 125 }
seedteam20 0:b6b64c1e74bb 126
seedteam20 0:b6b64c1e74bb 127
seedteam20 0:b6b64c1e74bb 128 if(!sendCmdAndWaitForRest(STRSETGPRS, "OK", 20))return 0;
seedteam20 0:b6b64c1e74bb 129 if(!sendCmdAndWaitForRest(STRSETAPN, "OK", 20))return 0;;
seedteam20 0:b6b64c1e74bb 130
seedteam20 0:b6b64c1e74bb 131 char cipstart[50];
seedteam20 0:b6b64c1e74bb 132 sprintf(cipstart, "AT+CIPSTART=\"TCP\",\"%s\",\"%s\"", yeelinkDns, yeelinkPort);
seedteam20 0:b6b64c1e74bb 133 if(!sendCmdAndWaitForRest(cipstart, "CONNECT OK", 20))return 0;; // connect tcp
seedteam20 0:b6b64c1e74bb 134
seedteam20 0:b6b64c1e74bb 135 return 1;
seedteam20 0:b6b64c1e74bb 136 }
seedteam20 0:b6b64c1e74bb 137
seedteam20 0:b6b64c1e74bb 138 int IOT_Mbed::connectTCP(char *ip, char *port)
seedteam20 0:b6b64c1e74bb 139 {
seedteam20 0:b6b64c1e74bb 140
seedteam20 0:b6b64c1e74bb 141 sendCmdAndWaitForRest("ATE0\r\n", "OK", 3);
seedteam20 0:b6b64c1e74bb 142 int tout = 0;
seedteam20 0:b6b64c1e74bb 143
seedteam20 0:b6b64c1e74bb 144 while(1)
seedteam20 0:b6b64c1e74bb 145 {
seedteam20 0:b6b64c1e74bb 146 if(sendCmdAndWaitForRest(STROPENGPRS, "OK", 20) == ERRTOUT)
seedteam20 0:b6b64c1e74bb 147 {
seedteam20 0:b6b64c1e74bb 148 DBG("GPRS OPEN ERR, OPEN AGAIN\r\n");
seedteam20 0:b6b64c1e74bb 149 wait(5);
seedteam20 0:b6b64c1e74bb 150 }
seedteam20 0:b6b64c1e74bb 151 else
seedteam20 0:b6b64c1e74bb 152 {
seedteam20 0:b6b64c1e74bb 153 DBG("GPRS OPEN OK!\r\n");
seedteam20 0:b6b64c1e74bb 154 break;
seedteam20 0:b6b64c1e74bb 155 }
seedteam20 0:b6b64c1e74bb 156 tout++;
seedteam20 0:b6b64c1e74bb 157 if(tout>5)return 0;
seedteam20 0:b6b64c1e74bb 158 }
seedteam20 0:b6b64c1e74bb 159
seedteam20 0:b6b64c1e74bb 160
seedteam20 0:b6b64c1e74bb 161 if(!sendCmdAndWaitForRest(STRSETGPRS, "OK", 20))return 0;
seedteam20 0:b6b64c1e74bb 162 if(!sendCmdAndWaitForRest(STRSETAPN, "OK", 20))return 0;;
seedteam20 0:b6b64c1e74bb 163
seedteam20 0:b6b64c1e74bb 164 char cipstart[50];
seedteam20 0:b6b64c1e74bb 165 sprintf(cipstart, "AT+CIPSTART=\"TCP\",\"%s\",\"%s\"", ip, port);
seedteam20 0:b6b64c1e74bb 166 if(!sendCmdAndWaitForRest(cipstart, "CONNECT OK", 20))return 0;; // connect tcp
seedteam20 0:b6b64c1e74bb 167 return 1;
seedteam20 0:b6b64c1e74bb 168
seedteam20 0:b6b64c1e74bb 169 }
seedteam20 0:b6b64c1e74bb 170
seedteam20 0:b6b64c1e74bb 171 //send data to tcp
seedteam20 0:b6b64c1e74bb 172 int IOT_Mbed::sendDtaTcp(char *dta, int timeout)
seedteam20 0:b6b64c1e74bb 173 {
seedteam20 0:b6b64c1e74bb 174 serial1.printf("AT+CIPSEND=%d\r\n", strlen(dta));
seedteam20 0:b6b64c1e74bb 175 waitString(">", 10);
seedteam20 0:b6b64c1e74bb 176 serial1.printf("%s", dta);
seedteam20 0:b6b64c1e74bb 177
seedteam20 0:b6b64c1e74bb 178 wait_ms(50);
seedteam20 0:b6b64c1e74bb 179 return waitString("SEND OK", timeout);
seedteam20 0:b6b64c1e74bb 180 }
seedteam20 0:b6b64c1e74bb 181
seedteam20 0:b6b64c1e74bb 182 bool IOT_Mbed::sendToYeelink_t()
seedteam20 0:b6b64c1e74bb 183 {
seedteam20 0:b6b64c1e74bb 184 char dtaSend[300];
seedteam20 0:b6b64c1e74bb 185 sprintf(dtaSend, "%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n\r\n%s\r\n", POST1, POST2, POST3, POST4, POST5, POST6, POST7);
seedteam20 0:b6b64c1e74bb 186 return sendDtaTcp(dtaSend, 20);
seedteam20 0:b6b64c1e74bb 187 }
seedteam20 0:b6b64c1e74bb 188
seedteam20 0:b6b64c1e74bb 189 void IOT_Mbed::postDtaToYeelink()
seedteam20 0:b6b64c1e74bb 190 {
seedteam20 0:b6b64c1e74bb 191
seedteam20 0:b6b64c1e74bb 192 }
seedteam20 0:b6b64c1e74bb 193
seedteam20 0:b6b64c1e74bb 194 int IOT_Mbed::postDtaToYeelink(char *url, char *apikey, int sensorDta)
seedteam20 0:b6b64c1e74bb 195 {
seedteam20 0:b6b64c1e74bb 196 return postDtaToYeelink(url, apikey, sensorDta, 0);
seedteam20 0:b6b64c1e74bb 197 }
seedteam20 0:b6b64c1e74bb 198
seedteam20 0:b6b64c1e74bb 199 int IOT_Mbed::postDtaToYeelink(char *url, char *apikey, float sensorDta, int dec)
seedteam20 0:b6b64c1e74bb 200 {
seedteam20 0:b6b64c1e74bb 201 char dtaPost[350];
seedteam20 0:b6b64c1e74bb 202
seedteam20 0:b6b64c1e74bb 203 char request[100];
seedteam20 0:b6b64c1e74bb 204 char heads[200];
seedteam20 0:b6b64c1e74bb 205 char body[100];
seedteam20 0:b6b64c1e74bb 206
seedteam20 0:b6b64c1e74bb 207 unsigned int port;
seedteam20 0:b6b64c1e74bb 208
seedteam20 0:b6b64c1e74bb 209 char host[HTTP_MAX_HOST_LEN];
seedteam20 0:b6b64c1e74bb 210 char path[HTTP_MAX_PATH_LEN];
seedteam20 0:b6b64c1e74bb 211
seedteam20 0:b6b64c1e74bb 212 if (parseURL(url, host, sizeof(host), &port, path, sizeof(path)) != 0)
seedteam20 0:b6b64c1e74bb 213 {
seedteam20 0:b6b64c1e74bb 214 DBG("Failed to parse URL.\r\n");
seedteam20 0:b6b64c1e74bb 215 return 0;
seedteam20 0:b6b64c1e74bb 216 }
seedteam20 0:b6b64c1e74bb 217
seedteam20 0:b6b64c1e74bb 218 if(!connectTCP())
seedteam20 0:b6b64c1e74bb 219 {
seedteam20 0:b6b64c1e74bb 220 DBG("connect to tcp err!\r\n");
seedteam20 0:b6b64c1e74bb 221 return 0;
seedteam20 0:b6b64c1e74bb 222 }
seedteam20 0:b6b64c1e74bb 223
seedteam20 0:b6b64c1e74bb 224 if(dec == 0)
seedteam20 0:b6b64c1e74bb 225 {
seedteam20 0:b6b64c1e74bb 226 sprintf(body, "{\"value\": %.0f}\r\n", sensorDta);
seedteam20 0:b6b64c1e74bb 227 }
seedteam20 0:b6b64c1e74bb 228 else if(dec == 1)
seedteam20 0:b6b64c1e74bb 229 {
seedteam20 0:b6b64c1e74bb 230 sprintf(body, "{\"value\": %.1f}\r\n", sensorDta);
seedteam20 0:b6b64c1e74bb 231 }
seedteam20 0:b6b64c1e74bb 232 else if(dec == 2)
seedteam20 0:b6b64c1e74bb 233 {
seedteam20 0:b6b64c1e74bb 234 sprintf(body, "{\"value\": %.2f}\r\n", sensorDta);
seedteam20 0:b6b64c1e74bb 235 }
seedteam20 0:b6b64c1e74bb 236 else
seedteam20 0:b6b64c1e74bb 237 {
seedteam20 0:b6b64c1e74bb 238 sprintf(body, "{\"value\": %.3f}\r\n", sensorDta);
seedteam20 0:b6b64c1e74bb 239
seedteam20 0:b6b64c1e74bb 240 }
seedteam20 0:b6b64c1e74bb 241 sprintf(request, "POST %s HTTP/1.1\r\n", path);
seedteam20 0:b6b64c1e74bb 242 sprintf(heads, "Host: %s\r\nU-ApiKey: %s\r\nContent-Length: %d\r\nContent-Type: %s\r\n\r\n",host, apikey, strlen(body), CONTENT_TYPE);
seedteam20 0:b6b64c1e74bb 243 sprintf(dtaPost, "%s%s%s", request, heads, body);
seedteam20 0:b6b64c1e74bb 244
seedteam20 0:b6b64c1e74bb 245 sendDtaTcp(dtaPost, 10);
seedteam20 0:b6b64c1e74bb 246
seedteam20 0:b6b64c1e74bb 247 while(serial1.readable())
seedteam20 0:b6b64c1e74bb 248 {
seedteam20 0:b6b64c1e74bb 249 char c = serial1.getc();
seedteam20 0:b6b64c1e74bb 250 DBG(c);
seedteam20 0:b6b64c1e74bb 251 }
seedteam20 0:b6b64c1e74bb 252
seedteam20 0:b6b64c1e74bb 253 return sendCmdAndWaitForRest(STRCLOSE, "OK", 20);
seedteam20 0:b6b64c1e74bb 254 }
seedteam20 0:b6b64c1e74bb 255
seedteam20 0:b6b64c1e74bb 256 int IOT_Mbed::parseURL(const char *url, char *host, int max_host_len, unsigned int *port, char *path, int max_path_len)
seedteam20 0:b6b64c1e74bb 257 {
seedteam20 0:b6b64c1e74bb 258 char *scheme_ptr = (char *)url;
seedteam20 0:b6b64c1e74bb 259 char *host_ptr = (char *)strstr(url, "://");
seedteam20 0:b6b64c1e74bb 260 if (host_ptr != NULL)
seedteam20 0:b6b64c1e74bb 261 {
seedteam20 0:b6b64c1e74bb 262 if (strncmp(scheme_ptr, "http://", 7))
seedteam20 0:b6b64c1e74bb 263 {
seedteam20 0:b6b64c1e74bb 264 DBG("Bad scheme\r\n");
seedteam20 0:b6b64c1e74bb 265 return -1;
seedteam20 0:b6b64c1e74bb 266 }
seedteam20 0:b6b64c1e74bb 267 host_ptr += 3;
seedteam20 0:b6b64c1e74bb 268 }
seedteam20 0:b6b64c1e74bb 269 else
seedteam20 0:b6b64c1e74bb 270 {
seedteam20 0:b6b64c1e74bb 271 host_ptr = (char *)url;
seedteam20 0:b6b64c1e74bb 272 }
seedteam20 0:b6b64c1e74bb 273
seedteam20 0:b6b64c1e74bb 274 int host_len = 0;
seedteam20 0:b6b64c1e74bb 275 char *port_ptr = strchr(host_ptr, ':');
seedteam20 0:b6b64c1e74bb 276
seedteam20 0:b6b64c1e74bb 277 if (port_ptr != NULL)
seedteam20 0:b6b64c1e74bb 278 {
seedteam20 0:b6b64c1e74bb 279 host_len = port_ptr - host_ptr;
seedteam20 0:b6b64c1e74bb 280 port_ptr++;
seedteam20 0:b6b64c1e74bb 281 if (sscanf(port_ptr, "%hu", port) != 1)
seedteam20 0:b6b64c1e74bb 282 {
seedteam20 0:b6b64c1e74bb 283 DBG("Could not find port.\r\n");
seedteam20 0:b6b64c1e74bb 284 return -3;
seedteam20 0:b6b64c1e74bb 285 }
seedteam20 0:b6b64c1e74bb 286 }
seedteam20 0:b6b64c1e74bb 287 else
seedteam20 0:b6b64c1e74bb 288 {
seedteam20 0:b6b64c1e74bb 289 *port = HTTP_DEFAULT_PORT;
seedteam20 0:b6b64c1e74bb 290 }
seedteam20 0:b6b64c1e74bb 291
seedteam20 0:b6b64c1e74bb 292 char *path_ptr = strchr(host_ptr, '/');
seedteam20 0:b6b64c1e74bb 293
seedteam20 0:b6b64c1e74bb 294 if (host_len == 0)
seedteam20 0:b6b64c1e74bb 295 {
seedteam20 0:b6b64c1e74bb 296 host_len = path_ptr - host_ptr;
seedteam20 0:b6b64c1e74bb 297 }
seedteam20 0:b6b64c1e74bb 298
seedteam20 0:b6b64c1e74bb 299 if (max_host_len < (host_len + 1))
seedteam20 0:b6b64c1e74bb 300 {
seedteam20 0:b6b64c1e74bb 301 DBG("Host buffer is too small.\r\n");
seedteam20 0:b6b64c1e74bb 302 return -4;
seedteam20 0:b6b64c1e74bb 303 }
seedteam20 0:b6b64c1e74bb 304
seedteam20 0:b6b64c1e74bb 305 memcpy(host, host_ptr, host_len);
seedteam20 0:b6b64c1e74bb 306 host[host_len] = '\0';
seedteam20 0:b6b64c1e74bb 307
seedteam20 0:b6b64c1e74bb 308 int path_len;
seedteam20 0:b6b64c1e74bb 309
seedteam20 0:b6b64c1e74bb 310 char *fragment_ptr = strchr(host_ptr, '#');
seedteam20 0:b6b64c1e74bb 311 if (fragment_ptr != NULL)
seedteam20 0:b6b64c1e74bb 312 {
seedteam20 0:b6b64c1e74bb 313 path_len = fragment_ptr - path_ptr;
seedteam20 0:b6b64c1e74bb 314 }
seedteam20 0:b6b64c1e74bb 315 else
seedteam20 0:b6b64c1e74bb 316 {
seedteam20 0:b6b64c1e74bb 317 path_len = strlen(path_ptr);
seedteam20 0:b6b64c1e74bb 318 }
seedteam20 0:b6b64c1e74bb 319
seedteam20 0:b6b64c1e74bb 320 if (max_path_len < (path_len + 1))
seedteam20 0:b6b64c1e74bb 321 {
seedteam20 0:b6b64c1e74bb 322 DBG("Path buffer is too small.\r\n");
seedteam20 0:b6b64c1e74bb 323 return -5;
seedteam20 0:b6b64c1e74bb 324 }
seedteam20 0:b6b64c1e74bb 325 memcpy(path, path_ptr, path_len);
seedteam20 0:b6b64c1e74bb 326 path[path_len] = '\0';
seedteam20 0:b6b64c1e74bb 327
seedteam20 0:b6b64c1e74bb 328 return 0;
seedteam20 0:b6b64c1e74bb 329 }
seedteam20 0:b6b64c1e74bb 330
seedteam20 0:b6b64c1e74bb 331
seedteam20 0:b6b64c1e74bb 332
seedteam20 0:b6b64c1e74bb 333 IOT_Mbed IOT;
seedteam20 0:b6b64c1e74bb 334 /*********************************************************************************************************
seedteam20 0:b6b64c1e74bb 335 END FILE
seedteam20 0:b6b64c1e74bb 336 *********************************************************************************************************/