当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Arduino MKRGSM - grps.ping()用法及代码示例


说明

ping 网络上的远程设备。

用法


grps.ping(ip);
grps.begin(ip, ttl);
grps.begin(host);
grps.begin(host, ttl);

参数

ip:要 ping 的 IP 地址(4 个字节的数组)

主机:要 ping 的主机(字符串)

ttl:生存时间(可选,默认为 128)。请求可以转发到的最大路由器数。

返回

GPRS_PING_DEST_UNREACHABLE 当目标(IP 或主机不可达)时 GPRS_PING_TIMEOUT 当 ping 超时时 GPRS_PING_UNKNOWN_HOST 当主机无法解析时 GPRS_PING_ERROR 当发生错误时

示例

/*

 This uses an MKR GSM 1400 to continuously ping a host specified by IP Address or name.

Circuit:
* MKR GSM 1400 board
* Antenna
* SIM card with a data plan

 created 06 Dec 2017
 by Arturo Guadalupi
*/
#include <MKRGSM.h>

#include "arduino_secrets.h"
// Please enter your sensitive data in the Secret tab or arduino_secrets.h
// PIN Number
const char PINNUMBER[]     = SECRET_PINNUMBER;
// APN data
const char GPRS_APN[]      = SECRET_GPRS_APN;
const char GPRS_LOGIN[]    = SECRET_GPRS_LOGIN;
const char GPRS_PASSWORD[] = SECRET_GPRS_PASSWORD;

// initialize the library instance
GSMSSLClient client;
GPRS gprs;
GSM gsmAccess;

// Specify IP address or hostname
String hostName = "www.google.com";
int pingResult;

void setup() {
 // Initialize serial and wait for port to open:
 Serial.begin(9600);
 while (!Serial) {
   ; // wait for serial port to connect. Needed for native USB port only
 }

 Serial.println("Starting Arduino GPRS ping.");
 // connection state
 bool connected = false;

 // After starting the modem with GSM.begin()
 // attach the shield to the GPRS network with the APN, login and password
 while (!connected) {
   if ((gsmAccess.begin(PINNUMBER) == GSM_READY) &&
       (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) == GPRS_READY)) {
     connected = true;
   } else {
     Serial.println("Not connected");
     delay(1000);
   }
 }
}

void loop() {
 Serial.print("Pinging ");
 Serial.print(hostName);
 Serial.print(": ");

 pingResult = gprs.ping(hostName);

 if (pingResult >= 0) {
   Serial.print("SUCCESS! RTT = ");
   Serial.print(pingResult);
   Serial.println(" ms");
 } else {
   Serial.print("FAILED! Error code: ");
   Serial.println(pingResult);
 }

 delay(5000);
}

相关用法


注:本文由纯净天空筛选整理自arduino.cc大神的英文原创作品 MKRGSM - grps.ping()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。