Три шага к успешной встраиваемой системе с Qt

Разработка встраиваемых продуктов требует трех главных шагов: выбор аппаратной платформы, выбор операционной системы, и разработка пользовательского интерфейса (UI). Все три этих шага тесно связаны друг с другом и оказывают существенное влияние на время выхода на рынок, расходы по проекту и конечное качество продукта. Очень важно выбирать подходящую аппаратную платформу, которая также поддерживает отличную операционную систему и лучшие инструменты для разработки пользовательского интерфейса.

1. Выбор вашей аппаратной платформы

Выбор правильной аппаратной платформы является первым шагом в процессе разработки встраиваемого решения и может оказать существенное влияние на конечную стоимость продукта в пересчёте на стоимость одной единицы, а также на время разработки. Вот некоторые из важных вопросов, на которые требуется ответить:

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

Различные варианты встраиваемых систем доступны в качестве одноплатных компьютеров (ingle Board Computers - SBC), модульных систем (SOM) и нестандартных разработок.

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

Nitrogen6_MAX: High-end Embedded single board computer based on the NXP/Freescale i.MX6 Quad Processor. Kit includes 5V Power Supply, 4GB microSD card with Linux OS, and Serial Console Cable.

Модульные же системы предоставляют большую гибкость для тех, кто имеет конкретные требования к остальным схемам, которые они хотели бы включить на несущую плату. SOM в стандартной поставке содержит CPU, оперативную и флеш память, а также питание. Остальная часть разрабатывается для установки на несущую плату.

И последний вариант - это найм специалиста, который разработает нестандартный вариант устройства по конкретным спецификациям проекта. В производстве такой вариант будет иметь наименьшую стоимость, поскольку разрабатывался в соответствии с минимальным необходимыми требованиями проекта.

2. Выбор доверенной операционной системы

Имея стабильную, качественную операционную систему можно сократить время разработки, что позволит быстрее выйти на рынок. Плохая операционная системы может тратить ресурсы программного обеспечения из-за времени, потраченного на исправление ошибок, вместо доработки функционала, а также создаст потенциальные проблемы в будущем. Выбор должен падать на лидирующие операционные системы, такие как Android 5.0, Yocto, Ubuntu, QNX, CE7/CE2013, или Buildroot, которые снижают риск подобных проблем.

3. Создание пользовательского интерфейса

Третья и финальная часть паззла - это пользовательский интерфейс. Одним из наиболее комплексных и затратных по времени элементов встраиваемых систем является разработка пользоватльеского интерфейса. При использовании известного и проверенного инструмента для разработки пользовательского интерфейса разработка встраиваемых систем завершается быстрее, что ускоряет выход на рынок и снижение конечной стоимости продукта.

Аппаратные платформы, такие как Boundary Devices, поддерживают Qt for Device Creation, для которых можно скачать IDE  и сразу приступить к разработке.

Подведём итоги

Когда вы приступаете к новому проекту встраиваемых систем, позаботьтесь о выборе правильной аппаратной платформы и операционной системы, а также убедитесь, что ваши партнёры имеют соответствующий опыт и способности для этого проекта. Относительно Qt, Вы можете получить фору при выборе аппаратных платформ, поддерживаемых Qt. Например, технологический партнёр Qt, Boundary Devices, может предложить требуемое аппаратное обеспечение.

Источник Qt Blog

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
Support the author Donate

Comments

Only authorized users can post comments.
Please, Log in or Sign up
How to become an author?

Contribute to the evolution of the EVILEG community.

Learn how to become a site author.

Learn it
Donate

Good day, Dear Users!!!

I am Evgenii Legotckoi, developer of EVILEG. And it is my hobby project, which helps to learn programming another programmers and developers

If the site helped you, and you want also support the development of the site, than you can donate by following ways

PayPalYandex.Money
Timeweb

Let me recommend you the excellent hosting on which EVILEG is located.

For many years, Timeweb has been proving his stability.

For projects on Django I recommend VDS hosting

View Hosting Timeweb
AS
May 26, 2020, 11:29 a.m.
Artem Sun-Dun-Chan

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:50points,
  • Rating points-4
MN
May 25, 2020, 11:33 a.m.
Mitja Nagibin

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:50points,
  • Rating points-4
f
May 25, 2020, 5:05 a.m.
falcon

C++ - Test 001. The first program and data types

  • Result:66points,
  • Rating points-1
Last comments
May 28, 2020, 3:14 p.m.
Evgenij Legotskoj

Qt/C++ - Lesson 039. How to paint stroke in QSqlTableModel by value in the column?

Ну в моём примере, который в статье сработало так model->setData(model->index(1, 1), 7); Поскольку model->index(1, 0) - это индекс колонки id, которая скрыта, поэтому…
MA
May 28, 2020, 3:08 p.m.
Mihail A

Qt/C++ - Lesson 039. How to paint stroke in QSqlTableModel by value in the column?

Спасибо, завтра првоерю. А model->setData(model->index(1, 0), 7); Тоже заработало?
May 28, 2020, 3:06 p.m.
Evgenij Legotskoj

Qt/C++ - Lesson 039. How to paint stroke in QSqlTableModel by value in the column?

Да, метод data всё-таки влиял, я переписал его так и заработало удаление QVariant TableModel::data(const QModelIndex &idx, int role) const{ if (role == Qt::BackgroundColorRole) {…
May 28, 2020, 2:49 p.m.
Evgenij Legotskoj

Django - Tutorial 011. Adding comments to the site based on Django

Он более функциональный и его функционал объективно лучше поддерживается Django. Из первого, что приходит на ум: Это наличие полей типа Array Поддержка полей для JSON …
May 28, 2020, 2:42 p.m.
progammist

Django - Tutorial 011. Adding comments to the site based on Django

а в чем явное преимущество postgresql над mysql?)
Now discuss on the forum
IP
May 29, 2020, 1:55 a.m.
Igor' Poroshin

QTablwView + QSqlQueryModel скрыть пустой столбец

Да, понятно. В данном случае лучше использовать серверную процедуру (если такие поддерживаются), в которой будет проверяться наличие всех пустых строк у нужного столбца и вызываться соответ…
RG
May 28, 2020, 6:21 p.m.
Rovshan Gurbanov

Сборка под старые версии Android

У меня SDK почти все версии есть, NDK есть версии 10, 17, 21. Но собирается приложение только с NDK v21 под Android версии 7.0 и выше Версия Qt у меня 5.14.2
May 28, 2020, 7:58 a.m.
Evgenij Legotskoj

Освобождение памяти QMainWindow::setCentralWidget

Да, соглашусь. Просто удаление происходит позже, а не сразу.
May 28, 2020, 5:43 a.m.
Mihailll

При подключении к git как указать пароль?

Нужно сделать ssh-keygen и потом полученый из файла код скопировать в ssh ключ в бикбакете
F
May 28, 2020, 1:42 a.m.
Fidan

QML

Да, проблема ушла, спасибо.
About
Services
© EVILEG 2015-2020
Recommend hosting TIMEWEB