Pull to refresh

Comments 24

а каково практическое применение всего этого?
Вообще — в результате получаются программные модули, и ваш вопрос эквивалентен вопросу «какое практическое применение программного модуля»? Отвечая на этот вопрос — Модуль «Дисплей» я использую в своих программах для микроконтроллера. Это системный уровень, и хорошая эффективность этого модуля позволяет мне делать пользовательский интерфейс исходя из потребностей, а не ограничений программно-аппаратной части. Помимо этого модуля, автоматное проектирование подходит для решения любых задач.
ОК, понял.
Сразу же вопрос, в чем преимущество Вашего модуля перед графическими
библиотеками, например перед EmWin
например перед EmWin

Абсолютное преимущество в быстродействии. Дело в том, что GUI_DisplayString построены по тому же принципу что и вариант A2 рассмотернный в предыдущей статье. Однако если А2 уступал варианту А1 в скорости в 4-8 раз, то в случае GUI_DisplayString в силу более мелкопопиленного на «каждый-чих-функции» кода, речь может идти о гораздо большей разнице.
Кроме того, благодаря параметрам x_shift y_shift предложенный мной вариант обладает большим функционалом -бегущие строки. GUI_DisplayString имеет много разновидностей в том числе и функцию wrap text, которая позволяет вывести текст в окне так, что он из одной строки автоматически перенося слова распределится по всему окну. Это одна из функций с которой я собираюсь познакомить читателя, это одно из того самого обещанного расширения функционала о котором я написал в конце статьи. Так что продолжайте следить за циклом.

— И наконец самое главное, хочу акцентировать ваше внимание, что я представляю не просто модуль работы с графикой, это всего лишь иллюстрация к автоматному проектированию. Речь в цикле идёт об автоматном проектировании как таковом, иными словами процессу от анализа тз до получения эффективного решения и дам этому разные примеры, но в силу своей занятости, прошу читателей запастись терпением
Спасибо за развернутый ответ.
Еще вопрос — а Ваши решения применимы к выводу графики (bmp, jpg)?
Символы тип 2а ни что иное как битмапы любых размеров выводимые в окно любых размеров.
над выводом jpg я не задумывался в силу прагматических причин, отсутствия необходимости, но, думаю ситуация решаемая, а вообще, на основе этой схемы вывода данных удалось построить графическую библиотечку, и реализовать просмотр графиков
image с довольно приличным быстродействием.
Поскольку всё познаётся в сравнении, расскажу, что изначально мой коллега пробовал для своей задачи но той же схемы uC+дисплей одну из стандартных библиотек, и стало ясно, что обеспечить просмотр графиков с этой библиотекой просто нереально, потому что видно как прорисовывается изображение, «переливатся». Это может приемлемо если график выведен и всё, но если его нужно на ходу масштабировать, то мучение сплошное, иначе не скажешь.

Здесь мой внутренний перфекционист взвыл… Сдвинуть всего лишь на 1 пиксель…
Соглашусь, в приложении-то я поправил.
с довольно приличным быстродействием

а конкретно, сколько fps?
и можно ли эту библиотечку использовать для создания осциллографа?
если брать проц побыстрее, вполне возможно, arm7 не для осцила.
с довольно приличным быстродействием

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

Честно скажу, не помню, это было уже почти 10 лет назад, мой коллега скачал её по рекомендации на сахаре или телесистемах и запилил на ней свой прибор. Поскольку она меня впечатлила тем насколько она не годилась для моих целей, я больше не интересовался ей. А вы с какой целью интересуетесь?
интересуюсь в связи с тем, что в данный момент делаю систему отображения для мониторинга и управления эндоскопического хирургического инструментария на STM32F769 (24 bit RGB 32 bit SDRAM)…
ну, просто подумал, что речь идет о EmWin
… хотя 10 лет назад вряд ли можно было найти embedded ориентированную библиотеку для вывода графики на дисплеи
кстати с помощью EmWin неплохо выводятся графики в реальном масштабе с прокруткой
… и кстати где можно посмотреть Вашу графическую библиотеку с помощью которой выводятся такие красивые графики нарисованные выше в коментариях
Не раньше чем будут решены организационные вопросы. Речь ведь пойдёт о перспективах и дальнейших путях развития не только графической библиотеки, но и автоматной оболочки, которая связана с автоматным подходом к проектированию. Если просто опубликовать на неё datasheet, боюсь что она упадёт на неподготовленную почву, потому что автоматное программирование — экзотика, и сейчас требуется не просто показать, что моя библиотека лучше, а о то, что сам автоматный подход — прекрасное подспорье при разработке, а в чём то даже для начала, что это не чудище рыкающее аки лев. Поэтому я пока не веду речь о библиотеке как таковой.
То есть, возвращаясь к вашим потребностям в графике, этот цикл не о моей библиотеке а об автоматном подходе. Указанный модуль «Дисплей» я взял как хороший пример для автоматного проектирования, не хотелось брать пример уровня «пусть у нас есть кнопка и светодиод».
Но для вывода текста можете взять этот модуль, я его опубликую в следующей статье, рабочую версию, он не будет конфликтовать с той библиотекой, насколько я оценил. Я предоставил этот модуль в безвозмездное пользование программерам, только не забудьте указать ссылку на мой сайт, и можете сами добавить его в закладки, сейчас там немного нового, но я его буду постепенно обновлять и там со временем выложу эту библиотеку.
спасибо за ответ, но простите, ссылку на bitbucket проект вижу, а на Ваш сайт не вижу.
… и еще об автоматном программировании вообще и о его применении для создания обработчиков пунктов меню. У Texas Instrument есть хорошая реализация автоматного подхода к этому вопросу, которую я несколько раз применял в своих проектах.
Возможно Вас заинтересует
www.ti.com/lit/an/slaa402a/slaa402a.pdf

сайт dashingresearches.wordpress.com, он в исходниках в лиценизии написан. Такое условие лицензии — его упоминать при использовании модуля Дисплей, чтобы пользователи модуля могли найти новинки по этой же теме. Там ещё переводная литература по автоматам, «Структура и анализ систем и сигналов.» лекции Беркли, качественные лекции, в том числе и по недетерминированным автоматам и композициям автоматов
За ссылку спасибо
Я в свое время, тоже походил по граблям, когда реализовывал BitBlt однобитный, с произвольным выводом. Помню — то там отрежет кусок, то там… В итоге построил в экселе все возможные сдвиги и нашел багу в алгоритме :)
предметный взгляд на задачу не только помогает при отладке, но и помогает найти решение там, где иначе потребовался бы если не полный перебор, то во всяком случае глубокая рекурсия. У меня есть впечатляющие примеры, и они запланированы в практикум.
Применима ли Ваша методика, если используется в одной строке символы различных наборов шрифтов?
А кроме примера «Дисплей» нет ли примера «Меню»?
Есть, но все примеры я буду стараться давать так, чтобы они укладывались в некую логику развития идей. «Меню» связано не столько с графикой сколько с организацией сообществ автоматов, и оно будет рассмотрено где-то там (махнул рукой в неопределённом направлении)
Sign up to leave a comment.

Articles