Init Project for Ping

Committer:
AustinKim
Date:
Wed Sep 11 07:34:25 2019 +0000
Revision:
0:7a10bb221e55
Child:
1:9f135d5ea1f9
Init Project for Ping

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 0:7a10bb221e55 54
AustinKim 0:7a10bb221e55 55 /* Pin configuraiton */
AustinKim 0:7a10bb221e55 56 // Cat.M1
AustinKim 0:7a10bb221e55 57 #define MBED_CONF_IOTSHIELD_CATM1_TX D8
AustinKim 0:7a10bb221e55 58 #define MBED_CONF_IOTSHIELD_CATM1_RX D2
AustinKim 0:7a10bb221e55 59 #define MBED_CONF_IOTSHIELD_CATM1_RESET D7
AustinKim 0:7a10bb221e55 60 #define MBED_CONF_IOTSHIELD_CATM1_PWRKEY D9
AustinKim 0:7a10bb221e55 61
AustinKim 0:7a10bb221e55 62 // Sensors
AustinKim 0:7a10bb221e55 63 #define MBED_CONF_IOTSHIELD_SENSOR_CDS A0
AustinKim 0:7a10bb221e55 64 #define MBED_CONF_IOTSHIELD_SENSOR_TEMP A1
AustinKim 0:7a10bb221e55 65
AustinKim 0:7a10bb221e55 66 /* Debug message settings */
AustinKim 0:7a10bb221e55 67 #define WM01_PARSER_DEBUG DEBUG_DISABLE
AustinKim 0:7a10bb221e55 68 #define CATM1_DEVICE_DEBUG DEBUG_ENABLE
AustinKim 0:7a10bb221e55 69
AustinKim 0:7a10bb221e55 70 // Functions: Print information
AustinKim 0:7a10bb221e55 71 void printInfo(void);
AustinKim 0:7a10bb221e55 72
AustinKim 0:7a10bb221e55 73 // Functions: Module Status
AustinKim 0:7a10bb221e55 74 void waitCatM1Ready(void);
AustinKim 0:7a10bb221e55 75 int8_t setEchoStatus_WM01(bool onoff);
AustinKim 0:7a10bb221e55 76 int8_t getUsimStatus_WM01(void);
AustinKim 0:7a10bb221e55 77 int8_t getNetworkStatus_WM01(void);
AustinKim 0:7a10bb221e55 78
AustinKim 0:7a10bb221e55 79 // Functions: PDP context
AustinKim 0:7a10bb221e55 80 int8_t setContextActivate_WM01(void); // Activate a PDP Context
AustinKim 0:7a10bb221e55 81 int8_t setContextDeactivate_WM01(void); // Deactivate a PDP Context
AustinKim 0:7a10bb221e55 82
AustinKim 0:7a10bb221e55 83 // Functions: Ping test
AustinKim 0:7a10bb221e55 84 void printPingToHost_WM01(char *host, int pingnum);
AustinKim 0:7a10bb221e55 85
AustinKim 0:7a10bb221e55 86 Serial pc(USBTX, USBRX); // USB debug
AustinKim 0:7a10bb221e55 87
AustinKim 0:7a10bb221e55 88 UARTSerial *_serial; // Cat.M1 module
AustinKim 0:7a10bb221e55 89 ATCmdParser *_parser;
AustinKim 0:7a10bb221e55 90
AustinKim 0:7a10bb221e55 91 DigitalOut _RESET_WM01(MBED_CONF_IOTSHIELD_CATM1_RESET);
AustinKim 0:7a10bb221e55 92 DigitalOut _PWRKEY_WM01(MBED_CONF_IOTSHIELD_CATM1_PWRKEY);
AustinKim 0:7a10bb221e55 93
AustinKim 0:7a10bb221e55 94 void serialPcInit(void)
AustinKim 0:7a10bb221e55 95 {
AustinKim 0:7a10bb221e55 96 pc.baud(115200);
AustinKim 0:7a10bb221e55 97 pc.format(8, Serial::None, 1);
AustinKim 0:7a10bb221e55 98 }
AustinKim 0:7a10bb221e55 99
AustinKim 0:7a10bb221e55 100 void serialDeviceInit(PinName tx, PinName rx, int baudrate)
AustinKim 0:7a10bb221e55 101 {
AustinKim 0:7a10bb221e55 102 _serial = new UARTSerial(tx, rx, baudrate);
AustinKim 0:7a10bb221e55 103 }
AustinKim 0:7a10bb221e55 104
AustinKim 0:7a10bb221e55 105 void serialAtParserInit(const char *delimiter, bool debug_en)
AustinKim 0:7a10bb221e55 106 {
AustinKim 0:7a10bb221e55 107 _parser = new ATCmdParser(_serial);
AustinKim 0:7a10bb221e55 108 _parser->debug_on(debug_en);
AustinKim 0:7a10bb221e55 109 _parser->set_delimiter(delimiter);
AustinKim 0:7a10bb221e55 110 _parser->set_timeout(WM01_DEFAULT_TIMEOUT);
AustinKim 0:7a10bb221e55 111 }
AustinKim 0:7a10bb221e55 112
AustinKim 0:7a10bb221e55 113 void catm1DeviceInit(void)
AustinKim 0:7a10bb221e55 114 {
AustinKim 0:7a10bb221e55 115 serialDeviceInit( MBED_CONF_IOTSHIELD_CATM1_TX,
AustinKim 0:7a10bb221e55 116 MBED_CONF_IOTSHIELD_CATM1_RX,
AustinKim 0:7a10bb221e55 117 WM01_DEFAULT_BAUD_RATE);
AustinKim 0:7a10bb221e55 118
AustinKim 0:7a10bb221e55 119 serialAtParserInit( WM01_PARSER_DELIMITER,
AustinKim 0:7a10bb221e55 120 WM01_PARSER_DEBUG);
AustinKim 0:7a10bb221e55 121 }
AustinKim 0:7a10bb221e55 122
AustinKim 0:7a10bb221e55 123 void catm1DeviceReset_WM01(void)
AustinKim 0:7a10bb221e55 124 {
AustinKim 0:7a10bb221e55 125 _RESET_WM01 = 1;
AustinKim 0:7a10bb221e55 126 _PWRKEY_WM01 = 1;
AustinKim 0:7a10bb221e55 127 wait_ms(300);
AustinKim 0:7a10bb221e55 128
AustinKim 0:7a10bb221e55 129 _RESET_WM01 = 0;
AustinKim 0:7a10bb221e55 130 _PWRKEY_WM01 = 0;
AustinKim 0:7a10bb221e55 131 wait_ms(400);
AustinKim 0:7a10bb221e55 132
AustinKim 0:7a10bb221e55 133 _RESET_WM01 = 1;
AustinKim 0:7a10bb221e55 134 wait_ms(1000);
AustinKim 0:7a10bb221e55 135 }
AustinKim 0:7a10bb221e55 136
AustinKim 0:7a10bb221e55 137 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 138 // Main routine
AustinKim 0:7a10bb221e55 139 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 140
AustinKim 0:7a10bb221e55 141 int main()
AustinKim 0:7a10bb221e55 142 {
AustinKim 0:7a10bb221e55 143 char ping_dest_1st[] = "8.8.8.8";
AustinKim 0:7a10bb221e55 144 char ping_dest_2nd[] = "www.google.com";
AustinKim 0:7a10bb221e55 145
AustinKim 0:7a10bb221e55 146 serialPcInit();
AustinKim 0:7a10bb221e55 147 catm1DeviceInit();
AustinKim 0:7a10bb221e55 148
AustinKim 0:7a10bb221e55 149 myprintf("Waiting for Cat.M1 Module Ready...\r\n");
AustinKim 0:7a10bb221e55 150
AustinKim 0:7a10bb221e55 151 catm1DeviceReset_WM01();
AustinKim 0:7a10bb221e55 152
AustinKim 0:7a10bb221e55 153 waitCatM1Ready();
AustinKim 0:7a10bb221e55 154
AustinKim 0:7a10bb221e55 155 wait_ms(5000);
AustinKim 0:7a10bb221e55 156
AustinKim 0:7a10bb221e55 157 myprintf("System Init Complete\r\n");
AustinKim 0:7a10bb221e55 158
AustinKim 0:7a10bb221e55 159 printInfo();
AustinKim 0:7a10bb221e55 160
AustinKim 0:7a10bb221e55 161 setEchoStatus_WM01(OFF);
AustinKim 0:7a10bb221e55 162
AustinKim 0:7a10bb221e55 163 getUsimStatus_WM01();
AustinKim 0:7a10bb221e55 164
AustinKim 0:7a10bb221e55 165 getNetworkStatus_WM01();
AustinKim 0:7a10bb221e55 166
AustinKim 0:7a10bb221e55 167 setContextActivate_WM01();
AustinKim 0:7a10bb221e55 168
AustinKim 0:7a10bb221e55 169 myprintf("[Ping] Host: %s\r\n", ping_dest_1st);
AustinKim 0:7a10bb221e55 170 printPingToHost_WM01(ping_dest_1st, 4);
AustinKim 0:7a10bb221e55 171
AustinKim 0:7a10bb221e55 172 wait_ms(2000);
AustinKim 0:7a10bb221e55 173
AustinKim 0:7a10bb221e55 174 myprintf("[Ping] Host: %s\r\n", ping_dest_2nd);
AustinKim 0:7a10bb221e55 175 printPingToHost_WM01(ping_dest_2nd, 4);
AustinKim 0:7a10bb221e55 176
AustinKim 0:7a10bb221e55 177 setContextDeactivate_WM01();
AustinKim 0:7a10bb221e55 178 }
AustinKim 0:7a10bb221e55 179
AustinKim 0:7a10bb221e55 180 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 181 // Functions: Print information
AustinKim 0:7a10bb221e55 182 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 183
AustinKim 0:7a10bb221e55 184 void printInfo(void)
AustinKim 0:7a10bb221e55 185 {
AustinKim 0:7a10bb221e55 186 myprintf("WIZnet IoT Shield for Arm MBED");
AustinKim 0:7a10bb221e55 187 myprintf("LTE Cat.M1 Version");
AustinKim 0:7a10bb221e55 188 myprintf("=================================================");
AustinKim 0:7a10bb221e55 189 myprintf(">> Target Board: WIoT-WM01 (Woorinet WM-N400MSE)");
AustinKim 0:7a10bb221e55 190 myprintf(">> Sample Code: Ping Test");
AustinKim 0:7a10bb221e55 191 myprintf("=================================================\r\n");
AustinKim 0:7a10bb221e55 192 }
AustinKim 0:7a10bb221e55 193
AustinKim 0:7a10bb221e55 194 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 195 // Functions: Cat.M1 Status
AustinKim 0:7a10bb221e55 196 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 197
AustinKim 0:7a10bb221e55 198 void waitCatM1Ready(void)
AustinKim 0:7a10bb221e55 199 {
AustinKim 0:7a10bb221e55 200 while(1)
AustinKim 0:7a10bb221e55 201 {
AustinKim 0:7a10bb221e55 202 if(_parser->send("AT") && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 203 {
AustinKim 0:7a10bb221e55 204 myprintf("WM01 is Available\r\n");
AustinKim 0:7a10bb221e55 205
AustinKim 0:7a10bb221e55 206 return;
AustinKim 0:7a10bb221e55 207 }
AustinKim 0:7a10bb221e55 208 }
AustinKim 0:7a10bb221e55 209 }
AustinKim 0:7a10bb221e55 210
AustinKim 0:7a10bb221e55 211 int8_t setEchoStatus_WM01(bool onoff)
AustinKim 0:7a10bb221e55 212 {
AustinKim 0:7a10bb221e55 213 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 214 char _buf[10];
AustinKim 0:7a10bb221e55 215
AustinKim 0:7a10bb221e55 216 sprintf((char *)_buf, "ATE%d", onoff);
AustinKim 0:7a10bb221e55 217
AustinKim 0:7a10bb221e55 218 if(_parser->send(_buf) && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 219 {
AustinKim 0:7a10bb221e55 220 devlog("Turn Echo %s : success\r\n", onoff?"ON":"OFF");
AustinKim 0:7a10bb221e55 221
AustinKim 0:7a10bb221e55 222 ret = RET_OK;
AustinKim 0:7a10bb221e55 223 }
AustinKim 0:7a10bb221e55 224 else
AustinKim 0:7a10bb221e55 225 {
AustinKim 0:7a10bb221e55 226 devlog("Turn Echo %s : failed\r\n", onoff?"ON":"OFF");
AustinKim 0:7a10bb221e55 227 }
AustinKim 0:7a10bb221e55 228
AustinKim 0:7a10bb221e55 229 return ret;
AustinKim 0:7a10bb221e55 230 }
AustinKim 0:7a10bb221e55 231
AustinKim 0:7a10bb221e55 232 int8_t getUsimStatus_WM01(void)
AustinKim 0:7a10bb221e55 233 {
AustinKim 0:7a10bb221e55 234 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 235
AustinKim 0:7a10bb221e55 236 if(_parser->send("AT$$STAT?") && _parser->recv("$$STAT:READY") && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 237 {
AustinKim 0:7a10bb221e55 238 devlog("USIM Status : READY\r\n");
AustinKim 0:7a10bb221e55 239
AustinKim 0:7a10bb221e55 240 ret = RET_OK;
AustinKim 0:7a10bb221e55 241 }
AustinKim 0:7a10bb221e55 242 else
AustinKim 0:7a10bb221e55 243 {
AustinKim 0:7a10bb221e55 244 devlog("Retrieving USIM Status failed\r\n");
AustinKim 0:7a10bb221e55 245 }
AustinKim 0:7a10bb221e55 246
AustinKim 0:7a10bb221e55 247 return ret;
AustinKim 0:7a10bb221e55 248 }
AustinKim 0:7a10bb221e55 249
AustinKim 0:7a10bb221e55 250 int8_t getNetworkStatus_WM01(void)
AustinKim 0:7a10bb221e55 251 {
AustinKim 0:7a10bb221e55 252 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 253 int val, stat;
AustinKim 0:7a10bb221e55 254
AustinKim 0:7a10bb221e55 255 if(_parser->send("AT+CEREG?") && _parser->recv("+CEREG: %d,%d", &val, &stat) && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 256 {
AustinKim 0:7a10bb221e55 257 if((val == 0) && (stat == 1))
AustinKim 0:7a10bb221e55 258 {
AustinKim 0:7a10bb221e55 259 devlog("Network Status : attached\r\n");
AustinKim 0:7a10bb221e55 260
AustinKim 0:7a10bb221e55 261 ret = RET_OK;
AustinKim 0:7a10bb221e55 262 }
AustinKim 0:7a10bb221e55 263 else
AustinKim 0:7a10bb221e55 264 {
AustinKim 0:7a10bb221e55 265 devlog("Network Status : %d, %d\r\n", val, stat);
AustinKim 0:7a10bb221e55 266 }
AustinKim 0:7a10bb221e55 267 }
AustinKim 0:7a10bb221e55 268 else
AustinKim 0:7a10bb221e55 269 {
AustinKim 0:7a10bb221e55 270 devlog("Network Status : Error\r\n");
AustinKim 0:7a10bb221e55 271 }
AustinKim 0:7a10bb221e55 272
AustinKim 0:7a10bb221e55 273 return ret;
AustinKim 0:7a10bb221e55 274 }
AustinKim 0:7a10bb221e55 275
AustinKim 0:7a10bb221e55 276 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 277 // Functions: Cat.M1 PDP context activate / deactivate
AustinKim 0:7a10bb221e55 278 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 279
AustinKim 0:7a10bb221e55 280 int8_t setContextActivate_WM01(void) // Activate a PDP Context
AustinKim 0:7a10bb221e55 281 {
AustinKim 0:7a10bb221e55 282 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 283
AustinKim 0:7a10bb221e55 284 _parser->send("AT*RNDISDATA=1");
AustinKim 0:7a10bb221e55 285
AustinKim 0:7a10bb221e55 286 if(_parser->recv("OK"))
AustinKim 0:7a10bb221e55 287 {
AustinKim 0:7a10bb221e55 288 devlog("Activate a PDP Context\r\n");
AustinKim 0:7a10bb221e55 289
AustinKim 0:7a10bb221e55 290 ret = RET_OK;
AustinKim 0:7a10bb221e55 291 }
AustinKim 0:7a10bb221e55 292 else
AustinKim 0:7a10bb221e55 293 {
AustinKim 0:7a10bb221e55 294 devlog("PDP Context Activation failed\r\n");
AustinKim 0:7a10bb221e55 295 }
AustinKim 0:7a10bb221e55 296
AustinKim 0:7a10bb221e55 297 return ret;
AustinKim 0:7a10bb221e55 298 }
AustinKim 0:7a10bb221e55 299
AustinKim 0:7a10bb221e55 300 int8_t setContextDeactivate_WM01(void) // Deactivate a PDP Context
AustinKim 0:7a10bb221e55 301 {
AustinKim 0:7a10bb221e55 302 int8_t ret = RET_NOK;
AustinKim 0:7a10bb221e55 303
AustinKim 0:7a10bb221e55 304 _parser->send("AT*RNDISDATA=0");
AustinKim 0:7a10bb221e55 305
AustinKim 0:7a10bb221e55 306 if(_parser->recv("OK"))
AustinKim 0:7a10bb221e55 307 {
AustinKim 0:7a10bb221e55 308 devlog("Deactivate a PDP Context\r\n");
AustinKim 0:7a10bb221e55 309
AustinKim 0:7a10bb221e55 310 ret = RET_OK;
AustinKim 0:7a10bb221e55 311 }
AustinKim 0:7a10bb221e55 312 else
AustinKim 0:7a10bb221e55 313 {
AustinKim 0:7a10bb221e55 314 devlog("PDP Context Deactivation failed\r\n");
AustinKim 0:7a10bb221e55 315 }
AustinKim 0:7a10bb221e55 316
AustinKim 0:7a10bb221e55 317 return ret;
AustinKim 0:7a10bb221e55 318 }
AustinKim 0:7a10bb221e55 319
AustinKim 0:7a10bb221e55 320 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 321 // Functions: Cat.M1 Ping test
AustinKim 0:7a10bb221e55 322 // ----------------------------------------------------------------
AustinKim 0:7a10bb221e55 323
AustinKim 0:7a10bb221e55 324 void printPingToHost_WM01(char *host, int pingnum)
AustinKim 0:7a10bb221e55 325 {
AustinKim 0:7a10bb221e55 326 char resp_str[1024] = {0, };
AustinKim 0:7a10bb221e55 327
AustinKim 0:7a10bb221e55 328 if((pingnum < 1) || (pingnum > 10))
AustinKim 0:7a10bb221e55 329 {
AustinKim 0:7a10bb221e55 330 devlog("The maximum number of sending Ping request range is 1-10, and the default value is 4\r\n");
AustinKim 0:7a10bb221e55 331
AustinKim 0:7a10bb221e55 332 return;
AustinKim 0:7a10bb221e55 333 }
AustinKim 0:7a10bb221e55 334
AustinKim 0:7a10bb221e55 335 _parser->set_timeout((1000 * pingnum) + 2000);
AustinKim 0:7a10bb221e55 336
AustinKim 0:7a10bb221e55 337 if(_parser->send("AT*PING=%s,%d", host, pingnum) && _parser->recv("OK"))
AustinKim 0:7a10bb221e55 338 {
AustinKim 0:7a10bb221e55 339 _parser->read(resp_str, sizeof(resp_str));
AustinKim 0:7a10bb221e55 340
AustinKim 0:7a10bb221e55 341 devlog("%s\r\n", resp_str);
AustinKim 0:7a10bb221e55 342 }
AustinKim 0:7a10bb221e55 343
AustinKim 0:7a10bb221e55 344 _parser->set_timeout(WM01_DEFAULT_TIMEOUT);
AustinKim 0:7a10bb221e55 345 _parser->flush();
AustinKim 0:7a10bb221e55 346 }