Это оригинальная реализация на C++. Для реализации на Rust следующего поколения, пожалуйста, взгляните на iceoryx2.
Здорово, что вы обратились к этому интересному проекту Eclipse! Давайте начнём с краткого обзора, представим область проекта и всё, что вам нужно для установки и первого запуска примера.
Итак, сначала: что такое iceoryx?
Iceoryx — это промежуточное программное обеспечение для межпроцессного взаимодействия (IPC) для различных операционных систем (в настоящее время мы поддерживаем Linux, macOS, QNX, FreeBSD и Windows 10). Оно берёт своё начало в автомобильной промышленности, где большие объёмы данных должны передаваться между различными процессами, когда речь идёт о системах помощи водителю или автоматизированных системах вождения. Однако эффективные механизмы связи также могут быть применены к более широкому спектру случаев использования, например, в области робототехники или разработки игр.
Iceoryx использует истинный подход с нулевым копированием и общей памятью, который позволяет передавать данные от издателей подписчикам без единой копии. Это обеспечивает передачу данных с постоянной задержкой независимо от размера полезной нагрузки. Для получения дополнительной информации ознакомьтесь с введением в iceoryx на 1000 слов (https://www.eclipse.org/community/eclipse_newsletter/2019/december/4.php).
Вы правы, промежуточное ПО — это перегруженный термин, и он может быть всем или ничем. Чтобы получить лучшее представление о том, что это значит для iceoryx, ознакомьтесь с нашими целями и задачами (doc/goals-non-goals.md).
Не пугайтесь API при просмотре примеров. Думайте об untyped C++ и C API как о «сантехнике» («сантехника», как определено в Git, что означает низкий уровень). Мы сами не используем «сантехнические» API, вместо этого мы используем типизированный C++ API. Обычный вариант использования заключается в том, что iceoryx интегрируется в качестве высокопроизводительного транспортного уровня IPC в более крупную структуру с дополнительными слоями API. Примером такого «фарфорового» API может служить ROS 2 (https://www.ros.org/).
Полную документацию по API можно найти на сайте 🌐 https://iceoryx.io. Поддерживаемые платформы
Модификация или добавление новых платформ описана в статье custom iceoryx platforms.
Операционная система | Компилятор | Поддерживает права доступа для общей памяти | Разбор командной строки |
---|---|---|---|
Linux | gcc/clang | Да | Да |
QNX | gcc | Да | Да |
MacOS | clang | Нет, реализация не планируется | Да |
Windows 10 | msvc | Нет, реализация не планируется | Будет реализован |
FreeBSD (Unix) | clang | Нет, реализация не планируется | Да |
В целом, платформы Unix должны работать с iceoryx, но мы тестируем только FreeBSD на нашем CI.
Где используется Eclipse iceoryx
Фреймворк | Описание |
---|---|
ROS 2 | Eclipse iceoryx можно использовать внутри Robot Operating System с rmw_iceoryx |
Eclipse eCAL | Открытый фреймворк от Continental AG, поддерживающий pub/sub и различные протоколы сообщений |
RTA-VRTE | Программный фреймворк AUTOSAR Adaptive Platform для бортового компьютера автомобиля от ETAS GmbH |
Cyclone DDS | Производительная и надёжная реализация DDS с открытым исходным кодом, поддерживаемая ZettaScale Technology |
Apex.Ida от Apex.AI | Безопасное и сертифицированное промежуточное ПО для автономных мобильных систем от Apex.AI |
AVIN AGNOSAR Adaptive Platform | Продукт AUTOSAR Adaptive Platform от AVIN Systems |
Инструкции по сборке и установке можно найти здесь.
После того как вы собрали всё необходимое, вы можете продолжить работу с примерами (см. ./iceoryx_examples/README.md).
Если вы хотите избежать установки чего-либо на хост-машине, но у вас установлен Docker, то можно использовать его для сборки и запуска приложений iceoryx.
Информацию о том, как это сделать, см. в специальном файле README.md.
Уровни качества — от 5 до 1+, где 1+ — самый высокий уровень.
Подробности о мерах качества в соответствии с рекомендациями ROS 2 см. в Quality Declaration.
Проект CMake/цель | Текущий уровень | Целевой уровень QNX | Целевой уровень Linux, Windows, macOS |
---|---|---|---|
iceoryx_hoofs | 2 | 1+ | 1 |
iceoryx_posh | 2 | 1+, 2 | 1 |
iceoryx_binding_c | 2 | 2 | 2 |
iceoryx_examples | 5 | 4 | 4 |
iceoryx_introspection | 5 | 4 | 4 |
iceoryx_meta | 5 | 5 | 5 |
Что-то отсутствует или есть идеи для других интересных примеров? Переходите...
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )