LINUX.ORG.RU

MakiseGUI — свободная библиотека графического интерфейса для микроконтроллеров

 , , , ,


9

4

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

Цели разработки:

  • Простота использования: писать интерфейс не должно быть сложнее, чем с использованием WindowsForms и т. п.
  • Простота интеграции: встроить и запустить интерфейс в приложении должно быть максимально просто на любом оборудовании или ПО.
  • Чистый С: используется только gnu-c99 и стандартная библиотека.
  • Минимальное потребление ОЗУ: возможность использования на средних микроконтроллерах без внешней памяти (примерно 40 КиБ с цветным дисплеем 320×240).
  • Достаточное количество графических элементов для комфортной разработки, простое добавление новых.
  • Свободная лицензия и бесплатное использование даже в коммерческих проектах.

На данный момент существуют следующие элементы:

  • MButton — кнопка, которая отображает текст посылает события при нажатии.
  • MCanvas — простейший контейнер, который просто содержит элементы.
  • MLable — простейшее текстовое поле.
  • MTextField — текстовое поле, поддерживающее перенос слов и переносы.
  • MSlider — слайдер.
  • MToggle — кнопка, имеющая два состояния.
  • MSlist — список. Может быть как простым списком, так и radio-кнопками или чекбосками. Поддерживает обычные списки и динамические линкованные.
  • MTabs — вкладки. Несколько переключаемых контейнеров.

>>> GitHub

>>> Подробности работы, видео, примеры кода

★★★

Проверено: Shaman007 ()

Ответ на: комментарий от MuZHiK-2

Этот на самом деле позор какой-то, выкладывать такое.

Кстати, а где можно посмотреть на перечень твоих проектов? В качестве образца того, за что не нужно было бы стыдиться :D

Manhunt ★★★★★ ()
Ответ на: комментарий от MuZHiK-2

Боже, я же не заставляю тебя этим пользоваться. Лучше бы дал пример хорошего проекта, чем обзываца

SL_RU ★★★ ()
Ответ на: комментарий от MuZHiK-2

ни CI

Для маленького, развиваемого в одиночку проекта, это бессмысленная обуза.

Ни документации

https://github.com/SL-RU/MakiseGUI/tree/master/MakiseGUI/docs

только сумасшедшие люди используют такие проекты

Это не про gkt3 тред, остынь, болезный.

Manhunt ★★★★★ ()
Ответ на: комментарий от BceM_IIpuBeT

пишет: что куда линкует

Пишет, но изменить это АФАИК нельзя, только писать всю сборку самому, и на кой тогда иде с функциональностью блокнота? =\
Я вот ассемблерный выхлоп от неё по просьбе коллеги так и не смог получить, пришлось руками.

GAMer ★★★★★ ()

графического интерфейса
для микроконтроллеров
GUI
Микроконтроллеры

Чозанахаааа?

awesomebuntu ()
Ответ на: комментарий от MuZHiK-2

Я так понимаю у проекта один разработчик, откуда там CI возьмется?

A-234 ★★★★★ ()

[опционально] time - сколько времени была нажата кнопка или нажимается. В миллисекундах

Тогда уж не time, а duration

Manhunt ★★★★★ ()
Ответ на: комментарий от Pinkbyte

R. оно для тех человечков, которые на логотипе реддита.

h4tr3d ★★★★★ ()
Ответ на: комментарий от Manhunt

Кстати, а где можно посмотреть на перечень твоих проектов? В качестве образца того, за что не нужно было бы стыдиться :D

Я-то тут при чем? Сабж топика немного другой, не переводи стрелки.

MuZHiK-2 ★★★★ ()
Ответ на: комментарий от SL_RU

Боже, я же не заставляю тебя этим пользоваться.

А смысл выкладывать полуюзабельные какахи? Лучше сперва допилить до номрального состояния, а потом презентовать на публику.

Лучше бы дал пример хорошего проекта, чем обзываца

До открой любой более-менее популярный проект, не найти что ли?

MuZHiK-2 ★★★★ ()
Ответ на: комментарий от Manhunt

Для маленького, развиваемого в одиночку проекта, это бессмысленная обуза.

То есть по-твоему, CI нужен только тогда, когда несколько человек в разработке?

https://github.com/SL-RU/MakiseGUI/tree/master/MakiseGUI/docs

Ты серьезно считаешь ЭТО документацией?

MuZHiK-2 ★★★★ ()
Ответ на: комментарий от A-234

Ну Travis CI, например, вполне себе востребован в проектах из одного человека. Коммит сделал - а он тебе рраз, и багрепорт из макоси прислал.

Что конечно, бугурт Мужика-2 не оправдывает.

anonymous ()
Ответ на: комментарий от MuZHiK-2

Я-то тут при чем?

Ты здесь при том, что ты решил выступить с плохо аргументированными поучениями насчет стыда и сумасшествий. Навскидку, тут возможны два варианта:
* либо ты эксперт в этой области, отлично знаешь о чем говоришь, и тебе просто тяжело опуститься до нашего уровня, чтобы подобрать понятную нам аргументацию
* либо же ты пустозвон (как известно, ничтожества обожают всех поучать)

Собственно, я решил исходить из первого варианта, и ознакомиться поближе с твоими блестящими, преуспевающими в плане популярности проектами.

Manhunt ★★★★★ ()

Спасибо что поделился! Вряд ли буду использовать сам, т.к. далек от темы микроконтроллеров, но надеюсь кому-то пригодится. То, что ты его выложил под MIT и запилил новость - очень здорово, успехов)

Ende ()
Ответ на: комментарий от MuZHiK-2

То есть по-твоему, CI нужен только тогда, когда несколько человек в разработке?

Когда за год получается три десятка коммитов, CI определенно не нужен.

Ты серьезно считаешь ЭТО документацией?

Нетривиальные вопросы разобраны, не?

Manhunt ★★★★★ ()
Ответ на: комментарий от Manhunt

Ты здесь при том, что ты решил выступить с плохо аргументированными поучениями насчет стыда и сумасшествий.

Раз ты что-то выкладываешь на публику и трубишь об этом, то окружающие имеют полное право высказаться об этом. И отмаза «а покажи ты» тут не прокатывает.

либо ты эксперт в этой области, отлично знаешь о чем говоришь

Ты угадал.

и тебе просто тяжело опуститься до нашего уровня, чтобы подобрать понятную нам аргументацию

По-моему, я уже все сказал, но для итога: нет документации (нормальной, с описаний API, в Doxygen например), нет тестов, нет даже требований к компиляторам. Это просто какая-то домашняя поделка на коленке, которая, почему-то, висит на главной ЛОРа. Ахтунг какой-то.

MuZHiK-2 ★★★★ ()
Ответ на: комментарий от MuZHiK-2

с описаний API, в Doxygen например

Описание API в заголовочных файлах. Doxygen — ненужное bloatware.

нет тестов

Тебе ж сказали, что добавят позже.

нет даже требований к компиляторам

Единственное требование — поддержка диалекта gnu-c99. Об этом явно сказано.

Это просто какая-то домашняя поделка на коленке

Дык, for fun же.

которая, почему-то, висит на главной ЛОРа

Более того, она даже компилируется, работает, и может решить чьи-то бизнес-задачи :D

Manhunt ★★★★★ ()
Ответ на: комментарий от Manhunt

Когда за год получается три десятка коммитов, CI определенно не нужен.

А когда человек гордо заявляет, что оно работет everywhere, как в этом можно убедиться? Есть результаты сборок разными компиляторами под разными осями? Если ты балабол, то да - CI не нужен.

Нетривиальные вопросы разобраны, не?

То есть нормальная документация - это когда структуры не задокументированы, все функции не задокументированы?

MuZHiK-2 ★★★★ ()
Ответ на: комментарий от MuZHiK-2

отмаза «а покажи ты» тут не прокатывает

Просто если тебе нечего показать, то твоему кукареканью грош цена.

Manhunt ★★★★★ ()
Ответ на: комментарий от Manhunt

Описание API в заголовочных файлах. Doxygen — ненужное bloatware.

Ты хочешь сказать, что в заголовочниках все норм? Я вот открываю файл makise_primitives.h - и ни одного комментария. Открываю файл makise_text.h - и ни одного комментария. Где документация?

Единственное требование — поддержка диалекта gnu-c99. Об этом явно сказано.

То есть сабж был только проверен на домашней бубунте и после это повешен ярлык «работает везде»?

Дык, for fun же.

А что оно на главной делает? А если каждый будет свой мусор или курсач выкладывать на главную?

MuZHiK-2 ★★★★ ()
Ответ на: комментарий от Manhunt

Просто если тебе нечего показать, то твоему кукареканью грош цена.

Еще раз - почему я что-то должен показывать? Когда художник выставляет картины в галерее - он тоже требует ото всех недопольных начать рисовать?

MuZHiK-2 ★★★★ ()
Ответ на: комментарий от MuZHiK-2

А что оно на главной делает? А если каждый будет свой мусор или курсач выкладывать на главную?

А что на главной ЛОРа только некрологи и страдания по безвременно ушедшей бубунте быть должны? Лучше пусть такие проекты будут, чем плач ярославны по бубунте.

Loki13 ★★★★★ ()

Очень круто! Успехов Вам. Может быть как-нибудь поучаствую. Да, юнит-тесты нужны.

xor2003 ()
Ответ на: комментарий от MuZHiK-2

То есть по-твоему, CI нужен только тогда, когда несколько человек в разработке?

По определению же, lol Документация и тесты не являются отличительными особенностями этого процесса.

A-234 ★★★★★ ()
Ответ на: комментарий от A-234

По определению же, lol

Не говори больше таких глупостей.

MuZHiK-2 ★★★★ ()
Ответ на: комментарий от MuZHiK-2

Код есть документация. Особенно для достаточно маленькой либы, которая, я уверен, в виде «как есть» использоваться не будет, а наоборот — допиливаться в необходимый вид и функционал.

Автору успехов.

a1batross ★★★★★ ()

Gt6 и GTK4 рип, ибо с выходом MakiseGUI превратились в старье, а старье в линуксах принято выкидывать.

Napilnik ★★★★★ ()

Молодец, дело нужное и полезное, продолжай совершенствовать либу, не обращай внимание на рукожопов, которые только могут что критиковать, ибо больше ничего не умеют )

xterro ★★★★★ ()
Ответ на: комментарий от gag

сравнить с http://www.embeddedlightning.com/ugui/, которым реально пользуются.

Как сравнивать с тем, что «temporary unavailable»?

А вообще, забавно: человек выложил то, что считает потенциально полезным. А на него накинулись. Не нравится — проходи мимо. ТС — не поцтеринг, и всякий шлак не сует в популярные дистрибутивы.

anonymous ()
Ответ на: комментарий от Napilnik

Это у вас нодостаток знаний о том, что такое программирование под МК.

BceM_IIpuBeT ★★ ()
Ответ на: комментарий от MuZHiK-2

Что такое «юнит тесты». Дай пример софта с такими тестами. Скажем, где в linux kernel это есть?

anonymous ()

Мало было велосипедов, а теперь ещё одним больше стало.

peregrine ★★★★★ ()

На тутошних покемонах сильно не зацикливайся - для них тут прежде всего кормовой участок. Но если хочешь, чтобы взлетел проект, таки все прибамбасы взрослой разработки должны быть: доки, тесты, комменты в коде и пр. Причем для библиотек это must have и в их разработке написание самого кода дай бог чтобы 20-30%. Все остальное - сопроводиловка и упорный рабский труд на бесплатном саппорте в режиме 24/7.

Linfan ★★★★★ ()

Хороший pet project.

anonymous ()
Ответ на: комментарий от A-234

Просветите же, гуру, вместе посмеемся.

Может, тебе еще образование дать бесплатно? Если ты хотя бы статью на википедии осилить не можеть по CI, то о чем речь?

MuZHiK-2 ★★★★ ()

Молодец, круто. С прдрыва мужика-2 проиграл.

Inshallah ()
Ответ на: комментарий от MuZHiK-2

то окружающие имеют полное право

Пока речь об одном конкретном мужике, который бугуртит не по делу и говорит о себе во множественном числе. Уходи.

Vit ★★★★★ ()
Ответ на: комментарий от MuZHiK-2

У них есть автоматизированное тестирование

Тебя про юнит-тесты спросили

Manhunt ★★★★★ ()

gnu-c99

с чистым c99 не скомпилить?

reprimand ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.