Разработчики Qt представили (https://blog.qt.io/blog/2016/06/08/announcing-the-qt-automot.../) новый продукт Qt Automotive Suite, в рамках которого развивается набор компонентов для оснащения автомобильных информационно-развлекательных систем и приборных панелей. Первый выпуск ожидается в конце июня, одновременно с выпуском Qt 5.7. Проект будет распространяться (http://code.qt.io/cgit/) под свободной и коммерческой лицензиями, используя открытую модель разработки в стиле Qt. В качестве базовой платформы будут поддерживаться различные варианты Linux. Для быстрого ознакомления будут подготовлены сборки на базе платформы Yocto (https://www.opennet.me/opennews/art.shtml?num=35177) для плат Sabre-Lite i.MX6 и NVIDIA DriveCX.
Qt уже достаточно активно используется в автомобильных интерфейсах и хорошо адаптирован для данного применения, но производителям приходится заново изобретать велосипед и дублировать работу друг друга. Проект Qt решил выступить связующим звеном и объединить разрозненные инженерные ресурсы, подготовив набор программных компонентов, расширенный API и специализированные инструменты. Использование единого стека Qt для автомобильных систем позволит ускорить разработку, повысить качество и снизить стоимость разработки и сопровождения.Ключевые элементы Qt Automotive Suite:
- Qt for Device Creation (https://www.qt.io/qt-for-device-creation/) - набор для создания полноценных загрузочных мобильных систем с окружением на базе Qt и QML. Для обработки web-контента предложен Qt WebEngine на базе движка Chromium;
- Менеджер приложений - позволяет сформировать рабочее окружения в виде набора обособленных приложений, каждое из которых решает свою функциональную задачу. В отличие от монолитной архитектуры интерфейсов автомобильных информационно-развлекательных систем, разбиение интерфейса на серию небольших приложений позволяет вовлекать в разработку независимые команды разработчиков и отдельно тестировать каждый компонент, а также упрощает организацию распространения обновлений. Менеджер приложений отвечает за весь жизненный цикл приложения, от проверки установочного пакета и контроля прав доступа до управления задачами (например, завершение неактивных процессов в случае нехватки памяти). Для ускорения запуска программ используется технология pre-forking;
- Qt Wayland Compositor - многопоточная система отрисовки для встраиваемых устройств, использующая протокол Wayland. Qt Wayland Compositor интегрируется с менеджером приложений и обеспечивает как работу модулей с реализацией виртуальной клавиатуры и системы вывода уведолмений, так и организует вывод на экран информации от разных приложений;- Набор типовых приложений, таких как мультимедийный проигрыватель, интерфейс для осуществления звонков по телефону и приборная панель;
- QtIVI API - стандартизованный программный интерфейс для взаимодействия с автомобильными подсистемами, унифицирующий доступ приложений к возможностям платформ от различных поставщиков. Бэкенды для QtIVI API подготовлены для платформ GENIVI, QNX и AGL, что позволяет создавать приложения на Qt, которые могут работать поверх различных низкоуровневых системных окружений;
- Эмулятор устройств - эмулирует QtIVI API на обычном ПК, что позволяет тестировать разрабатываемые приложения без необходимости их выполнения на реальном автомобильном оборудовании;- QML Live - позволяет наблюдать изменения оформления сразу после редактирования QML-файла, без пересборки приложения. Даёт возможность наглядно оценивать и корректировать изменения, по мере их внесения;
- Средства для сборки приложения и развёртывания на целевом устройстве с возможностью удалённой отладки из среды разработки Qt Creator;
- Инструменты для профилирования и диагностики проблем с потреблением памяти. Новый инструмент GammaRay позволяет во время работы приложения выполнять интроспекцию, визуализацию и редактирование внутренних структур.
URL: https://blog.qt.io/blog/2016/06/08/announcing-the-qt-automot.../
Новость: http://www.opennet.me/opennews/art.shtml?num=44566
А KDEмобиль будет?
Будет. И с каждой новой версией будет все чаще глохнуть и больше жрать. Советую присмотреться к DWM-байку
Когда-то был QT Embedded или что-то вроде того, когда в IDE можно было закодить и одной кнопкой послать в девайс, запустив одновременно код. Тут что-то другое или просто то самое заопенсорсили?
Null pointer exception - это именно то что каждый автомобилист хотел бы увидеть на приборной панели в самый неподходящий момент.
> Null pointer exception - это именно то что каждый автомобилист хотел бы
> увидеть на приборной панели в самый неподходящий момент.Не увидит. Потому что не будет этого censored нигде. Даже у фольгированных китайцев. Потому что тем проще своровать что-то реально работающее, чем какие-то костыли городить. У них и ума то не хватит на эти костыли. Остальные вендоры.. там техдиректорам никто и не доложит о существовании этих чудес. Если только на опнете кто-то решит свои полностью свободные автомобили городить. А чё, местному контингенту море по колено, они в комментариях могут и на Марс слетатать. Свободно и открыто слетать.
А ты попробуй найди что-то более менее работающее. Единичные продукты делают на совесть, чтобы можно было взять исходник и любоватся. Причины просты: от того что кто то ещё не научился нормально кодить, до того, что у кого-то не было времени на то чтобы написть понлноценное решение и куда проще было воткнуть костыль. А когда в проекте достаточно костылей, то делать качественные изменения становится невероятно тяжело.
>Null pointer exception - это именно то что каждый автомобилист хотел бы увидеть на приборной панели
>>для автомобильных информационно-развлекательных системНу крякнет у тебя радио. Перезагрузишь, не прЫнц поди :)
Вот ежели это в управление чем то серьёзным пойдёт ... стану велосипедистом :)
А пока ты поди автомобилист? Радио по скольку раз на дню перезагружаешь?
Столько, сколько раз машину заводит.
Ваш, КО.Заж
Етить его,.. дальнобойщики никак подтянулись, вануз тебе в карбюратор.
> Столько, сколько раз машину заводит.
> Ваш, КО.
> Заж
> Етить его,.. дальнобойщики никак подтянулись, вануз тебе в карбюратор.Что за вануз в карбюраторе? Вануз у тебя в штанах. И карбюратор у тебя там же.
Ну вот и иди на вантуз, соколик. Не задерживайся.
Null pointer exception - любимая тема для разговора среди C++ неосиляторов. Не забываем, что 90% водителей считают, что их уровень вождения выше среднего. Но половина из ник трындит о каких-то проблемах, у другой проблем нет. Угадайте, у какой половины уровень вождения выше среднего.
В C/C++ могут возникать кучи проблем. Частично это можно решить если изменить стандарт/взять другой язык. Самые коварные проблемы не те, которые вешают программу сразу же, а те которые происходят не у программиста(и вообще его избегают) или проявляются не сразу. Скажешь баш/систему эмуляции/имеёж магик/подставить своё писали неосиляторы? Тогда почему у него/неё есть уязвимости? Полностью доказать что данный код коректен или не содержит уязвимостей невероятно трудно. Нужен либо хороший статический анализатор и длительное тестирование и достаточно хороший набор тестов. И то это не даст 100% гарантии. Какой смысл защищать откоровенно уродливый язык, если в большинстве случаев все его возможности для прострела ноги совершенно не нужны? Этому языку пора уйти на заслуженный покой, ведь во многих сферах уже есть аналоги.
Не смешите. Если решили работать с отбойным молотком, то с ним нужно уметь работать, а не руки-ноги себе калечить. Не умеешь С++, не лезь, возьми чего-нибудь попроще.
Проблема не во мне, проблема в окружающих. Ведь не я пишу такие программы, после которых говорят "плазама не падает"
Не пиши на плюсах как на C. Не пиши на современных плюсах как на доисторических. Используй современные практики - те же ревью/юниттесты/CI. И будет счастье. Вон, биткоин-демон на плюсах писан - мишень - вкуснее некуда. И что-то уязвимостей не видать.Но такие комментаторы ж, небось, до сих пор сишные массивы и тупые указатели используют, и про move-семантику почитать так и не удосужились. А потом удивляются - откуда ж "кучи проблем", да какой язык уродливый.
Кстати, с нынешними компиляторами необходимость в статическом анализаторе очень сомнительна - они и сами проверяют на редкость добротно, если ворнинги полностью включить.
Именно таких программистов и наберут для этих авто-интерфейсов все автомобилепроизводители. И именно так и будут писать, тестировать, ревьюить и юнит-тестить. И будет у них всех счастье, а null pointer exceptions не будет.
В автомобильную индустрию берут только самых лучших.> Software Glitch Wipes Out Lexus Navigation Systems
> The company has not determined how many vehicles were impacted, although it’s being described as widespread. The outage occurred in model year 2014 to 2016 Lexus vehicles equipped with a specific generation “Enform” system with navigation
Вот не понимаю, в чём удовольствие? Нет, чтобы взять язык где "из коробки" умные указатели и прочие возможности, они предпочитают набивать код килобайтами.
Как вам сказали - умные указатели в стандарте есть уже довольно давно, а удовольствие в том, что есть ВЫБОР как и что делать.
Эти кадры хотят победить CAN. И главный вопрос - у тебя вообще машина круче ВАЗ была? Медиа система отделена в нормальных машинах стальным забором ото всего. Используется только в качестве устройства отображения событий.
А чем автомобили так принципиально отличаются? Что за мода пошла плодить для каждой сущности свой велосипед?
Это маркетинг. С технической стороны ничего интересного, расходимся
Лол. Qtopia где? Boot2Qt где?И этот проект постигнет подобная участь, ибо Qt.
всегда хотел узнать - что такого дает QML чего не дает HTML/JavaScript ?
есть же отработанный движок - WebKit или другой, многопоточный, оптимизированный годами и все равно присутствующий в системе. Куча библиотек на все вкусы. Зачем велосипеды? на десктопе ладно, нужна производительность оконная. хотя тоже неочень понятно (нам с гуглем :)). но в окошечке бортового компьютера, если в нем все равно проц позволяющий "крутить" webkit зачем чтото еще? электричество экономить?
потише, братишка, в этой ситуации. Религия некоторых из здесь присутствующих велит отказываться от плодов 2010-ых годов и по-старинке изобретать еще один тулкит для Button1.OnClick.
Зачем нужна отвертка если есть молоток ?
WebKit представлен в Qt отдельной библиотекой и она не обязательна для работы апликации написанной на Qt, если только вы не используете ее явно. У QML есть ряд преимуществ - нативный интерфейс, с поддержкой всяких жестов и т.д., возможность вызова кода C++ как пис оф кейк, т.е. можно использовать всю мощь фреймворка. Отличный синтаксис QML, большие возможности, OpenGL, анимации и много чего другого. В Javascript все это реализуется подключением кучи библиотек и ...да, DOM, тормозной DOM.
Вы вначале разберитесь, что такое QML, чтобы такие глупости не писать.
Именно затем, зачем к HTML/JavaScript пытаются прикрутить такие вещи как Angular.js. И потом это очень удобно и быстро, когда логика на C++, а интерфейс на QML.
попробуйте сверстать простенький макет на qml и на html, тогда вопросы отпадут
>электричество экономить?внезапно, да. но это не про QML)
> Qtopia где?Не взлетела.
> Boot2Qt где?
Успешно используется и продаётся.
Знаете, я полтора года оттрубил в немецких automotive C/C++ проектах, и должен сказать вам следующее:
Это просто замечательно! Теперь большую часть вырвиглазого п*****а которым начинены headunit-ы, можно будет выбросить на свалку.Однако:
1) Не упомянут DBus. А его заменители под automotive QNX это ХУДШЕЕ что я видел в жизни.
2) Зная modus operandi автомотив архитектов, они скорее всего постараются изгадить и эту затею, либо вообще откажутся от этой технологии, потому что NIH-синдром
> 1) Не упомянут DBusИзвольте: http://doc.qt.io/qt-5/qtdbus-index.html
https://wiki.qt.io/Qt_Status_on_QNX
>> для автомобильных информационно-развлекательных системГоспода, кто-нибудь видел живого водителя, развлекающегося с сенсорным экраном в торпеде, перегнувшись через руль? Сидящего в интернете, играющего в тетрис на нем или заказывающего проституток?
Система не только для водителя, но и для пассажиров, дисплеи могут быть и в спинках кресел. А на главном не только развлечения, но и карта, всякие данные, статусы систем авто и проч - не только развлечения, как можно догадаться.