Перейти к содержанию
    

Вопросы по Wiznet 5500

Здравствуйте. Начал тут разбираться с W5500 возникли некоторые вопросы. 

Нужно включить UDP на первом сокете. Как мне правильно разобрать входящие сообщения.

Например я получаю сразу много пакетов от разных устройств, нужно обработать эти пакеты и отправить ответ обратно каждому. Я так понимаю принятые данные от всех отправителей будут находиться в одном приемном буфере? И как мне узнать какие данные от кого? И еще нужно как то узнать IP и порт каждого отправителя для формирования ответного пакета. Может кто разбирался с этим?

Может какая последовательность чтения-запись регистров нужна?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если вы включили udp сокет, значит там будут сообщения только от одного устройства, имхо. А вот порт с ip вы, скорее всего не узнаете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самое простое - включите в данные UDP инф. отправителя ( IP 4 байта и порт 2 байта).

Вся необходимая информация содержится в полученном IP-пакете (IP отправителя, код протокола и номер порта).

В UDP данные приходят "пакетами", соотв-но они не смогут смешаться в буфере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё очень просто. Принимать пакеты ты будешь через recvfrom(), у которого один из параметров это как раз указатель на структуру с адресом отправителя, поэтому от кого пришло сообщение ты узнаешь без проблем. Ессно, по этому же адресу отправишь ответ. Ещё учти размеры сообщений и размер приёмного буфера у 5500. Возможно, тебе есть смысл увеличить размер буфера приёмника.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неужели все настолько плохо с головой у инженеров Визнета? Еще 3100 (с более ранними не работал), и далее 3150, 5100 имели в самом начале вычитываемого из сокета UDP блока данных размер принятого пакета, адрес и порт отправителя. Я не думаю, что в 5500 они изобрели велосипед. Да, в datasheet на 5500 это не отписано. Может они унесли эту информацию в какой-то другой документ, лень искать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 15.06.2022 в 20:46, k155la3 сказал:

В UDP данные приходят "пакетами", соотв-но они не смогут смешаться в буфере.

Не, то что пакетами это понятно. Но допустим приходят два пакета один за одним сразу. Как я вычленю IP и порт из этого пакета?

Ну ардуиновская либа как то же читает это все?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 16.06.2022 в 10:54, Сергей Борщ сказал:

имели в самом начале вычитываемого из сокета UDP блока данных размер принятого пакета, адрес и порт отправителя.

Здравствуйте. А можете сказать где про это можно почитать. 

Может у вас есть мануал где это написано?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/1/2022 at 6:03 PM, Evgeni said:

Ну ардуиновская либа как то же читает это все?

А что мешает посмотреть как она это делает ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, Evgeni сказал:

Может у вас есть мануал где это написано?

Да он не секретный вроде...

image.thumb.png.31e9754ebaa9b8399d354fabb0a5b3b1.png

 

image.thumb.png.24097bc2abdf1d54fdc7666117c6f0a3.png

правда тут они перепутали source и destination, но дальше в примере кода все корректно:

image.thumb.png.2499ac90e367f591bd19b093d4e5610e.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Недавно делал работу с UDP на W5500, поэтому гадать не буду.

Совершенно верно заметили:

On 6/16/2022 at 12:47 PM, tonyk_av said:

Принимать пакеты ты будешь через recvfrom(), у которого один из параметров это как раз указатель на структуру с адресом отправителя

Поэтому никаких проблем с определением адреса отправителя. нет. В буфере находится пакет данных со всеми атрибутами, а не тупой поток байт.

Похоже, что ТС даже не удосужился прочитать ни даташит, ни описание API, хотя документация на W5500, по-моему, вполне внятная.

Изменено пользователем tonyk_av

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...