Arduino Leonardo + Ehernet Shield w5100 как отследить переполнение RX буфера у W5100?
- Войдите на сайт для отправки комментариев
Добрый день, уважаемые!
Имеется 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 пакетов, которые нещадно валятся один за другим, и, как следствие, тупо отбраковываются.
Вопрос? Возможно ли программно отсделить такой факт отбраковки "быстрых" пакетов? Например - мигнуть светодиодом. Может, кто-то уже сталкивался? Спасибо!