Como eu poderia simplificar o código abaixo, especialmente a parte que chama a função ping e imprime o resultado? Pensei em concatenar parte da variável a ser tratada com um contador, exemplo external_ip+contador porém não sei como fazer.
#include <SPI.h>
#include <Ethernet.h>
#include <ICMPPing.h>
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
IPAddress ip(192,168,1, 177);
byte external_ip1[] = {72,21,215,232};
byte external_ip2[] = {8,8,8,8};
byte external_ip3[] = {200,154,56,80};
unsigned long initial_time = millis();
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip);
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
int ping(byte use_ip[]){
SOCKET pingSocket = 0;
char buffer [256];
int contador = 1;
int contaOK = 0;
boolean pingRet;
ICMPPing ping(pingSocket);
pingRet = ping(4, use_ip, buffer);
return pingRet;
}
void loop() {
int test;
unsigned long current_time = millis();
while ((current_time - initial_time) > 20000){
initial_time = current_time;
test = ping(external_ip1);
Serial.print (external_ip1 [0]);
Serial.print (".");
Serial.print (external_ip1 [1]);
Serial.print (".");
Serial.print (external_ip1 [2]);
Serial.print (".");
Serial.print (external_ip1 [3]);
if (test == 0)
Serial.println(" Não responde");
else
Serial.println(" Respondendo");
test = ping(external_ip2);
Serial.print (external_ip2 [0]);
Serial.print (".");
Serial.print (external_ip2 [1]);
Serial.print (".");
Serial.print (external_ip2 [2]);
Serial.print (".");
Serial.print (external_ip2 [3]);
if (test == 0)
Serial.println(" Não responde");
else
Serial.println(" Respondendo");
test = ping(external_ip3);
Serial.print (external_ip3 [0]);
Serial.print (".");
Serial.print (external_ip3 [1]);
Serial.print (".");
Serial.print (external_ip3 [2]);
Serial.print (".");
Serial.print (external_ip3 [3]);
if (test == 0)
Serial.println(" Não responde");
else
Serial.println(" Respondendo");
}
}