Пользовательский Дейтаграммный Протокол (UDP или UDP/IP) является транспортным протоколом, разделенным на уровни сверху межсетевого протокола (IP). UDP является протоколом без установления соединения. Приложение с помощью UDP готовит пакет и отправляет его в адрес получателя без первой проверки, чтобы видеть, готов ли получатель получить пакет. Если приемный конец не готов получить пакет, пакет потерян.
UDP поддерживается на этих платформах:
Linux® 64-bit
macOS 64-bit
Microsoft® Windows® 64-bit
Интерфейс UDP поддерживается на тех же платформах как MATLAB®. Для обновлений списка в настоящее время поддерживаемых платформ см. https://www.mathworks.com/support/sysreq/current_release/.
Убедитесь, что у вас есть правильный инструментальный драйвер, установленный для вашего устройства. Обратитесь к своей документации устройства и веб-сайту поставщика.
Убедитесь, что ваше устройство поддерживается в Instrument Control Toolbox™. Смотрите, что Мое Оборудование Поддержано?.
Убедитесь, что Instrument Control Toolbox распознает ваше устройство, при помощи функции instrhwinfo
с именем интерфейса udp
. Например:
instrhwinfo('udp')
ans = HardwareInfo with properties: LocalHost: {6x1 cell} JarFileVersion: 'Version 3.7'
Убедитесь, что можно создать объект UDP. Вы создаете объект UDP с функцией udp
, которая не требует имени удаленного хоста как входной параметр. Однако, если вы используете объект связаться с определенным инструментом, необходимо задать удаленный хост и номер порта.
Несмотря на то, что UDP является связью не сохраняющей состояние, открытие объекта UDP с недопустимым именем хоста сгенерирует ошибку. Можно сконфигурировать значения свойств во время создания объекта, такие как свойство LocalPort
, если вы будете использовать объект считать данные из инструмента. Например, создать объект UDP сопоставило с удаленным хостом 127.0.0.1
, удаленный порт 4012
и локальный порт 3533
:
u = udp('127.0.0.1', 4012, 'LocalPort', 3533);
Можно проверить объект путем рассмотрения свойств объектов, использования имени, которое вы присвоили объекту, u
в этом случае.
disp(u) UDP Object : UDP-127.0.0.1 Communication Settings RemotePort: 4012 RemoteHost: 127.0.0.1 Terminator: 'LF' Communication State Status: closed RecordStatus: off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0
Убедитесь, что можно соединиться с удаленным хостом, с помощью функции fopen
с именем объекта.
fopen(u);
Если компьютер или хост не будут существовать, вы получите предупреждение. Можно попытаться проверить с помощью ping-запросов компьютер, чтобы видеть, отвечает ли он:
!ping hostname
Когда вы соединились, можно связаться с устройством. Если отправка и получение не работают, можно проверять следующее:
Убедитесь, что имя узла/IP существует. Попробуйте !ping hostname
.
Убедитесь, что RemotePort
и LocalPort
правильны. RemotePort
является портом, который другой компьютер или приложение слушают для трафика UDP. LocalPort
является портом на компьютере, который MATLAB слушает для трафика UDP.
Посмотрите на установку свойства DatagramTerminateMode
. Настройка по умолчанию on
заставляет UDP вести себя по-другому, чем другие интерфейсы. Попробуйте обе настройки. Вы также, возможно, должны установить другие свойства, такие как buffer size. Смотрите Функции и Свойства (ASCII) и Функции и Свойства (Двоичный файл) для получения дополнительной информации о свойствах и значениях.
UDP не является надежным протоколом, и пакеты могут быть пропущены. Вы, возможно, должны попытаться отправить или получить многократно.
Смотрите Данные о ASCII Рида и Записи по UDP и Двоичные данные Рида и Записи по UDP для примеров коммуникации по UDP и информации об использовании свойств.