Skip to content

Commit a4da4b6

Browse files
committed
ping: make api compatible to WiFiNINA and WiFi101
1 parent a70d373 commit a4da4b6

File tree

4 files changed

+24
-17
lines changed

4 files changed

+24
-17
lines changed

libraries/WiFiS3/examples/WiFiPing/WiFiPing.ino

+8-8
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,11 @@ void loop() {
7171
Serial.print("Trying to ping github.com on IP: ");
7272
Serial.println(remote_ip);
7373

74-
// using default ping count of 5
75-
float res = WiFi.ping(remote_ip);
74+
// using default ping count of 1
75+
int res = WiFi.ping(remote_ip);
7676

77-
if (res != 0) {
78-
Serial.print("Pin average response time: ");
77+
if (res > 0) {
78+
Serial.print("Ping response time: ");
7979
Serial.print(res);
8080
Serial.println(" ms");
8181
}
@@ -88,11 +88,11 @@ void loop() {
8888
Serial.print("Trying to ping host: ");
8989
Serial.println(remote_host);
9090

91-
// setting ping count to 10 instead of default 5
92-
float res1 = WiFi.ping(remote_host,10);
91+
// setting ttl to 128 and ping count to 10
92+
int res1 = WiFi.ping(remote_host, 128, 10);
9393

94-
if (res1 != 0) {
95-
Serial.print("Pin average response time: ");
94+
if (res1 > 0) {
95+
Serial.print("Ping average response time: ");
9696
Serial.print(res1);
9797
Serial.println(" ms");
9898
}

libraries/WiFiS3/src/WiFi.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -559,21 +559,21 @@ void CWifi::setTimeout(unsigned long timeout) {
559559
}
560560

561561
/* -------------------------------------------------------------------------- */
562-
float CWifi::ping(IPAddress ip, unsigned int count) {
562+
int CWifi::ping(IPAddress ip, uint8_t ttl, uint8_t count) {
563563
/* -------------------------------------------------------------------------- */
564-
return ping(ip.toString().c_str(), count);
564+
return ping(ip.toString().c_str(), ttl, count);
565565
}
566566

567567
/* -------------------------------------------------------------------------- */
568-
float CWifi::ping(const char* host, unsigned int count) {
568+
int CWifi::ping(const char* host, uint8_t ttl, uint8_t count) {
569569
/* -------------------------------------------------------------------------- */
570+
int ret = WL_PING_ERROR;
570571
modem.begin();
571572
string res = "";
572-
if (modem.write(string(PROMPT(_PING)), res, "%s,%s,%d\r\n", CMD_WRITE(_PING), host, count)) {
573-
String rsl = res.c_str();
574-
return rsl.toFloat();
573+
if (modem.write(string(PROMPT(_PING)), res, "%s,%s,%d,%d\r\n", CMD_WRITE(_PING), host, ttl, count)) {
574+
ret = atoi(res.c_str());
575575
}
576-
return 0;
576+
return ret;
577577
}
578578

579579
CWifi WiFi;

libraries/WiFiS3/src/WiFi.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ class CWifi {
6161
/*
6262
* PING
6363
*/
64-
float ping(IPAddress ip, unsigned int count = 5);
65-
float ping(const char* host, unsigned int count = 5);
64+
int ping(IPAddress ip, uint8_t ttl = 128, uint8_t count = 1);
65+
int ping(const char* host, uint8_t ttl = 128, uint8_t count = 1);
6666

6767
/*
6868
* Start WiFi connection for OPEN networks

libraries/WiFiS3/src/WiFiTypes.h

+7
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,11 @@ enum wl_enc_type {
3131
ENC_TYPE_UNKNOWN = 255
3232
};
3333

34+
typedef enum {
35+
WL_PING_DEST_UNREACHABLE = -1,
36+
WL_PING_TIMEOUT = -2,
37+
WL_PING_UNKNOWN_HOST = -3,
38+
WL_PING_ERROR = -4
39+
} wl_ping_result_t;
40+
3441
#endif

0 commit comments

Comments
 (0)