Giung Kim / Mbed OS WIZnet-IoTShield-WM-N400MSE-Ping
Committer:
AustinKim
Date:
Tue Sep 17 08:57:44 2019 +0000
Revision:
2:74f027438e00
Parent:
1:9f135d5ea1f9
Child:
3:574affd4cf9f
Update main.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AustinKim 0:7a10bb221e55 1 /* WIZnet IoT Shield Cat.M1 Sample code for Arm MBED
AustinKim 0:7a10bb221e55 2 * Copyright (c) 2019 WIZnet Co., Ltd.
AustinKim 0:7a10bb221e55 3 * SPDX-License-Identifier: Apache-2.0
AustinKim 0:7a10bb221e55 4 */
AustinKim 0:7a10bb221e55 5
AustinKim 0:7a10bb221e55 6 /*
AustinKim 0:7a10bb221e55 7 * Licensed under the Apache License, Version 2.0 (the "License");
AustinKim 0:7a10bb221e55 8 * you may not use this file except in compliance with the License.
AustinKim 0:7a10bb221e55 9 * You may obtain a copy of the License at
AustinKim 0:7a10bb221e55 10 *
AustinKim 0:7a10bb221e55 11 * http://www.apache.org/licenses/LICENSE-2.0
AustinKim 0:7a10bb221e55 12 *
AustinKim 0:7a10bb221e55 13 * Unless required by applicable law or agreed to in writing, software
AustinKim 0:7a10bb221e55 14 * distributed under the License is distributed on an "AS IS" BASIS,
AustinKim 0:7a10bb221e55 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
AustinKim 0:7a10bb221e55 16 *
AustinKim 0:7a10bb221e55 17 * See the License for the specific language governing permissions and
AustinKim 0:7a10bb221e55 18 * limitations under the License.
AustinKim 0:7a10bb221e55 19 *
AustinKim 0:7a10bb221e55 20 */
AustinKim 0:7a10bb221e55 21
AustinKim 0:7a10bb221e55 22 #include "mbed.h"
AustinKim 0:7a10bb221e55 23
AustinKim 0:7a10bb221e55 24 #include <string>
AustinKim 0:7a10bb221e55 25
AustinKim 0:7a10bb221e55 26 #define RET_OK 1
AustinKim 0:7a10bb221e55 27 #define RET_NOK -1
AustinKim 0:7a10bb221e55 28 #define DEBUG_ENABLE 1
AustinKim 0:7a10bb221e55 29 #define DEBUG_DISABLE 0
AustinKim 0:7a10bb221e55 30 #define ON 1
AustinKim 0:7a10bb221e55 31 #define OFF 0
AustinKim 0:7a10bb221e55 32
AustinKim 0:7a10bb221e55 33 #define MAX_BUF_SIZE 1024
AustinKim 0:7a10bb221e55 34
AustinKim 0:7a10bb221e55 35 #define WM01_APN_PROTOCOL_IPv4 1
AustinKim 0:7a10bb221e55 36 #define WM01_APN_PROTOCOL_IPv6 2
AustinKim 0:7a10bb221e55 37 #define WM01_DEFAULT_TIMEOUT 1000
AustinKim 0:7a10bb221e55 38 #define WM01_CONNECT_TIMEOUT 15000
AustinKim 0:7a10bb221e55 39 #define WM01_SEND_TIMEOUT 500
AustinKim 0:7a10bb221e55 40 #define WM01_RECV_TIMEOUT 500
AustinKim 0:7a10bb221e55 41 #define WM01_BOOTING_TIME 15000
AustinKim 0:7a10bb221e55 42
AustinKim 0:7a10bb221e55 43 #define WM01_APN_PROTOCOL WM01_APN_PROTOCOL_IPv6
AustinKim 0:7a10bb221e55 44 #define WM01_DEFAULT_BAUD_RATE 115200
AustinKim 0:7a10bb221e55 45 #define WM01_PARSER_DELIMITER "\r\n"
AustinKim 0:7a10bb221e55 46
AustinKim 0:7a10bb221e55 47 #define CATM1_APN_SKT "lte-internet.sktelecom.com"
AustinKim 0:7a10bb221e55 48
AustinKim 0:7a10bb221e55 49 #define CATM1_DEVICE_NAME_WM01 "WM01"
AustinKim 0:7a10bb221e55 50 #define DEVNAME CATM1_DEVICE_NAME_WM01
AustinKim 0:7a10bb221e55 51
AustinKim 0:7a10bb221e55 52 #define devlog(f_, ...) if(CATM1_DEVICE_DEBUG == DEBUG_ENABLE) { pc.printf("\r\n[%s] ", DEVNAME); pc.printf((f_), ##__VA_ARGS__); }
AustinKim 0:7a10bb221e55 53 #define myprintf(f_, ...) {pc.printf("\r\n[MAIN] "); pc.printf((f_), ##__VA_ARGS__);}
AustinKim 2:74f027438e00 54 #define pingprintf(f_, ...) {pc.printf((f_), ##__VA_ARGS__);}
AustinKim 0:7a10bb221e55 55
AustinKim 0:7a10bb221e55 56 /* Pin configuraiton */
AustinKim 0:7a10bb221e55 57 // Cat.M1
AustinKim 0:7a10bb221e55 58 #define MBED_CONF_IOTSHIELD_CATM1_TX D8
AustinKim 0:7a10bb221e55 59 #define MBED_CONF_IOTSHIELD_CATM1_RX D2
AustinKim 0:7a10bb221e55 60 #define MBED_CONF_IOTSHIELD_CATM1_RESET D7
AustinKim 0:7a10bb221e55 61 #define MBED_CONF_IOTSHIELD_CATM1_PWRKEY D9
AustinKim 0:7a10bb221e55 62
AustinKim 0:7a10bb221e55 63 // Sensors
AustinKim 0:7a10bb221e55 64 #define MBED_CONF_IOTSHIELD_SENSOR_CDS A0
AustinKim 0:7a10bb221e55 65 #define MBED_CONF_IOTSHIELD_SENSOR_TEMP A1
AustinKim 0:7a10bb221e55 66
AustinKim 0:7a10bb221e55 67 /* Debug message settings */
AustinKim 0:7a10bb221e55 68 #define WM01_PARSER_DEBUG DEBUG_DISABLE
AustinKim 0:7a10bb221e55 69 #define CATM1_DEVICE_DEBUG DEBUG_ENABLE
AustinKim 0:7a10bb221e55 70
AustinKim 0:7a10bb221e55 71 // Functions: Print information
AustinKim 0:7a10bb221e55 72 void printInfo(void);
AustinKim 0:7a10bb221e55 73
AustinKim 0:7a10bb221e55 74 // Functions: Module Status
AustinKim 0:7a10bb221e55 75 void waitCatM1Ready(void);
AustinKim 0:7a10bb221e55 76 int8_t setEchoStatus_WM01(bool onoff);
AustinKim 0:7a10bb221e55 77 int8_t getUsimStatus_WM01(void);
AustinKim 0:7a10bb221e55 78 int8_t getNetworkStatus_WM01(void);
AustinKim 0:7a10bb221e55 79
AustinKim 0:7a10bb221e55 80 // Functions: PDP context
AustinKim 0:7a10bb221e55 81 int8_t setContextActivate_WM01(void); // Activate a PDP Context
AustinKim 0:7a10bb221e55 82 int8_t setContextDeactivate_WM01(void); // Deactivate a PDP Context
AustinKim 0:7a10bb221e55 83
AustinKim 0:7a10bb221e55 84 // Functions: Ping test
AustinKim 0:7a10bb221e55 85 void printPingToHost_WM01(char *host, int pingnum);
AustinKim 0:7a10bb221e55 86
AustinKim 0:7a10bb221e55 87 Serial pc(USBTX, USBRX); // USB debug
AustinKim 0:7a10bb221e55 88
AustinKim 0:7a10bb221e55 89 UARTSerial *_serial; // Cat.M1 module
AustinKim 0:7a10bb221e55 90 ATCmdParser *_parser;
AustinKim 0:7a10bb221e55 91
AustinKim 0:7a10bb221e55 92 DigitalOut _RESET_WM01(MBED_CONF_IOTSHIELD_CATM1_RESET);
AustinKim 0:7a10bb221e55 93 DigitalOut _PWRKEY_WM01(MBED_CONF_IOTSHIELD_CATM1_PWRKEY);
AustinKim 0:7a10bb221e55 94
AustinKim 0:7a10bb221e55 95 void serialPcInit(void)
AustinKim 0:7a10bb221e55 96 {
AustinKim 0:7a10bb221e55 97 pc.baud(115200);
AustinKim 0:7a10bb221e55 98 pc.format(8, Serial::None, 1);
AustinKim 0:7a10bb221e55 99 }
AustinKim 0:7a10bb221e55 100
AustinKim 0:7a10bb221e55 101 void serialDeviceInit(PinName tx, PinName rx, int baudrate)
AustinKim 0:7a10bb221e55 102 {
AustinKim 0:7a10bb221e55 103 _serial = new UARTSerial(tx, rx, baudrate);
AustinKim 0:7a10bb221e55 104 }
AustinKim 0:7a10bb221e55 105
AustinKim 0:7a10bb221e55 106 void serialAtParserInit(const char *delimiter, bool debug_en)
AustinKim 0:7a10bb221e55 107 {
AustinKim 0:7a10bb221e55 108 _parser = new ATCmdParser(_serial);
AustinKim 0:7a10bb221e55 109 _parser->debug_on(debug_en);
AustinKim 0:7a10bb221e55 110 _parser->set_delimiter(delimiter);
AustinKim 0:7a10bb221e55 111 _parser->set_timeout(WM01_DEFAULT_TIMEOUT);
AustinKim 0:7a10bb221e55 112 }
AustinKim 0:7a10bb221e55 113
AustinKim 0:7a10bb221e55 114 void catm1DeviceInit(void)
AustinKim 0:7a10bb221e55 115 {
AustinKim 0:7a10bb221e55 116 serialDeviceInit( MBED_CONF_IOTSHIELD_CATM1_TX,
AustinKim 0:7a10bb221e55 117 MBED_CONF_IOTSHIELD_CATM1_RX,
AustinKim 0:7a10bb221e55 118 WM01_DEFAULT_BAUD_RATE);
AustinKim 0:7a10bb221e55 119
AustinKim 0:7a10bb221e55 120 serialAtParserInit( WM01_PARSER_DELIMITER,
AustinKim 0:7a10bb221e55 121 WM01_PARSER_DEBUG);
AustinKim 0:7a10bb221e55 122 }
AustinKim 0:7a10bb221e55 123
AustinKim 0:7a10bb221e55 124 void catm1DeviceReset_WM01(void)
AustinKim 0:7a10bb221e55 125 {
AustinKim 0:7a10bb221e55 126 _RESET_WM01 = 1;
AustinKim 0:7a10bb221e55 127 _PWRKEY_WM01 = 1;
AustinKim 0:7a10bb221e55 128 wait_ms(300);
AustinKim 0:7a10bb221e55 129
AustinKim 0:7a10bb221e55 130 _RESET_WM01 = 0;
AustinKim 0:7a10bb221e55 131 _PWRKEY_WM01 = 0;
AustinKim 0:7a10bb221e55 132 wait_ms(400);
AustinKim 0:7a10bb221e55 133
AustinKim 0:7a10bb221e55 134 _RESET_WM01 = 1;
AustinKim 0:7a10bb221e55 135 wait_ms(1000);
AustinKim 0:7a10bb221e55 136 }
AustinKim 0:7a10bb221e55 137
AustinKim 0:7a10bb221e55 138 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 139 // Main routine
AustinKim 0:7a10bb221e55 140 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 141
AustinKim 0:7a10bb221e55 142 int main()
AustinKim 0:7a10bb221e55 143 {
AustinKim 0:7a10bb221e55 144 char ping_dest_1st[] = "8.8.8.8";
AustinKim 1:9f135d5ea1f9 145 char ping_dest_2nd[] = "www.google.com";
AustinKim 0:7a10bb221e55 146
AustinKim 0:7a10bb221e55 147 serialPcInit();
AustinKim 0:7a10bb221e55 148 catm1DeviceInit();
AustinKim 0:7a10bb221e55 149
AustinKim 0:7a10bb221e55 150 myprintf("Waiting for Cat.M1 Module Ready...\r\n");
AustinKim 0:7a10bb221e55 151
AustinKim 0:7a10bb221e55 152 catm1DeviceReset_WM01();
AustinKim 0:7a10bb221e55 153
AustinKim 0:7a10bb221e55 154 waitCatM1Ready();
AustinKim 0:7a10bb221e55 155
AustinKim 0:7a10bb221e55 156 wait_ms(5000);
AustinKim 0:7a10bb221e55 157
AustinKim 0:7a10bb221e55 158 myprintf("System Init Complete\r\n");
AustinKim 0:7a10bb221e55 159
AustinKim 0:7a10bb221e55 160 printInfo();
AustinKim 0:7a10bb221e55 161
AustinKim 0:7a10bb221e55 162 setEchoStatus_WM01(OFF);
AustinKim 0:7a10bb221e55 163
AustinKim 0:7a10bb221e55 164 getUsimStatus_WM01();
AustinKim 0:7a10bb221e55 165
AustinKim 0:7a10bb221e55 166 getNetworkStatus_WM01();
AustinKim 0:7a10bb221e55 167
AustinKim 1:9f135d5ea1f9 168 setContextActivate_WM01();
AustinKim 1:9f135d5ea1f9 169
AustinKim 1:9f135d5ea1f9 170 myprintf("[Ping] Host : %s\r\n", ping_dest_1st);
AustinKim 0:7a10bb221e55 171 printPingToHost_WM01(ping_dest_1st, 4);
AustinKim 0:7a10bb221e55 172
AustinKim 0:7a10bb221e55 173 wait_ms(2000);
AustinKim 0:7a10bb221e55 174
AustinKim 1:9f135d5ea1f9 175 myprintf("[Ping] Host : %s\r\n", ping_dest_2nd);
AustinKim 0:7a10bb221e55 176 printPingToHost_WM01(ping_dest_2nd, 4);
AustinKim 0:7a10bb221e55 177
AustinKim 0:7a10bb221e55 178 setContextDeactivate_WM01();
AustinKim 0:7a10bb221e55 179 }
AustinKim 0:7a10bb221e55 180
AustinKim 0:7a10bb221e55 181 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 182 // Functions: Print information
AustinKim 0:7a10bb221e55 183 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 184
AustinKim 0:7a10bb221e55 185 void printInfo(void)
AustinKim 0:7a10bb221e55 186 {
AustinKim 0:7a10bb221e55 187 myprintf("WIZnet IoT Shield for Arm MBED");
AustinKim 0:7a10bb221e55 188 myprintf("LTE Cat.M1 Version");
AustinKim 0:7a10bb221e55 189 myprintf("=================================================");
AustinKim 0:7a10bb221e55 190 myprintf(">> Target Board: WIoT-WM01 (Woorinet WM-N400MSE)");
AustinKim 0:7a10bb221e55 191 myprintf(">> Sample Code: Ping Test");
AustinKim 0:7a10bb221e55 192 myprintf("=================================================\r\n");
AustinKim 0:7a10bb221e55 193 }
AustinKim 0:7a10bb221e55 194
AustinKim 0:7a10bb221e55 195 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 196 // Functions: Cat.M1 Status
AustinKim 0:7a10bb221e55 197 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 198
AustinKim 0:7a10bb221e55 199 void waitCatM1Ready(void)
AustinKim 0:7a10bb221e55 200 {
AustinKim 0:7a10bb221e55 201 while(1)
AustinKim 0:7a10bb221e55 202 {
AustinKim 0:7a10bb221e55 203 if(_parser->send("AT") && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 204 {
AustinKim 0:7a10bb221e55 205 myprintf("WM01 is Available\r\n");
AustinKim 0:7a10bb221e55 206
AustinKim 0:7a10bb221e55 207 return;
AustinKim 0:7a10bb221e55 208 }
AustinKim 0:7a10bb221e55 209 }
AustinKim 0:7a10bb221e55 210 }
AustinKim 0:7a10bb221e55 211
AustinKim 0:7a10bb221e55 212 int8_t setEchoStatus_WM01(bool onoff)
AustinKim 0:7a10bb221e55 213 {
AustinKim 0:7a10bb221e55 214 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 215 char _buf[10];
AustinKim 0:7a10bb221e55 216
AustinKim 0:7a10bb221e55 217 sprintf((char *)_buf, "ATE%d", onoff);
AustinKim 0:7a10bb221e55 218
AustinKim 0:7a10bb221e55 219 if(_parser->send(_buf) && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 220 {
AustinKim 0:7a10bb221e55 221 devlog("Turn Echo %s : success\r\n", onoff?"ON":"OFF");
AustinKim 0:7a10bb221e55 222
AustinKim 0:7a10bb221e55 223 ret = RET_OK;
AustinKim 0:7a10bb221e55 224 }
AustinKim 0:7a10bb221e55 225 else
AustinKim 0:7a10bb221e55 226 {
AustinKim 0:7a10bb221e55 227 devlog("Turn Echo %s : failed\r\n", onoff?"ON":"OFF");
AustinKim 0:7a10bb221e55 228 }
AustinKim 0:7a10bb221e55 229
AustinKim 0:7a10bb221e55 230 return ret;
AustinKim 0:7a10bb221e55 231 }
AustinKim 0:7a10bb221e55 232
AustinKim 0:7a10bb221e55 233 int8_t getUsimStatus_WM01(void)
AustinKim 0:7a10bb221e55 234 {
AustinKim 0:7a10bb221e55 235 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 236
AustinKim 0:7a10bb221e55 237 if(_parser->send("AT$$STAT?") && _parser->recv("$$STAT:READY") && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 238 {
AustinKim 0:7a10bb221e55 239 devlog("USIM Status : READY\r\n");
AustinKim 0:7a10bb221e55 240
AustinKim 0:7a10bb221e55 241 ret = RET_OK;
AustinKim 0:7a10bb221e55 242 }
AustinKim 0:7a10bb221e55 243 else
AustinKim 0:7a10bb221e55 244 {
AustinKim 0:7a10bb221e55 245 devlog("Retrieving USIM Status failed\r\n");
AustinKim 0:7a10bb221e55 246 }
AustinKim 0:7a10bb221e55 247
AustinKim 0:7a10bb221e55 248 return ret;
AustinKim 0:7a10bb221e55 249 }
AustinKim 0:7a10bb221e55 250
AustinKim 0:7a10bb221e55 251 int8_t getNetworkStatus_WM01(void)
AustinKim 0:7a10bb221e55 252 {
AustinKim 0:7a10bb221e55 253 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 254 int val, stat;
AustinKim 0:7a10bb221e55 255
AustinKim 0:7a10bb221e55 256 if(_parser->send("AT+CEREG?") && _parser->recv("+CEREG: %d,%d", &val, &stat) && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 257 {
AustinKim 0:7a10bb221e55 258 if((val == 0) && (stat == 1))
AustinKim 0:7a10bb221e55 259 {
AustinKim 0:7a10bb221e55 260 devlog("Network Status : attached\r\n");
AustinKim 0:7a10bb221e55 261
AustinKim 0:7a10bb221e55 262 ret = RET_OK;
AustinKim 0:7a10bb221e55 263 }
AustinKim 0:7a10bb221e55 264 else
AustinKim 0:7a10bb221e55 265 {
AustinKim 0:7a10bb221e55 266 devlog("Network Status : %d, %d\r\n", val, stat);
AustinKim 0:7a10bb221e55 267 }
AustinKim 0:7a10bb221e55 268 }
AustinKim 0:7a10bb221e55 269 else
AustinKim 0:7a10bb221e55 270 {
AustinKim 0:7a10bb221e55 271 devlog("Network Status : Error\r\n");
AustinKim 0:7a10bb221e55 272 }
AustinKim 0:7a10bb221e55 273
AustinKim 0:7a10bb221e55 274 return ret;
AustinKim 0:7a10bb221e55 275 }
AustinKim 0:7a10bb221e55 276
AustinKim 0:7a10bb221e55 277 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 278 // Functions: Cat.M1 PDP context activate / deactivate
AustinKim 0:7a10bb221e55 279 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 280
AustinKim 0:7a10bb221e55 281 int8_t setContextActivate_WM01(void) // Activate a PDP Context
AustinKim 0:7a10bb221e55 282 {
AustinKim 0:7a10bb221e55 283 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 284
AustinKim 0:7a10bb221e55 285 _parser->send("AT*RNDISDATA=1");
AustinKim 0:7a10bb221e55 286
AustinKim 0:7a10bb221e55 287 if(_parser->recv("OK"))
AustinKim 0:7a10bb221e55 288 {
AustinKim 0:7a10bb221e55 289 devlog("Activate a PDP Context\r\n");
AustinKim 0:7a10bb221e55 290
AustinKim 0:7a10bb221e55 291 ret = RET_OK;
AustinKim 0:7a10bb221e55 292 }
AustinKim 0:7a10bb221e55 293 else
AustinKim 0:7a10bb221e55 294 {
AustinKim 0:7a10bb221e55 295 devlog("PDP Context Activation failed\r\n");
AustinKim 0:7a10bb221e55 296 }
AustinKim 0:7a10bb221e55 297
AustinKim 0:7a10bb221e55 298 return ret;
AustinKim 0:7a10bb221e55 299 }
AustinKim 0:7a10bb221e55 300
AustinKim 0:7a10bb221e55 301 int8_t setContextDeactivate_WM01(void) // Deactivate a PDP Context
AustinKim 0:7a10bb221e55 302 {
AustinKim 0:7a10bb221e55 303 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 304
AustinKim 0:7a10bb221e55 305 _parser->send("AT*RNDISDATA=0");
AustinKim 0:7a10bb221e55 306
AustinKim 0:7a10bb221e55 307 if(_parser->recv("OK"))
AustinKim 0:7a10bb221e55 308 {
AustinKim 0:7a10bb221e55 309 devlog("Deactivate a PDP Context\r\n");
AustinKim 0:7a10bb221e55 310
AustinKim 0:7a10bb221e55 311 ret = RET_OK;
AustinKim 0:7a10bb221e55 312 }
AustinKim 0:7a10bb221e55 313 else
AustinKim 0:7a10bb221e55 314 {
AustinKim 0:7a10bb221e55 315 devlog("PDP Context Deactivation failed\r\n");
AustinKim 0:7a10bb221e55 316 }
AustinKim 0:7a10bb221e55 317
AustinKim 0:7a10bb221e55 318 return ret;
AustinKim 0:7a10bb221e55 319 }
AustinKim 0:7a10bb221e55 320
AustinKim 0:7a10bb221e55 321 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 322 // Functions: Cat.M1 Ping test
AustinKim 0:7a10bb221e55 323 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 324
AustinKim 0:7a10bb221e55 325 void printPingToHost_WM01(char *host, int pingnum)
AustinKim 0:7a10bb221e55 326 {
AustinKim 2:74f027438e00 327 Timer t;
AustinKim 0:7a10bb221e55 328
AustinKim 0:7a10bb221e55 329 if((pingnum < 1) || (pingnum > 10))
AustinKim 0:7a10bb221e55 330 {
AustinKim 0:7a10bb221e55 331 devlog("The maximum number of sending Ping request range is 1-10, and the default value is 4\r\n");
AustinKim 0:7a10bb221e55 332
AustinKim 0:7a10bb221e55 333 return;
AustinKim 0:7a10bb221e55 334 }
AustinKim 0:7a10bb221e55 335
AustinKim 2:74f027438e00 336 _parser->set_timeout((1000 * pingnum) + 2000);
AustinKim 0:7a10bb221e55 337
AustinKim 0:7a10bb221e55 338 if(_parser->send("AT*PING=%s,%d", host, pingnum) && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 339 {
AustinKim 2:74f027438e00 340 t.start();
AustinKim 0:7a10bb221e55 341
AustinKim 2:74f027438e00 342 while(t.read_ms() < ((1000 * pingnum) + 2000))
AustinKim 2:74f027438e00 343 {
AustinKim 2:74f027438e00 344 pingprintf("%c", _parser->getc());
AustinKim 2:74f027438e00 345 }
AustinKim 0:7a10bb221e55 346 }
AustinKim 0:7a10bb221e55 347
AustinKim 0:7a10bb221e55 348 _parser->set_timeout(WM01_DEFAULT_TIMEOUT);
AustinKim 0:7a10bb221e55 349 _parser->flush();
AustinKim 0:7a10bb221e55 350 }