friendev EtherDune TCP/IP library
Public Member Functions | List of all members
ICMPPinger Class Referenceabstract

Implements an ICMP Echo request service. More...

#include <ICMPPinger.h>

Inheritance diagram for ICMPPinger:
ICMP NetworkService ListItem ENC28J60

Public Member Functions

void ping (const IPAddress &targetIP)
 Send an ICMP Echo request (ping) to the specified target IP address. More...
 
virtual void onPingReply (uint16_t roundtripTime)=0
 

Additional Inherited Members

- Protected Member Functions inherited from ICMP
bool loadAll ()
 Loads the entire ICMP packet into memory. More...
 
void calcICMPChecksum ()
 Calculates the ICMP checksum and populates the checksum field in the ICMP header. More...
 
void sendICMPPacket (const IPAddress &targetIP, uint16_t dataLength)
 Sends an ICMP packet More...
 
- Protected Member Functions inherited from NetworkService
 NetworkService ()
 
 ~NetworkService ()
 
virtual void tick ()
 This is a timer function that is called every NETWORK_TIMER_RESOLUTION milliseconds on every service. More...
 
virtual void onDNSResolve (uint8_t status, uint16_t identification, const IPAddress &ip)
 Called on each network service every time a DNS response is received. More...
 
- Static Protected Member Functions inherited from NetworkService
static bool sendIPPacket (uint16_t length)
 Puts the current in-memory packet in the network More...
 
static void prepareIPPacket (const IPAddress &remoteIP)
 Sets up common IP header values for all outgoing IP packets and calculates the IP header checksum More...
 
static bool sameLAN (IPAddress &dst)
 Determines whether the given IP is in the same subnet as localIP More...
 
static bool begin (uint8_t cspin)
 Initializes EtherDune and the underlying hardware More...
 
static void loop ()
 Gives processing time to EtherDune so that it can check for incoming packets or send queued packets. More...
 
static DNSClientDNS ()
 Obtains access to the DNS service singleton instance. More...
 
- Static Protected Member Functions inherited from ENC28J60
static void writeByte (byte b)
 
static void writeByte (uint16_t dst, byte b)
 
static void writeBuf (uint16_t dst, uint16_t len, const byte *data)
 
static void writeBuf (uint16_t len, const byte *data)
 
static uint16_t hardwareChecksum (uint16_t src, uint16_t len)
 
static uint16_t hardwareChecksumRxOffset (uint16_t offset, uint16_t len)
 
static void moveMem (uint16_t dest, uint16_t src, uint16_t len)
 
static void readBuf (uint16_t src, uint16_t len, byte *data)
 
static void readBuf (uint16_t len, byte *data)
 
static byte readByte (uint16_t src)
 
static void packetSend (uint16_t len)
 
static void packetSend (uint16_t len, const byte *data)
 
static void loadSample ()
 
static void loadAll ()
 
static void release ()
 
static uint8_t begin (uint8_t cspin)
 
static void loop ()
 
static void enableBroadcast ()
 
static bool isLinkUp ()
 Determines whether the network link is ready More...
 
- Static Protected Attributes inherited from NetworkService
static EthBuffer packet
 in-memory packet buffer currently being processed. More...
 
static ARPService ARP
 ARP singleton instance. More...
 
static MACAddress localMAC
 Ethernet MAC address. More...
 
static IPAddress localIP = { 0, 0, 0, 0 }
 IP address of this application. More...
 
static IPAddress gatewayIP = { 0, 0, 0, 0 }
 IP address of the gateway in this network. More...
 
static IPAddress netmask = { 0, 0, 0, 0 }
 Subnet mask. More...
 
static IPAddress dnsIP = { 0, 0, 0, 0 }
 IP address of the DNS server to use. More...
 

Detailed Description

Implements an ICMP Echo request service.

This class allows you to send ping messages.

In order to process ping replies, create a derived class and override the onPingReply() virtual function

See PingTest.ino for an example

Definition at line 30 of file ICMPPinger.h.

Member Function Documentation

virtual void ICMPPinger::onPingReply ( uint16_t  roundtripTime)
pure virtual
void ICMPPinger::ping ( const IPAddress targetIP)

Send an ICMP Echo request (ping) to the specified target IP address.

You can specify the length of the test payload by editing the ICMP_PING_DATA_LENGTH configuration constant. See ICMP configuration for more information

Parameters
targetIPThe target IP address

Definition at line 44 of file ICMPPinger.cpp.


The documentation for this class was generated from the following files: