Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

Новый редактор для создания пользовательских блоков.

Появился в версии 7.

Создаем свой блок. Вопросы, помощь знатоков.
av
Майор
Сообщения: 1102
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 79
Имя: Алексей

Новый редактор для создания пользовательских блоков.

#41

Сообщение av » 08.07.2020{, 16:32}

Да уж... похоже новый редактор не для всех :smile37: .Новички и кто не в ладах с кодом можно даже и не дергаться в этом направлении. Жаль... :(

Naladchik
Сержант
Сообщения: 296
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 23
Откуда: Новосибирск
Имя: Павел

Новый редактор для создания пользовательских блоков.

#42

Сообщение Naladchik » 08.07.2020{, 17:24}

av писал(а):
08.07.2020{, 16:32}
Да уж... похоже новый редактор не для всех .Новички и кто не в ладах с кодом можно даже и не дергаться в этом направлении. Жаль...
По этому я ранее и предлагал Сергею не хоронить старый редактор а оставить его, пусть живут оба.
Для написания простых блоков старый редактор очень даже не плох, а для серьезных задач новый редактор просто бомба.
Каждому инструменту свое назначение.

Отправлено спустя 1 минуту 4 секунды:
Ardudue писал(а):
08.07.2020{, 15:30}
не кашерно
Мы легких путей не ищем?

Отправлено спустя 18 минут :
support,
Небольшой косяк, не криминально, но по глазам режет.
СпойлерПоказать
1.jpg
Предпочитаю Portable версию.
Изображение

Ardudue
Сержант
Сообщения: 109
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 1
Имя: Антон

Новый редактор для создания пользовательских блоков.

#43

Сообщение Ardudue » 08.07.2020{, 19:08}

Naladchik писал(а):
08.07.2020{, 17:43}
Ardudue писал(а): ↑
Сегодня{, 19:30}
не кашерно

Мы легких путей не ищем?
Не просто витиеватыми тропами с Вами не пойду. :smile44:

Аватара пользователя
support
Супермодератор
Сообщения: 1554
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 504
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#44

Сообщение support » 08.07.2020{, 20:22}

Ardudue писал(а):
08.07.2020{, 15:35}
support писал(а):
08.07.2020{, 12:13}
В этом случае правильнее будет заменить

Код: Выделить всё

val = 200; // в ПБ FLP сделать входом для оперативного изменения

на

Код: Выделить всё

val =<Input>;

И не парится.
ок , частный случай решен, но что делать с выходами - всё таки вручную сделать выходы и потом вручную привязывать к каждой переменной.
Вход-Выход3_702.flp
Для выхода такой вариант. Снимаем галочку и пишем имя переменной
Выход.PNG
Не забываем что для многократного использования блоков переменные всё равно надо переименовывать
Автор программы FLProg.

Ardudue
Сержант
Сообщения: 109
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 1
Имя: Антон

Новый редактор для создания пользовательских блоков.

#45

Сообщение Ardudue » 09.07.2020{, 06:57}

support писал(а):
08.07.2020{, 20:22}
Для выхода такой вариант. Снимаем галочку и пишем имя переменной

Выход.PNG

Не забываем что для многократного использования блоков переменные всё равно над
что то по такому варианту не компилируется в IDE
Вход-Выход4_702.flp
(70.72 КБ) 10 скачиваний

Аватара пользователя
support
Супермодератор
Сообщения: 1554
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 504
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#46

Сообщение support » 09.07.2020{, 08:59}

Ardudue писал(а):
09.07.2020{, 06:57}
support писал(а):
08.07.2020{, 20:22}
Для выхода такой вариант. Снимаем галочку и пишем имя переменной

Выход.PNG

Не забываем что для многократного использования блоков переменные всё равно над
что то по такому варианту не компилируется в IDE Вход-Выход4_702.flp
А кто переменные которые Вы передаете на выход декларировать будет? Вы же за основу берёте код где эти переменные объявленны.
в поле кода выхода можно написать например можно
array[5]
тогда на выход пойдёт пятое значение массива array
Автор программы FLProg.

Аватара пользователя
DrMario
Сержант
Сообщения: 180
Зарегистрирован: 07.11.2016{, 13:11}
Репутация: 20
Откуда: Камень-на-Оби
Контактная информация:

Новый редактор для создания пользовательских блоков.

#47

Сообщение DrMario » 09.07.2020{, 10:46}

av писал(а):
08.07.2020{, 16:32}
Да уж... похоже новый редактор не для всех :smile37: .Новички и кто не в ладах с кодом можно даже и не дергаться в этом направлении. Жаль... :(
Согласен!
На днях сел за изучение, но после часа впустую потраченного времени бросил эту затею. Жду подробную справку по редактору.

Аватара пользователя
slavas
Лейтенант
Сообщения: 561
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 0
Откуда: Санкт-Петербург

Новый редактор для создания пользовательских блоков.

#48

Сообщение slavas » 09.07.2020{, 17:10}

Согласен, новый редактор неожиданно сложный на первый взгляд. Даже пугает сначала но стоит его осваивать вещь нужная. Но всё же хотелось бы попросить Автора написать хэлп поскорее и главное максимально подробно расписать каждую строчку редактора, а то надоело методом научного тыка. Хотя этот метод является самым прогрессивным методом изучения предмета.

Ardudue
Сержант
Сообщения: 109
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 1
Имя: Антон

Новый редактор для создания пользовательских блоков.

#49

Сообщение Ardudue » 10.07.2020{, 05:41}

support писал(а):
09.07.2020{, 08:59}
А кто переменные которые Вы передаете на выход декларировать будет? Вы же за основу берёте код где эти переменные объявленны.
Это вот тот случай, когда в старой версии входы и выходы декларируются автоматом.
Поэтому при создании в ПБ по привычке декларации выкосил.
А в новый версии надо декларировать вручную – получилась коллизия.

Ardudue
Сержант
Сообщения: 109
Зарегистрирован: 13.04.2020{, 18:22}
Репутация: 1
Имя: Антон

Новый редактор для создания пользовательских блоков.

#50

Сообщение Ardudue » 14.07.2020{, 16:56}

support, в редакторе ПБ отсутствует кнопка "Удалить блок" и не активная кнопка "Удалить папку". Папку можно только добавить. FLP703

av
Майор
Сообщения: 1102
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 79
Имя: Алексей

Новый редактор для создания пользовательских блоков.

#51

Сообщение av » 21.07.2020{, 16:07}

support, Попытался создать универсальный мультиблок для трех типов TFT дисплеев на основе библиотек от Adafruit. В принципе немного разобрался как это делается, но при просмотре кода вижу что не все гладко с декларированием переменных. Объясню суть проблемы. Создал для теста блок вывода текста на дисплей. Из одного созданного блока можно выбрать тип блока Статический, Динамический, Полустатический текст. Допустим добавляем в проект один блок и в настройках выбираем тип блока (Статический: у блока только всего два входа En, IN все остальное управление координаты, цвет, размер текста находятся внутри блока).Добавляю еще этот же блок и выбираем тип Динамический у которого все управление на входах. Далее открываю просмотрщик кода и вижу, что декларация переменных для двух блоков совпадает (нет добавления уникального цифрового индентефикатора). Параметры и код блока создавал в разделах "... каждого инстанса" и по сути задекларированые переменные так же объявлены в коде каждого инстанса должны вроде получить уникальный индентефикатор. Может я что не так понял или нет такой возможности из одного блока выбирать каким он будет Статическим, Динамическим и т.д. и использовать его много раз в проекте. Пожалуйста если у вас есть время разъясните возможно ли так создавать блок.

Вот набросок блока:
TFT_text_(Code).ubi
(3.2 МБ) 10 скачиваний

Аватара пользователя
support
Супермодератор
Сообщения: 1554
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 504
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#52

Сообщение support » 21.07.2020{, 18:06}

av писал(а):
21.07.2020{, 16:07}
support, Попытался создать универсальный мультиблок для трех типов TFT дисплеев на основе библиотек от Adafruit. В принципе немного разобрался как это делается, но при просмотре кода вижу что не все гладко с декларированием переменных. Объясню суть проблемы. Создал для теста блок вывода текста на дисплей. Из одного созданного блока можно выбрать тип блока Статический, Динамический, Полустатический текст. Допустим добавляем в проект один блок и в настройках выбираем тип блока (Статический: у блока только всего два входа En, IN все остальное управление координаты, цвет, размер текста находятся внутри блока).Добавляю еще этот же блок и выбираем тип Динамический у которого все управление на входах. Далее открываю просмотрщик кода и вижу, что декларация переменных для двух блоков совпадает (нет добавления уникального цифрового индентефикатора). Параметры и код блока создавал в разделах "... каждого инстанса" и по сути задекларированые переменные так же объявлены в коде каждого инстанса должны вроде получить уникальный индентефикатор. Может я что не так понял или нет такой возможности из одного блока выбирать каким он будет Статическим, Динамическим и т.д. и использовать его много раз в проекте. Пожалуйста если у вас есть время разъясните возможно ли так создавать блок.

Вот набросок блока:TFT_text_(Code).ubi
Я как раз сегодня планирую написать страницу хелпа, где этот вопрос раскрывается. В этой теме viewtopic.php?f=39&t=6577 сказанно как посмотреть текущее состояние хелпа. Завтра утром думаю уже сможете посмотреть.
Автор программы FLProg.

av
Майор
Сообщения: 1102
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 79
Имя: Алексей

Новый редактор для создания пользовательских блоков.

#53

Сообщение av » 21.07.2020{, 18:53}

support, да я эту тему видел и уже прочитал на яндекс диске. Вопрос уже не актуален вроде разобрался, в редакторе оказывается есть кнопка добавления уникального идентификатора. Уважаемый Сергей в новом редакторе капец как нужны подсказки при наведении мыши на кнопки это позволит даже на подсознательном уровне допетрить что к чему :yes: .

Аватара пользователя
support
Супермодератор
Сообщения: 1554
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 504
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#54

Сообщение support » 21.07.2020{, 19:54}

av писал(а):
21.07.2020{, 18:53}
support, да я эту тему видел и уже прочитал на яндекс диске. Вопрос уже не актуален вроде разобрался, в редакторе оказывается есть кнопка добавления уникального идентификатора. Уважаемый Сергей в новом редакторе капец как нужны подсказки при наведении мыши на кнопки это позволит даже на подсознательном уровне допетрить что к чему :yes: .
После написания хелпа, и согласования терминологии с пользователями (для того я и сделал тему посвящённую хелпу ), я всем кнопкам сделаю всплывающие подсказки. В хелпе я уже даю временные названия кнопкам. Если всех устроит и всем будет понятно - перенесу их в программу.Ну и кроме того на всех окошках будет кнопочка "Помощь", которая будет сразу открывать соответствующую страничку хелпа.
Постараюсь сделать это всё быстрее, но.... у меня и основная работа есть)))).
Автор программы FLProg.

av
Майор
Сообщения: 1102
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 79
Имя: Алексей

Новый редактор для создания пользовательских блоков.

#55

Сообщение av » 21.07.2020{, 21:05}

support, а есть ли возможность в новом редакторе использовать одновременно два условия для одной секции кода. Например: для написания кода для рисования прямоугольника нужны два условия исходя из параметра "Статический" (в зависимости от этого параметра блок будет с входами управления или без них) и "Выбор фигуры прямоугольника" ( Прямоуг., Прямоуг.скругленный, Прямоуг.закрашенный ). Не знаю как решить эту задачку. Может кто из форумчан уже освоил редактор подскажите пожалуйста.

Аватара пользователя
support
Супермодератор
Сообщения: 1554
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 504
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#56

Сообщение support » 21.07.2020{, 23:43}

av писал(а):
21.07.2020{, 21:05}
support, а есть ли возможность в новом редакторе использовать одновременно два условия для одной секции кода. Например: для написания кода для рисования прямоугольника нужны два условия исходя из параметра "Статический" (в зависимости от этого параметра блок будет с входами управления или без них) и "Выбор фигуры прямоугольника" ( Прямоуг., Прямоуг.скругленный, Прямоуг.закрашенный ). Не знаю как решить эту задачку. Может кто из форумчан уже освоил редактор подскажите пожалуйста.
Создайте необходимые условия , например статический закрашенный, статический прямоугольный, не статический закрашенный, и так далее.
Это как говорится решение в лоб. Наверное не самое лучшее.
Второе решение - разбить код на мелкие части, например часть отвечающую за статиченость, и часть отвечающую за форму. И уже рулит этими частями.
В общем надо смотреть код, как лучше сделать.
Автор программы FLProg.

av
Майор
Сообщения: 1102
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 79
Имя: Алексей

Новый редактор для создания пользовательских блоков.

#57

Сообщение av » 22.07.2020{, 02:08}

support писал(а):
21.07.2020{, 23:43}
Второе решение - разбить код на мелкие части, например часть отвечающую за статиченость, и часть отвечающую за форму. И уже рулит этими частями.
Такое решение подразумевает создание большого количества входов и параметров под каждый блок. Придумывать к ним имена замучаешся. Допустим для 4 блоков, чтобы создать входы для одной координаты по оси Х нужно 4 имени (Хп, Хс, Хз, Хсз). А их входов координаты Х для всех блоков понадобится не меньше 20 не говоря уже об остальных входах Y, высота, ширина, радиус закругления да ещё плюс столько же параметров для статических блоков. Плохо что нет добавления уникальных идентификаторов для параметров и входов. Вбил одну букву "Х" и добавляй ID к ней столько сколько нужно входов или параметров. Вообщем я в тупике.

Аватара пользователя
support
Супермодератор
Сообщения: 1554
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 504
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#58

Сообщение support » 22.07.2020{, 02:44}

av писал(а):
22.07.2020{, 02:08}
support писал(а):
21.07.2020{, 23:43}
Второе решение - разбить код на мелкие части, например часть отвечающую за статиченость, и часть отвечающую за форму. И уже рулит этими частями.
Такое решение подразумевает создание большого количества входов и параметров под каждый блок. Придумывать к ним имена замучаешся. Допустим для 4 блоков, чтобы создать входы для одной координаты по оси Х нужно 4 имени (Хп, Хс, Хз, Хсз). А их входов координаты Х для всех блоков понадобится не меньше 20 не говоря уже об остальных входах Y, высота, ширина, радиус закругления да ещё плюс столько же параметров для статических блоков. Плохо что нет добавления уникальных идентификаторов для параметров и входов. Вбил одну букву "Х" и добавляй ID к ней столько сколько нужно входов или параметров. Вообщем я в тупике.
Не совсем понял а при чём здесь входы? Мы же говорим про условия! Вообще опишите задачу поподробнее.
Автор программы FLProg.

av
Майор
Сообщения: 1102
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 79
Имя: Алексей

Новый редактор для создания пользовательских блоков.

#59

Сообщение av » 22.07.2020{, 04:52}

support писал(а):
22.07.2020{, 02:44}
Не совсем понял а при чём здесь входы? Мы же говорим про условия! Вообще опишите задачу поподробнее.
Решил сделать в новом редакторе мультиблоки под TFT дисплеи на библиотеках от Adafruit для трех разных дисплеев благо библиотеки и команды у них одинаковые. По этому объединяю их в одну сборку блоков. С текстом разобрался. На очереди графические блоки. Начал создание одного блока для всех видов прямоугольников их 4 вида. Для удобства использования в проектах разделил их на две группы (Статические и Динамические). Статические занимают мало места на поле платы проекта и все их параметры находятся в настройках блока, что очень удобно один раз настроил и забыл. Динамические же имеют входы для управления параметрами которые могут изменяться в процессе выполнения программы (допустим графическое меню). Задача состоит в том чтобы в дереве блоков для дисплея не плодить кучу блоков, а создать один и в его настройках выбирать "Тип блока"- Статический или Динамический. Далее производить "Выбор фигуры"-Прямоугольник, Прямоугольник залитый, Прямоугольник с скругленными углами и т. д. Всего получается восемь возможных конфигураций исходя из двух параметров статические 4 и динамические 4. Как создать условия при которых будет компилироваться каждая конфигурация я разобрался. Но вот при создании входов(для динамики) и параметров(для статики) получается очень громоздко. Нужно прописать много имен входов и параметров и чтобы они не были одинаковыми.
Вот пример для параметров:Показать
Новый редактор.png
И это только параметры для 4 статических конфигураций, столько же будет входов для 4 динамических конфигураций. А на очереди графика круга, треугольника. Получится очень громоздко. Возможно я не правильно создаю параметры и входы, но другого варианта я не знаю. Если разбивать на множество блоков, то все равно нужно создавать много параметров и входов для каждого блока. В старом редакторе было попроще в плане создания входов и параметров так как им присваивались дополнительные айди при добавлении блока повторно. Вот попытался написать подробней возможно сумбурно/скомкано, как могу извините.

Аватара пользователя
support
Супермодератор
Сообщения: 1554
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 504
Откуда: Астрахань
Имя: Сергей
Контактная информация:

Новый редактор для создания пользовательских блоков.

#60

Сообщение support » 22.07.2020{, 05:51}

av писал(а):
22.07.2020{, 04:52}
support писал(а):
22.07.2020{, 02:44}
Не совсем понял а при чём здесь входы? Мы же говорим про условия! Вообще опишите задачу поподробнее.
Решил сделать в новом редакторе мультиблоки под TFT дисплеи на библиотеках от Adafruit для трех разных дисплеев благо библиотеки и команды у них одинаковые. По этому объединяю их в одну сборку блоков. С текстом разобрался. На очереди графические блоки. Начал создание одного блока для всех видов прямоугольников их 4 вида. Для удобства использования в проектах разделил их на две группы (Статические и Динамические). Статические занимают мало места на поле платы проекта и все их параметры находятся в настройках блока, что очень удобно один раз настроил и забыл. Динамические же имеют входы для управления параметрами которые могут изменяться в процессе выполнения программы (допустим графическое меню). Задача состоит в том чтобы в дереве блоков для дисплея не плодить кучу блоков, а создать один и в его настройках выбирать "Тип блока"- Статический или Динамический. Далее производить "Выбор фигуры"-Прямоугольник, Прямоугольник залитый, Прямоугольник с скругленными углами и т. д. Всего получается восемь возможных конфигураций исходя из двух параметров статические 4 и динамические 4. Как создать условия при которых будет компилироваться каждая конфигурация я разобрался. Но вот при создании входов(для динамики) и параметров(для статики) получается очень громоздко. Нужно прописать много имен входов и параметров и чтобы они не были одинаковыми.
Вот пример для параметров:Показать
Новый редактор.png
И это только параметры для 4 статических конфигураций, столько же будет входов для 4 динамических конфигураций. А на очереди графика круга, треугольника. Получится очень громоздко. Возможно я не правильно создаю параметры и входы, но другого варианта я не знаю. Если разбивать на множество блоков, то все равно нужно создавать много параметров и входов для каждого блока. В старом редакторе было попроще в плане создания входов и параметров так как им присваивались дополнительные айди при добавлении блока повторно. Вот попытался написать подробней возможно сумбурно/скомкано, как могу извините.
Для начала я бы всё таки Вам посоветовал не делать общий блок "Фигура" а всё таки сделать три блока "Круг", "Прямоугольник", "Треугольник" и так далее. Универсальный блок можно сделать, но это действительно будет громозко и честно говоря неудобно.
Давайте теперь рассмотрим как сделать например круг.
Создаем параметры:
Задание центра - Boolean - Значения -" константа"-"вход"
Центр X_Par - Inttger - если истинно условие -( Задание центра =" константа").
Центр Y_Par - Inttger - если истинно условие -( Задание центра =" константа").
Задание Радиуса - Boolean - Значения -" константа"-"вход"
Радиус_Par - Inttger - если истинно условие -( Задание Радиуса =" константа").
Задание цвета- Boolean - Значения -" константа"-"вход"
Цвет_Par - Inttger - если истинно условие -( Задание цвета =" константа").

Теперь входа
Центр X - Inttger - если ложно условие -( Задание центра =" константа").
Центр Y - Inttger - если ложно условие -( Задание центра =" константа").
Радиус - Inttger - если ложно условие -( Задание Радиуса =" константа").
Цвет - Inttger - если ложно условие -( Задание цвета =" константа").

Теперь код
Я так понимаю что функция отрисовки выглядит где то так

lcd.paintCicle(x,y,r,Color);

В коде каждого инстанса в секции Declare в конце объявляем массив.
int Array_<INST.UUID>[4];

В коде каждого инстанса в секции Loop в месте вставки блока создаем несколько элементов кода.


код1 - если истинно условие -( Задание центра =" константа").
Array_<INST.UUID>[0] =<Центр X_Par>;
Array_<INST.UUID>[1] =<Центр Y_Par>;

код2 - если ложно условие -( Задание центра =" константа").
Array_<INST.UUID>[0] =<Центр X>;
Array_<INST.UUID>[1] =<Центр Y>;

код3 - если истинно условие -( Задание Радиуса =" константа")..
Array_<INST.UUID>[2] =<Радиус_Par>;

код4 - если ложно условие -( Задание Радиуса =" константа").).
Array_<INST.UUID>[2] =<Радиус>;

код5 - если истинно условие -( Задание цвета =" константа")..
Array_<INST.UUID>[3] =<Цвет_Par>;

код6 - если ложно условие -( Задание цвета =" константа").).
Array_<INST.UUID>[3] =<Цвет>;

код 7 - нет условия

lcd.paintCicle(Array_<INST.UUID>[0],Array_<INST.UUID>[1],Array_<INST.UUID>[2],Array_<INST.UUID>[3]);


Ну и получится настраиваемый круг. Так же с другими фигурами Только меняем названия и количество входов
Автор программы FLProg.

Ответить

Вернуться в «Разработка пользовательских блоков»