Skip to content

Commit 46e6416

Browse files
committed
ping: make api compatible to WiFiNINA and WiFi101
1 parent 7af8623 commit 46e6416

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
@@ -562,21 +562,21 @@ void CWifi::setTimeout(unsigned long timeout) {
562562
}
563563

564564
/* -------------------------------------------------------------------------- */
565-
float CWifi::ping(IPAddress ip, unsigned int count) {
565+
int CWifi::ping(IPAddress ip, uint8_t ttl, uint8_t count) {
566566
/* -------------------------------------------------------------------------- */
567-
return ping(ip.toString().c_str(), count);
567+
return ping(ip.toString().c_str(), ttl, count);
568568
}
569569

570570
/* -------------------------------------------------------------------------- */
571-
float CWifi::ping(const char* host, unsigned int count) {
571+
int CWifi::ping(const char* host, uint8_t ttl, uint8_t count) {
572572
/* -------------------------------------------------------------------------- */
573+
int ret = WL_PING_ERROR;
573574
modem.begin();
574575
string res = "";
575-
if (modem.write(string(PROMPT(_PING)), res, "%s,%s,%d\r\n", CMD_WRITE(_PING), host, count)) {
576-
String rsl = res.c_str();
577-
return rsl.toFloat();
576+
if (modem.write(string(PROMPT(_PING)), res, "%s,%s,%d,%d\r\n", CMD_WRITE(_PING), host, ttl, count)) {
577+
ret = atoi(res.c_str());
578578
}
579-
return 0;
579+
return ret;
580580
}
581581

582582
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)