Nano v3 +ethernet ENC28j60 = ping

sersahar
Offline
Зарегистрирован: 04.06.2014

Здравствуйте. Пытаюсь разобраться с Nano v3 и ENC28j60. Требуется написать код пинговалки хоста, вслучае если недоступен, перезагрузить. Работу управлением выходами на  реле освоил. А вот что то с пингованием проблемы. Не могу найти подходящую библиотеку с примером ( Будте добры, помогите :)

 

sersahar
Offline
Зарегистрирован: 04.06.2014

нашел пример

/*
  Ping Example
 
 This example repeatedly sends ICMP pings and sends the result over the serial port.
 
 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 
 created 30 Sep 2010
 by Blake Foster
 
 */

#include <SPI.h>         
#include <Ethernet.h>
#include <ICMPPing.h>

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // max address for ethernet shield
byte ip[] = {192,168,2,177}; // ip address for ethernet shield
byte pingAddr[] = {192,168,2,1}; // ip address to ping

SOCKET pingSocket = 0;

char buffer [256];

void setup() 
{
  // start Ethernet
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
}

void loop()
{
  ICMPPing ping(pingSocket);
  ping(4, pingAddr, buffer);
  Serial.println(buffer);
  delay(500);
}

Вот только не пойму, какое условие мне нужно проверить, что пинга нет, чтобы перезагрузить выход (

toc
Offline
Зарегистрирован: 09.02.2013

Этот пример содержит "Ethernet.h" - значит он для чипа w5100, а не ENC28j60.

sersahar
Offline
Зарегистрирован: 04.06.2014

а для моего случая не подскажите?

toc
Offline
Зарегистрирован: 09.02.2013
sersahar
Offline
Зарегистрирован: 04.06.2014

не могу понять, где тут адрес назначения (что я пингую). И так же, по какому условию мне понимать, что пинг пропал?

toc
Offline
Зарегистрирован: 09.02.2013

1. в 31 или 34 строке
2. это Вам придётся запрограммировать