Arduino Leonardo + Ehernet Shield w5100 как отследить переполнение RX буфера у W5100?

Нет ответов
unicorn79
Offline
Зарегистрирован: 03.12.2014

Добрый день, уважаемые!

Имеется Arduino Leonardo + Ehernet Shield w5100. Отсылаю по локальной LAN сети через своё ПО в быстром цикле UDP пакеты (все по 14 знаков) в Леонардо, причем специально для теста нумерую их:

71224000100100
71224000100101
71224000100102
71224000100103
и т.д.

В Ардуине "ловлю их" и вывожу в монитор порта, т.е. что поймано по LAN-интерфейсу:

void loop() {
  // if there's data available, read a packet
  int packetSize = Udp.parsePacket();
  if (packetSize==14) {
  // Размер наш. Прочитаем уже содержимое полученного пакета в переменную packetBufffer
  Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
    Serial.println(packetBuffer);
  }

И у меня получается, что количество отправленных пакетов через моё ПО на компьютере (посылаю 200 пакетов):

71224000100100

....

71224000100300

не равно кол-ву полученных и отображенных в мониторе порта, т.е. где-то после 71224000100198 уже идут потери, т.е. следующим сразу уже идет 71224000100205 и т.д. т.е. налицо переполнение RX буфера именно самого W5100 и невозможность обработки "быстрых" UDP пакетов, которые нещадно валятся один за другим, и, как следствие, тупо отбраковываются.

Вопрос? Возможно ли программно отсделить такой факт отбраковки "быстрых" пакетов? Например - мигнуть светодиодом. Может, кто-то уже сталкивался? Спасибо!