WS5100 und Ping Timeout

Hallo Leute,

ich verwende einen Uno und ein Netzwerk Shield mit einem WS5100.
Ich probiere mich gerade daran, Netzwerkteilnehmer (IP Adressen) zu pingen, um zu sehen ober der Teilnehmer (Gerät) eingeschaltet ist oder nicht.

Für die Ping Funktion verwende ich die BiBo #include <ICMPPing.h>. Bis hierhin funktioniert auch alles.

Was mich stört, ist wenn der Teilnehmer nicht erreichbar ist. Dann dauert die Ping Abfrage etwa 5 Sekunden. Und ich habe keine Ahnung, an welcher Stelle man ein Timeout beim Ping definieren kann. Wenn man direkt in die ICMPPing.h schaut, dann findet man die Einstellung
#define PING_TIMEOUT 1000
wieder. Jedoch passen die 1000ms nicht zur Rückgabezeit (etwa 5sec) und eine Änderung der bringt auch nichts. Ich habe den Verdacht, das die Timeout Zeit irgendwo bei der WS5100 BiBo fest geschrieben ist. Aber da finde ich nichts.

Wie kann man das Timeout beim Ping bei Nichterreichen reduzieren?

refo

Dafür gibts den Setter: void setTimeout(uint16_t setTo) Die Gesamtzeit ergibt sich aus Timeout*Retries, wenn der Zielrechner offline ist.

ohne Gewähr, da ungetestet

Hallo Combie,

[u]in der Definition:[/u]

define PING_REQUEST_TIMEOUT_MS 50

[u]im Setup:[/u] ICMPPing::setTimeout(PING_REQUEST_TIMEOUT_MS);

gibt es als Beispiel Sketch "PingAsync".

Das war mein erster Gedanke, leider auch ohne Erfolg.

refo