Получение пакетов UDP из simulink с помощью блоков UDP Receive разных библиотек.
Всем привет! Данный вопрос возник в результате тестирования возможностей simulink получать и отображать полученные по протоколу UDP данные. И даже после дня боли и страдания возни и попыток получить один заветный пакетик данных в окне модели simulink остались вопросы на которые я не смог найти ответы в свободном доступе, ибо любой найденный материал по теме UDP в simulik выглядит как-то так: Сюда пишем то-то и то-то и вуаля, смотри, все работает.... А У МЕНЯ НЕ РАБОТАЕТ!! Надеюсь нашему самому продвинутому в вопросах моделирования сообществу удасться разгадать проблему.
Если кратко, то основной вопрос формулируется так:
0. Почему блок UDP Receive библиотеки Instrument Control Toolbox не работает при любых танцах с бубном настройках?
Далее подробно о проблеме.
Виртуальный стенд представляет из себя ПК с simulink, подключенный к локальной сети и имеет ip 192.168.7.164, это наш "приемник".
На этот же пк уставлена виртуальная машина с ubuntu на борту, подключенная к той же сети и имеющая ip 192.168.7.133. Тут уже установленна программа packetsender, которая позволяет отправлять пакеты информации на любой ип, это наш "передатчик".
Так выглядит "передатчик"
Далее опустим все мучения автора и разберем последнюю версию модели "приемника", исходник которой прикреплен к данному посту ниже.
Так выглядит "приемник"
Она состоит из двух блоков с одинаковым названием UDP Receive , но из разных библиотек, а именно: Instrument Control Toolbox и DSP System Toolbox. А так же блоков отображения и сохранения полученных данных.
Так вот основная загвоздка в том, что блок DSP System Toolbox принимает информацию!! а блок Instrument Control Toolbox молчит.
Блоки UDP Receive имеют одинаковые параметры настройки:
Приведенные выше значения настроек были вычисленны опытным путем и с помощью данной публикации https://github.com/alireza787b/X-Plane-11-Simulink-Real-Time-Communication
Local IP port: 55555 (любой свободный порт)
Remote IP address: '127.0.0.1' (так называемый localhost. Использование адреса "приемника" 192.168.7.164 не дает результатов, что странно)
Remote address: 192.168.7.133 (адресс "передатчика", пробовал вводить локалхост но не пашет)
Remote IP address: '127.0.0.1' (адресс "передатчика")
Remote port: 5353 (порт "передатчика". Порт виртуальной машины, перебирались все открытые порты но это не дало результата)
Отсюда дополнительные вопросы:
00. какого черта?
1. Почему нужно вводить адрес локальной машины а не удаленной в поле Remote IP address блока из DSP System Toolbox ?
2. Какой все-таки адресс нужно вводить в блоке Remote address из Instrument Control Toolbox ?
3. Какой порт вводить в поле Remote port ? Любой из открытых или как-то создовать отдельный?
Комментарии