Holy Priest 0 24 февраля, 2021 Опубликовано 24 февраля, 2021 · Жалоба Есть устройство, у которого определён IP – 192.168.1.41, оно шлёт пакеты по IP 192.168.1.160 в порт 2054. Wireshark видит пакеты (рисунок 1), пришедшие по протоколу UDP по Ethernet, но MATLAB возвращает пустую переменную после тайм аута (рисунок 2). Использую функции из справки udp(IP, port) и fread(u, n). Почему MATLAB возвращает пустую переменную? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 24 февраля, 2021 Опубликовано 24 февраля, 2021 · Жалоба 26 minutes ago, Holy Priest said: Почему MATLAB возвращает пустую переменную? Я не силен в MatLab, но судя по вашим картинкам, он ждет завершающий символ строки LF (последняя картинка, поле terminator). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Holy Priest 0 25 февраля, 2021 Опубликовано 25 февраля, 2021 · Жалоба Спасибо за ответ. Действительно, один из режимов работы подразумевает наличие начального и завершающего символа. Сделал принудительно, что первый символ, приходящий с устройства, всегда 0xF, последний – всегда 0x0. Не заработало. Затем с помощью команд u.BytesAvailableFcnMode = 'byte', u.DatagramTerminateMode = 'off' и u.BytesAvailableFcnCount = 822 (знаю из wireshark, что идёт всего 822 байта данных) изменил режим работы, но всё равно на выходе пустая переменная с тем же предупреждением о таймауте, что и на рисунке 2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 25 февраля, 2021 Опубликовано 25 февраля, 2021 · Жалоба У вас пакеты широковещательные, задайте МАК адрес вашего абонента. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Holy Priest 0 25 февраля, 2021 Опубликовано 25 февраля, 2021 · Жалоба 2 часа назад, Lmx2315 сказал: У вас пакеты широковещательные, задайте МАК адрес вашего абонента. Добавил. Теперь устройство шлёт первые шесть байт MAC адрес сетевой карты компьютера вместо 0xFFFFFFFFFFFF. Также ни в одном из режимов MATLAB не принимает данные. В Wireshark вижу прописанный MAC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 25 февраля, 2021 Опубликовано 25 февраля, 2021 · Жалоба 1 hour ago, Holy Priest said: Добавил. Теперь устройство шлёт первые шесть байт MAC адрес сетевой карты компьютера вместо 0xFFFFFFFFFFFF. Также ни в одном из режимов MATLAB не принимает данные. В Wireshark вижу прописанный MAC. Попробуйте например YAT терминалом посмотреть. https://sourceforge.net/projects/y-a-terminal/ И проверьте в той ли вы последовательности ввели МАС адрес компа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Holy Priest 0 1 марта, 2021 Опубликовано 1 марта, 2021 (изменено) · Жалоба При создании в YAT терминала как UDP сервера с портом 2054 терминал выводит то, что отправляется с устройства. Какая последовательность MAC адреса та? Я посмотрел в свойствах подключений, там строка: физический адрес (MAC) BC-2E- и еще 8 символов. В той же последовательности шлю с устройства.  Изменено 1 марта, 2021 пользователем Holy Priest Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться