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

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

Создаем свой блок. Вопросы, помощь знатоков.
Аватара пользователя
Phazz
Полковник
Сообщения: 2206
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 289
Откуда: Сургут
Имя: Анатолий

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

#221

Сообщение Phazz » 26.02.2022{, 10:00}

Я это делал вводя параметр id чтобы развести блоки

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

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

#222

Сообщение support » 26.02.2022{, 10:29}

Dryundel писал(а):
26.02.2022{, 09:55}
support, есть предложение по вышеобозначенному вопросу.
Dryundel писал(а):
20.02.2022{, 18:44}
Ну вот создал я блок дисплея. В его экземплярах входы ввода строки. Таких экземпляров много и все они имеют один адрес, одно количество строк... и т.д.
Внимание вопрос!
Как подключить второй дисплей?
А что если добавить в редактор еще один тип параметра? Ну типа "Модификатор идентификатора мультиблока". Ведь, на сколько я понимаю, общие параметры привязываются именно к идентификатору мультиблока.
Идея конечно сырая и мне неизвестна вся логика FLProg, но предлагаю как направление к решению вопроса.

Отправлено спустя 10 минут 30 секунд:
Модификатор идентификатора - это конечно техническое название типа параметра, для понимания идеи. Рабочим названием может быть к примеру "Экземпляр мультиблока". Надо еще подумать. :)
Такое добавление не должно влиять на работу блоков созданных в предыдущих версиях.
Такой идентификатор есть, и он называется "Идентификатор инстанса". Он уникальный для каждого экземпляра блока вытаскиваемого ра схему.
Автор программы FLProg.

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

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

#223

Сообщение support » 26.02.2022{, 10:33}

Dryundel писал(а):
25.02.2022{, 21:15}
Dryundel писал(а):
20.02.2022{, 11:44}
Требуется сделать так, чтобы одна группа экземпляров подчинялась одним общим настройкам, а другая группа экземпляров соответственно другим. И можно было выбирать к какой группе относится экземпляр.
...
Рассуждая логически, в редакторе не хватает еще одной ступеньки иерархии, типа "Экземпляр мультиблока"
Но может кто то придумал костыль?
aidar_i, Naladchik, вероятно нормального решения пока не существует.
Господа, я нашел костыль! :smile427:
Если имеющийся в проекте такой блок сохранить в библиотеку ПБ с новым именем (достаточно изменить одну букву). Хотя и букву менять не обязательно. Нужно только для отличия. Тогда в библиотеке будут два идентичных блока. Фишка в том, что общие параметры этих клонов можно сделать разными.
Костыль? - Да.
Кривой? - еще какой кривой.
Но работает! :D

support, и все же, это не есть достойное программы FLProg решение. Я не унялся. :)
Этот костыль снимает ограничение на использование блоков один раз. А это не есть хорошо.
Кроме того можно создавать группы блоков и для этих групп создавать собственнные наборы параметров, условий, общего кода
Автор программы FLProg.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2087
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 646
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#224

Сообщение Dryundel » 26.02.2022{, 11:00}

Phazz писал(а):
26.02.2022{, 10:00}
Я это делал вводя параметр id чтобы развести блоки
support писал(а):
26.02.2022{, 10:29}
Такой идентификатор есть, и он называется "Идентификатор инстанса". Он уникальный для каждого экземпляра блока вытаскиваемого ра схему.
support писал(а):
26.02.2022{, 10:33}
Кроме того можно создавать группы блоков и для этих групп создавать собственнные наборы параметров, условий, общего кода
Phazz, support, похоже что вы не понимаете о чем я говорю. Согласен вопрос как бы размазан в нескольких постах, хотя я описывал проблему достаточно внятно в одном из них.
Попробую еще раз.
=====================================
Вот есть ПБ, можно создавать много инстансов этого блока. Понятно, что идентификатор инстанса у каждого будет свой и путаницы не будет. У этой группы инстансов есть параметры инстансов и общий параметр (к примеру Serial0). Этот общий параметр можно настроить из любого инстанса и он поменяется сразу во всех.

Теперь я хочу создать в проекте другую группу инстансов такого же блока но она (эта новая группа) должна работать с Software Serial. Идентификаторы инстансов в этом случае не помогут, т.к. Serial является общим параметрам и подчинен идентификатору мультиблока.
И какие бы ухищрения я не использовал, не удастся в проекте заставить одну группу инстансов работать с Serial0 а другую с Software Serial, т.к. общая настройка применится ко всем инстансам.

Я приводил пример штатного блока "Дисплей". В нем можно создать "Дисплей №2" и идентифицировать инстансы по этому параметру. У дисплея 1 и 2 разные адреса, колич.строк, столбцов и прочее. Группы инстансов в данном случае подчиняются одной или другой общей настройке.
В Редакторе ПБ такого инструмента нет. А хотелось бы.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

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

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

#225

Сообщение support » 26.02.2022{, 15:45}

Dryundel писал(а):
26.02.2022{, 11:00}
Phazz писал(а):
26.02.2022{, 10:00}
Я это делал вводя параметр id чтобы развести блоки
support писал(а):
26.02.2022{, 10:29}
Такой идентификатор есть, и он называется "Идентификатор инстанса". Он уникальный для каждого экземпляра блока вытаскиваемого ра схему.
support писал(а):
26.02.2022{, 10:33}
Кроме того можно создавать группы блоков и для этих групп создавать собственнные наборы параметров, условий, общего кода
Phazz, support, похоже что вы не понимаете о чем я говорю. Согласен вопрос как бы размазан в нескольких постах, хотя я описывал проблему достаточно внятно в одном из них.
Попробую еще раз.
=====================================
Вот есть ПБ, можно создавать много инстансов этого блока. Понятно, что идентификатор инстанса у каждого будет свой и путаницы не будет. У этой группы инстансов есть параметры инстансов и общий параметр (к примеру Serial0). Этот общий параметр можно настроить из любого инстанса и он поменяется сразу во всех.

Теперь я хочу создать в проекте другую группу инстансов такого же блока но она (эта новая группа) должна работать с Software Serial. Идентификаторы инстансов в этом случае не помогут, т.к. Serial является общим параметрам и подчинен идентификатору мультиблока.
И какие бы ухищрения я не использовал, не удастся в проекте заставить одну группу инстансов работать с Serial0 а другую с Software Serial, т.к. общая настройка применится ко всем инстансам.

Я приводил пример штатного блока "Дисплей". В нем можно создать "Дисплей №2" и идентифицировать инстансы по этому параметру. У дисплея 1 и 2 разные адреса, колич.строк, столбцов и прочее. Группы инстансов в данном случае подчиняются одной или другой общей настройке.
В Редакторе ПБ такого инструмента нет. А хотелось бы.
Да похоже сразу не понял проблемму. Теперь ясно чего наддо. Но честно говоря даже пока не предстваляю как технически это реализовать. Но буду думать......
Автор программы FLProg.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2087
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 646
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#226

Сообщение Dryundel » 26.02.2022{, 18:37}

support писал(а):
26.02.2022{, 15:45}
Да похоже сразу не понял проблемму. Теперь ясно чего наддо. Но честно говоря даже пока не предстваляю как технически это реализовать. Но буду думать......
support, как вариант:
Добавить класс параметра "Инстанс мультиблока".
Этот параметр может добавлять введенное значение к идентификатору мультиблока.
Инстанс мультиблокаПоказать
2022-02-26_183050.jpg
2022-02-26_183050.jpg (24.36 КБ) 624 просмотра
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Phazz
Полковник
Сообщения: 2206
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 289
Откуда: Сургут
Имя: Анатолий

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

#227

Сообщение Phazz » 27.02.2022{, 11:25}

Dryundel, Если только делать это через main блок в котором конфигурируется дисплей, а данные слать уже через отдельные блоки

Аватара пользователя
Dryundel
Полковник
Сообщения: 2087
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 646
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#228

Сообщение Dryundel » 27.02.2022{, 16:39}

Phazz писал(а):
27.02.2022{, 11:25}
Dryundel, Если только делать это через main блок в котором конфигурируется дисплей, а данные слать уже через отдельные блоки
Все эти main блоки, это пережитки. Горькое наследие базового редактора.
Да и это не поможет. Ну как с помощью main блока настроить два UART ? Как сделать так, что бы часть подчиненных блоков работала с Serial0, а другая часть с Serial Software?
Может я чего то просто не догоняю? Допускаю и такое.
Если это возможно - покажите, научите пожалуйста.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Phazz
Полковник
Сообщения: 2206
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 289
Откуда: Сургут
Имя: Анатолий

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

#229

Сообщение Phazz » 27.02.2022{, 16:54}

Dryundel, нужен именно serial? Или дисплей тоже подойдёт?

Отправлено спустя 1 час 18 минут 45 секунд:
Конечно не так удобно, но жить с этим можно
Вложения
Блок UART.flp
(292.32 КБ) 28 скачиваний

Аватара пользователя
Phazz
Полковник
Сообщения: 2206
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 289
Откуда: Сургут
Имя: Анатолий

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

#230

Сообщение Phazz » 27.02.2022{, 19:39}

А вот чего действительно иногда не хватает, так это вставки кода из блока в общую функцию в мультиблоке

Аватара пользователя
Dryundel
Полковник
Сообщения: 2087
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 646
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#231

Сообщение Dryundel » 27.02.2022{, 21:56}

Phazz писал(а):
27.02.2022{, 19:37}
Dryundel, нужен именно serial? Или дисплей тоже подойдёт?

Отправлено спустя 1 час 18 минут 45 секунд:
Конечно не так удобно, но жить с этим можно
Вроде ничего вариант. Надо помозговать над ним. Спасибо.

Отправлено спустя 4 минуты 5 секунд:
Phazz писал(а):
27.02.2022{, 19:39}
А вот чего действительно иногда не хватает, так это вставки кода из блока в общую функцию в мультиблоке
Не понял. А в чем проблема? Делаешь функцию в общем коде в самых верхних "Основных настройках" и пользуешься этой функцией из любого экземпляра мультиблокаблока.
Или я чего не понял в проблеме?
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Phazz
Полковник
Сообщения: 2206
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 289
Откуда: Сургут
Имя: Анатолий

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

#232

Сообщение Phazz » 27.02.2022{, 22:25}

Вот у меня есть несколько блоков в мультиблоке. И каждый блок должен дописать свой кусочек кода в общую функцию. Может я просто не вижу как это сделать? Хочу перенести Gayver Portal в флпрог. А там собирается интерфейс в общей функции из которой он собирается.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2087
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 646
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#233

Сообщение Dryundel » 27.02.2022{, 22:59}

Phazz, понял проблему.
Совсем недавно решал подобную. Каждый инстанс должен был вставить в общий код кусок строки. И этот общий код должен был запуститься один раз при старте МК. Эту задачу я решил.
Нужна конкретика, что должен вставить блок в общую функцию? Конкретно какой код?
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Phazz
Полковник
Сообщения: 2206
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 289
Откуда: Сургут
Имя: Анатолий

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

#234

Сообщение Phazz » 28.02.2022{, 07:19}

Dryundel, Хочется реализовать вот это в флпрог
https://github.com/GyverLibs/GyverPorta ... 37b2#build

Отправлено спустя 58 минут 9 секунд:
Есть один способ, не задокументированная фича. Если не зарыть скобкой общую функцию а в блоках в функциях не открывать новую а писать дальше то этот код дописывается в конце и автоматически закрывается. Но эта фича работает только с одной функцией. А иногда хочется чтобы была возможность положить код из блока в общее условие, чтобы не делать несколько проверок в коде одного и того же.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2087
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 646
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#235

Сообщение Dryundel » 28.02.2022{, 09:32}

Phazz писал(а):
28.02.2022{, 08:17}
Хочется реализовать вот это в флпрог
Не совсем понимаю как это работает, но если функция создаётся по шаблону, то почему бы не добавить аргументы к этой функции и вставлять из них нужный текст в эту функцию.
На сколько я понял, каждая функция, это страница. Типа надо создать блоки-шаблоны таких страниц, а нужный текст либо передавать аргументами либо вообще из параметров блока вставлять.
Или идея в том чтобы собирать страницу-функцию с помощью нескольких блоков? По моему это извращение.
В одном блоке можно вставлять нужные куски кода в функцию по условиям привязанным к параметрам. Один блок - одна страница-функция. Зачем в общую функцию эти куски добавлять?
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
AlexCrane
Капитан
Сообщения: 833
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 272
Откуда: Ульяновск
Имя: Александр

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

#236

Сообщение AlexCrane » 28.02.2022{, 20:43}

Phazz, А если использовать такой подход
Сборка функций.flp
(264.24 КБ) 23 скачивания
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Phazz
Полковник
Сообщения: 2206
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 289
Откуда: Сургут
Имя: Анатолий

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

#237

Сообщение Phazz » 28.02.2022{, 21:05}

AlexCrane, Ну как вариант, но это в том случае если я знаю сколько будет блоков, а если нет?

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

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

#238

Сообщение av » 28.02.2022{, 21:22}

Всем привет !
В общем суть проблемы такая. Есть пакет блоков, состоящих из двух блоков. Требуется воспользоваться параметрами из одного блока в другом блоке, но нет такой возможности. Почему пришлось создавать два блока вместо одного мультиблока с общими параметрами. Все просто параметров много и с каждым новым блоком этих параметров становится все больше. Будет большая вероятность заблудиться. По этой причине пришлось разделить на блоки. Но теперь параметры и условия не доступны. Кто как обходит такую проблему ?

Аватара пользователя
AlexCrane
Капитан
Сообщения: 833
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 272
Откуда: Ульяновск
Имя: Александр

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

#239

Сообщение AlexCrane » 28.02.2022{, 21:27}

Phazz писал(а):
28.02.2022{, 21:05}
Ну как вариант, но это в том случае если я знаю сколько будет блоков, а если нет?
А можно четче сформулировать свою мысль, недопонял если честно.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Phazz
Полковник
Сообщения: 2206
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 289
Откуда: Сургут
Имя: Анатолий

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

#240

Сообщение Phazz » 28.02.2022{, 21:39}

AlexCrane, Вот смотрите, у вас в блоке можно выбрать 1 или 2. Ну допустим я сделаю 10, но вдруг в проекте мне нужно 11 или 20? В прочем посмотрев внимательно на библиотеку я уже отказался от этой идеи ) Как то я не представляю как ее сделать чтобы удобно было в флпрог ее использовать

Ответить

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