Передача данных с использованием RTI Connext DDS - PullRequest
1 голос
/ 09 мая 2020

Есть настольное приложение, которое уже скомпилировано, и я не могу получить доступ к исходному коду. Это приложение генерирует реальные данные полета и предоставляет возможность отправлять эти данные в нужные сокеты по сети. 1011 *). Но я хочу интегрировать DDS в свой проект и сделать это с помощью RTİ Connext DDS.

Я знаю, что для использования DDS такие настройки, как «QoS» и «Topi c», должны быть одинаковыми на обоих издателях. и на стороне подписчика. Кажется, легко выполнить эти настройки в моем приложении, которое я создал и подписываюсь. Но я не могу получить доступ к исходным кодам приложения издателя, поэтому я не могу установить такие параметры, как «QoS» и «Topi c» для передачи данных на стороне издателя.

В результате моего исследования, Я узнал, что это нужно делать с помощью службы маршрутизации. Может ли служба маршрутизации обеспечивать передачу данных между приложениями без определений QoS и Topi c? Или автоматически делает необходимые настройки для передачи данных?

Я новичок в этом и пытаюсь научиться. Буду рад, если кто-нибудь мне поможет разобраться

1 Ответ

0 голосов
/ 09 мая 2020

Один из подходов к интеграции вашего существующего приложения с системой на основе DDS состоит в том, чтобы ввести приложение, которое получает данные, поступающие из вашего существующего приложения, и впоследствии пересылает их в домен DDS после преобразования в ожидаемый формат. Служба маршрутизации RTI была разработана для этого стандартным способом c, но вы также можете использовать свою собственную программу C#, чтобы сделать то же самое.

При использовании службы маршрутизации (RS) все необходимые настройки например, Topi c и имена типов, а также параметры QoS могут быть выбраны с помощью файла конфигурации. Сложной частью является получение данных из вашего исходного приложения, потому что это c специфично для вашей ситуации, тогда как RS - это общий c компонент. Служба маршрутизации позволяет вставлять собственный так называемый адаптер, который, по сути, представляет собой загружаемый плагин, отвечающий за считывание данных из существующего приложения - вы должны написать его самостоятельно. Кроме того, преобразование этих данных можно настроить с помощью так называемого процессора, который также представляет собой часть программного обеспечения, которое вы должны написать самостоятельно.

В вашем случае на данном этапе кажется более подходящим расширить свой C# приложение, которое считывает данные с помощью метода клиент-сервер classi c и передает данные в домен DDS. Для этого вам нужно будет определить DDS DataType в IDL (если вы еще этого не сделали) и позволить генератору кода RTI генерировать связанные типы данных C# и строго типизированные классы C# DataWriter для публикации данных. Ваше приложение должно будет прослушивать данные, поступающие из вашего существующего (серверного) приложения, читать их, когда они поступают, форматировать их в соответствии с типами данных C#, созданными генератором кода DDS, а затем пересылать их на ваш DDS DataWriter. Последний вы можете настроить с помощью Topi c и имени типа, а также настроек QoS в соответствии с вашими потребностями, используя обычные механизмы DDS.

После того, как данные перенаправляются в домен DDS вашим расширенным приложением C#, другие приложения могут подписаться на эти данные напрямую. Действительно, это вопрос выбора правильного Topi c и установки правильных политик QoS. Судя по описанию проблемы, вам не кажется, что вам нужна служба маршрутизации.

Типичные примеры применения служб маршрутизации:

  • Когда вы строите системы систем, Службы маршрутизации могут прозрачно пересылать данные DDS между ними - примерно так, как IP-маршрутизатор делает для IP-трафика c. Примерами являются многоуровневые архитектуры шины данных и системы, которые включают в себя различные подсети или географически рассредоточенные домены DDS, которые необходимо соединить.
  • Если вы хотите импортировать или экспортировать информацию в домен DDS или из него из или в другие типы "данных" домены », служба маршрутизации предоставляет для этого общую структуру c. Это часто требует настройки плагинов для выполнения необходимых преобразований данных, как в вашем случае. Другими примерами, поддерживаемыми «из коробки», являются интеграция с реляционными базами данных для записи временных рядов или для фиксации текущего состояния домена DDS.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...