Интерфейс UDP Поиска и устранения проблем

Пользовательский Дейтаграммный Протокол (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/.

Настройка и связь

  1. Убедитесь, что у вас есть правильный инструментальный драйвер, установленный для вашего устройства. Обратитесь к своей документации устройства и веб-сайту поставщика.

  2. Убедитесь, что ваше устройство поддерживается в Instrument Control Toolbox™. Смотрите, что Мое Оборудование Поддержано?.

  3. Убедитесь, что Instrument Control Toolbox распознает ваше устройство, при помощи instrhwinfo функция с udp 'interfaceName' . Например:

    instrhwinfo('udp')
    ans = 
    
     HardwareInfo with properties:
    
             LocalHost: {6x1 cell}
        JarFileVersion: 'Version 3.7'
  4. Убедитесь, что можно создать объект 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
  5. Убедитесь, что можно соединиться с удаленным хостом, с помощью fopen функция с именем объекта.

    fopen(u);

    Если компьютер или хост не будут существовать, вы получите предупреждение. Можно попытаться проверить с помощью ping-запросов компьютер, чтобы видеть, отвечает ли он:

    !ping hostname
  6. Когда вы соединились, можно связаться с устройством. Если отправка и получение не работают, можно проверять следующее:

    • Убедитесь, что имя узла/IP существует. Попробуйте !ping hostname.

    • Убедитесь RemotePort и LocalPort правильны. RemotePort порт, который другой компьютер или приложение слушают для трафика UDP. LocalPort порт на компьютере, который MATLAB слушает для трафика UDP.

    • Посмотрите на установку DatagramTerminateMode свойство. Настройка по умолчанию on заставляет UDP вести себя по-другому, чем другие интерфейсы. Попробуйте обе настройки. Вы также, возможно, должны установить другие свойства, такие как buffer size. Смотрите Функции и Свойства (ASCII) и Функции и Свойства (Двоичный файл) для получения дополнительной информации о свойствах и значениях.

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

    Смотрите Данные о ASCII Рида и Записи по UDP и Двоичные данные Рида и Записи по UDP для примеров коммуникации по UDP и информации об использовании свойств.