Jump to content

    
jeka

Программист GUI под STM32

Recommended Posts

Есть дисплей 480x272 с тачскрином, на stm32h745. Есть базовые графические библиотеки (по большей части самописные) и текущий юзер-интерфейс (он умеет рисовать графики, приборную панель, гистограмму, бегать по менюшкам). Библиотека - отрисовывать текстуры, накладывать шрифты, все с субпиксельной точностью и прозрачностью). Есть базовые графические примитивы (привет Брезенхему), но их нужно будет доработать до субпиксельного обсчета или взять что-то готовое, подходящее под наши задачи.

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

Графические элементы есть кому рисовать. Нужно чувство эстетики, внимание к деталям и к мелким недочетам. Т.е. задача - программирование интерфейса, добавление в библиотеки недостающего функционала. И работа с данными, которые собираем-отображаем-меняем (приходящие в реальном времени данные буферизируются, пишутся на sd карту, возможно в разных масштабах для ускорения загрузки при большим масштабировании; просмотрищиком графиков нужный кусок собирается из буферов ram и/или sd карты, масштабируется и отображается).

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

Территориально - Москва, м. калужская.

jeka (а) 2x4 тчк ru или личка, тут можно задат вопросы.

Share this post


Link to post
Share on other sites

Обратите внимане на библтиотеку OpenVG .

Есть опыт отвызывания OpenVG от OpenGL (что в дефолтовой имплементации импользуется для демонстрации) - для работы с одним или более видеобуферами (без операционной системы).

Все нужные Вам фичи в этой библиотеке есть, чисто софтовое. Антиалиасинг "Из коробки".

Исходники всего (и "подпиленой" к современному с++ библиотеки) у меня на гитхабе.

ua1arn/hftrx at develop (github.com)


hftrx/lib/OpenVG at develop · ua1arn/hftrx (github.com)

 

Из дсотоинств - можно когоо-то на линукс машине типа малины или под виндой засадить разрабатывать UI и потом перенести код в целевое устройство.

 

(6) OpenVG Demo - YouTube

 

 

Edited by GenaSPB

Share this post


Link to post
Share on other sites
15.04.2021 в 11:51, jeka сказал:

Есть дисплей 480x272 с тачскрином, на stm32h745. Есть базовые графические библиотеки (по большей части самописные) и текущий юзер-интерфейс (он умеет рисовать графики, приборную панель, гистограмму, бегать по менюшкам). Библиотека - отрисовывать текстуры, накладывать шрифты, все с субпиксельной точностью и прозрачностью). Есть базовые графические примитивы (привет Брезенхему), но их нужно будет доработать до субпиксельного обсчета или взять что-то готовое, подходящее под наши задачи.

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

Графические элементы есть кому рисовать. Нужно чувство эстетики, внимание к деталям и к мелким недочетам. Т.е. задача - программирование интерфейса, добавление в библиотеки недостающего функционала. И работа с данными, которые собираем-отображаем-меняем (приходящие в реальном времени данные буферизируются, пишутся на sd карту, возможно в разных масштабах для ускорения загрузки при большим масштабировании; просмотрищиком графиков нужный кусок собирается из буферов ram и/или sd карты, масштабируется и отображается).

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

Территориально - Москва, м. калужская.

jeka (а) 2x4 тчк ru или личка, тут можно задат вопросы.

Под это всё дело надо брать LVGL. Это как раз UI библиотека для микроконтроллеров. Есть поддержка тем, анимаций, субпиксельности и т.д. Сам её портировал в U-Boot и в ядро Linux (прямо внутрь) для отображения UI на процессоре F1C100s. Так же легко запускается с помощью SDL. Это означает, что GUI можно разрабатывать не имея под рукой микроконтроллер на любом "интеле" (десктопе/ноутбуке), а переносить наработки на микроконтроллер - это просто (ну, грубо говоря) компиляция того же самого кода, только с указанием другого компилятора.

А писать свою UI библиотеку, конечно, можно, но просто если посмотреть на число строк LVGL, то столько и надо будет примерно разработать в любом случае. И это ещё не считая проработку архитектуры. В общем, проще взять LVGL и на основе её уже и пилить. Только надо смотреть что там по лицензии на эту библиотеку. Если она позволяет просто так взять, то в путь да и только.

Выглядит так, что надо брать открытую библиотеку LVGL и на её основе и делать весь UI. LVGL - это библиотека по построению UI для микроконтроллеров. Легко портируется. Есть темы, анимации, прозрачности, субпиксельности, шрифты и т.д. Для неё даже есть UI Builder.

Сам пользуюсь ею для создания и отрисовки UI на микросхеме F1C100s.

 

Что-то глюкнуло и первое сообщение сначала просто пропало, а потом как запостилось :(

Share this post


Link to post
Share on other sites

Да, lvgl  уже подключил. На первый взгляд очень понравилось - документация адекватная, архитетура сделана по уму. openvg интересная наработка, будет время попробую.

Откликов как-то не густо. Сложностью испугал или ценник не озвучил? платить готовы достойно, главное получить результат. Лучше конечно в перспективе рассматривать как длительное сотрудничество, а не разовую задачу.

Share this post


Link to post
Share on other sites
1 hour ago, jeka said:

Да, lvgl  уже подключил. На первый взгляд очень понравилось - документация адекватная, архитетура сделана по уму. openvg интересная наработка, будет время попробую.

Откликов как-то не густо. Сложностью испугал или ценник не озвучил? платить готовы достойно, главное получить результат. Лучше конечно в перспективе рассматривать как длительное сотрудничество, а не разовую задачу.

Еще LVGL UI Designer осталось освоить и будет полное счастье

Share this post


Link to post
Share on other sites
20.04.2021 в 14:51, x893 сказал:

Еще LVGL UI Designer осталось освоить

Что-то не нашел его, хотелось посмотреть на это чудо, ибо если смотреть исходники демок - там очень много кода, не руками же его писать...

Share this post


Link to post
Share on other sites
3 hours ago, mantech said:

Что-то не нашел его, хотелось посмотреть на это чудо

Я, например, видел демонстрацию на ютубе

и оттуда есть ссылка на бету: https://forum.lvgl.io/t/v0-1-beta-is-out/4818

Насколько оно юзабельно - не знаю. Я ручками писал.

Share this post


Link to post
Share on other sites
8 часов назад, DisplayName сказал:

Насколько оно юзабельно - не знаю. Я ручками писал.

Ой, ну это же прошлый век, свою разработку ГУЯ сначала тоже писал ручками, но когда появилось десяток проектов, да еще клиентам нано что-то добавить\изменить - ну его нафиг...

8 часов назад, DisplayName сказал:

ссылка на бету: https://forum.lvgl.io/t/v0-1-beta-is-out/4818

Скачал - не запускается, либо это уж очень бета, или ей только 64бита надо вообщем пока никак...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.