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

MATLAB и UDP. ЧЯДНТ?

Есть устройство, у которого определён IP – 192.168.1.41, оно шлёт пакеты по IP 192.168.1.160 в порт 2054. Wireshark видит пакеты (рисунок 1), пришедшие по протоколу UDP по Ethernet, но MATLAB возвращает пустую переменную после тайм аута (рисунок 2). Использую функции из справки udp(IP, port) и fread(u, n). Почему MATLAB возвращает пустую переменную?

1.png

2.png

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


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

26 minutes ago, Holy Priest said:

 Почему MATLAB возвращает пустую переменную?

Я не силен в MatLab, но судя по вашим картинкам, он ждет завершающий символ строки LF (последняя картинка, поле terminator).

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


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

Спасибо за ответ. Действительно, один из режимов работы подразумевает наличие начального и завершающего символа. Сделал принудительно, что первый символ, приходящий с устройства, всегда 0xF, последний – всегда 0x0. Не заработало. Затем с помощью команд u.BytesAvailableFcnMode  = 'byte', u.DatagramTerminateMode  = 'off' и u.BytesAvailableFcnCount  = 822 (знаю из wireshark, что идёт всего 822 байта данных) изменил режим работы, но всё равно на выходе пустая переменная с тем же предупреждением о таймауте, что и на рисунке 2.
 

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


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

У вас пакеты широковещательные, задайте МАК адрес вашего абонента.

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


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

2 часа назад, Lmx2315 сказал:

У вас пакеты широковещательные, задайте МАК адрес вашего абонента.

Добавил. Теперь устройство шлёт первые шесть байт MAC адрес сетевой карты компьютера вместо 0xFFFFFFFFFFFF.  Также ни в одном из режимов MATLAB не принимает данные. В Wireshark вижу прописанный MAC.

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


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

1 hour ago, Holy Priest said:

Добавил. Теперь устройство шлёт первые шесть байт MAC адрес сетевой карты компьютера вместо 0xFFFFFFFFFFFF.  Также ни в одном из режимов MATLAB не принимает данные. В Wireshark вижу прописанный MAC.

Попробуйте например YAT терминалом посмотреть.

https://sourceforge.net/projects/y-a-terminal/

 

И проверьте в той ли вы последовательности ввели МАС адрес компа.

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


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

При создании в YAT терминала как UDP сервера с портом 2054 терминал выводит то, что отправляется с устройства.

image.thumb.png.ea15aba89d3b241b73435e4db78bc70e.png

Какая последовательность MAC адреса та? Я посмотрел в свойствах подключений, там строка: физический адрес (MAC) BC-2E- и еще 8 символов. В той же последовательности шлю с устройства.

image.png

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

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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