Проверка связи (icmp запросы с ENC28J60)

Тема в разделе "Проводная и беспроводная связь", создана пользователем 3dfx, 26 июн 2014.

  1. 3dfx

    3dfx Нуб

    Привет!

    Никак не могу найти инфу, хотя задача, вроде не такая сложная:
    хочу организовать arduino-устройство которое будет посылать icmp запросы (пинговать) определённый ресурс и в зависимости от потерь, уже дальше выполнять необходимые действия.

    Использовать хочу ENC28J60 + Uno или Nano.

    Подскажите, как реализовать отправку icmp запросов и обработку ответов? Может кому-нибудь статьи где что-то подобное реализовывалось попадались.. Уже всё перерыл)

    Заранее спасибо!
     
  2. Unixon

    Unixon Оракул Модератор

    В библиотеке EtherShield есть для этого специальные функции:
    Код (Text):
    #ifdef PING_client
          void ES_client_icmp_request(uint8_t *buf,uint8_t *destip);
          // you must loop over this function to check if there was a ping reply:
          uint8_t ES_packetloop_icmp_checkreply(uint8_t *buf,uint8_t *ip_monitoredhost);
    #endif // PING_client
     
    3dfx нравится это.
  3. 3dfx

    3dfx Нуб

    Спасибо! Похоже на то что надо, попробую разобраться.

    Не знаете, может где то есть описаний функций на русском языке?
     
  4. 3dfx

    3dfx Нуб

    Несколько продвинулся в этом направлении - нашёл неплохой скетч,который пигует внешней адрес с помощью библиотеки ICMPPing, вот сам скетч - http://labby.co.uk/MyPing.ino
    Но никак не получается завести его с ENC28J60 - просто не происходит подключения (ошибка DHCP) , видимо нужно использовать ICMPPing в связке с библиотекой ETHER_28J60 (пример скетча вот тут есть http://seo-matik.blogspot.ru/2013/05/arduino-nano-enc28j60.html).

    Но реализовать никак не получается, посмотрите, может будут у кого идеи как связать http://labby.co.uk/MyPing.ino с ETHER_28J60

    Заранее благодарен!
     
    Последнее редактирование: 7 июл 2014