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

Создаем свой блок. Вопросы, помощь знатоков.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

Naladchik писал(а): 20 фев 2022, 18:12 Ну так это же реализовано.
Или не о том?
Верно. Не о том. :)
Я же привел пример штатного дисплея. Как сделать так же.
Ну вот создал я блок дисплея. В его экземплярах входы ввода строки. Таких экземпляров много и все они имеют один адрес, одно количество строк... и т.д.
Внимание вопрос!
Как подключить второй дисплей? :smile14:
Убьюсьведьгалавойапстену.

Отправлено спустя 7 минут 47 секунд:
[ref=#00aa00]support[/ref], помоги! Пожалуйста.
aidar_i
Полковник
Сообщения: 3360
Зарегистрирован: 24 дек 2016, 16:55
Откуда: Уфа
Имя: Айдар
Благодарил (а): 13 раз
Поблагодарили: 100 раз
Контактная информация:

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

Сообщение aidar_i »

Naladchik писал(а): 20 фев 2022, 18:12 Как подключить второй дисплей?
Убьюсьведьгалавойапстену.
Мне кажется, параметры помогут. Позже посмотрю.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

Dryundel писал(а): 20 фев 2022, 11:44 Требуется сделать так, чтобы одна группа экземпляров подчинялась одним общим настройкам, а другая группа экземпляров соответственно другим. И можно было выбирать к какой группе относится экземпляр.
...
Рассуждая логически, в редакторе не хватает еще одной ступеньки иерархии, типа "Экземпляр мультиблока"
Но может кто то придумал костыль?
[ref=#ff8000]aidar_i[/ref], [ref]Naladchik[/ref], вероятно нормального решения пока не существует.
Господа, я нашел костыль! :smile427:
Если имеющийся в проекте такой блок сохранить в библиотеку ПБ с новым именем (достаточно изменить одну букву). Хотя и букву менять не обязательно. Нужно только для отличия. Тогда в библиотеке будут два идентичных блока. Фишка в том, что общие параметры этих клонов можно сделать разными.
Костыль? - Да.
Кривой? - еще какой кривой.
Но работает! :D

[ref=#00aa00]support[/ref], и все же, это не есть достойное программы FLProg решение. Я не унялся. :)
Этот костыль снимает ограничение на использование блоков один раз. А это не есть хорошо.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

[ref=#00aa00]support[/ref], есть предложение по вышеобозначенному вопросу.
Dryundel писал(а): 20 фев 2022, 18:44 Ну вот создал я блок дисплея. В его экземплярах входы ввода строки. Таких экземпляров много и все они имеют один адрес, одно количество строк... и т.д.
Внимание вопрос!
Как подключить второй дисплей?
А что если добавить в редактор еще один тип параметра? Ну типа "Модификатор идентификатора мультиблока". Ведь, на сколько я понимаю, общие параметры привязываются именно к идентификатору мультиблока.
Идея конечно сырая и мне неизвестна вся логика FLProg, но предлагаю как направление к решению вопроса.

Отправлено спустя 10 минут 30 секунд:
Модификатор идентификатора - это конечно техническое название типа параметра, для понимания идеи. Рабочим названием может быть к примеру "Экземпляр мультиблока". Надо еще подумать. :)
Такое добавление не должно влиять на работу блоков созданных в предыдущих версиях.
Аватара пользователя
Phazz
Полковник
Сообщения: 3129
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

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

Сообщение Phazz »

Я это делал вводя параметр id чтобы развести блоки
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

Dryundel писал(а): 26 фев 2022, 09:55 [ref=#00aa00]support[/ref], есть предложение по вышеобозначенному вопросу.
Dryundel писал(а): 20 фев 2022, 18:44 Ну вот создал я блок дисплея. В его экземплярах входы ввода строки. Таких экземпляров много и все они имеют один адрес, одно количество строк... и т.д.
Внимание вопрос!
Как подключить второй дисплей?
А что если добавить в редактор еще один тип параметра? Ну типа "Модификатор идентификатора мультиблока". Ведь, на сколько я понимаю, общие параметры привязываются именно к идентификатору мультиблока.
Идея конечно сырая и мне неизвестна вся логика FLProg, но предлагаю как направление к решению вопроса.

Отправлено спустя 10 минут 30 секунд:
Модификатор идентификатора - это конечно техническое название типа параметра, для понимания идеи. Рабочим названием может быть к примеру "Экземпляр мультиблока". Надо еще подумать. :)
Такое добавление не должно влиять на работу блоков созданных в предыдущих версиях.
Такой идентификатор есть, и он называется "Идентификатор инстанса". Он уникальный для каждого экземпляра блока вытаскиваемого ра схему.
Автор программы FLProg.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

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

[ref=#00aa00]support[/ref], и все же, это не есть достойное программы FLProg решение. Я не унялся. :)
Этот костыль снимает ограничение на использование блоков один раз. А это не есть хорошо.
Кроме того можно создавать группы блоков и для этих групп создавать собственнные наборы параметров, условий, общего кода
Автор программы FLProg.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

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

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

Я приводил пример штатного блока "Дисплей". В нем можно создать "Дисплей №2" и идентифицировать инстансы по этому параметру. У дисплея 1 и 2 разные адреса, колич.строк, столбцов и прочее. Группы инстансов в данном случае подчиняются одной или другой общей настройке.
В Редакторе ПБ такого инструмента нет. А хотелось бы.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

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

Сообщение support »

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

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

Я приводил пример штатного блока "Дисплей". В нем можно создать "Дисплей №2" и идентифицировать инстансы по этому параметру. У дисплея 1 и 2 разные адреса, колич.строк, столбцов и прочее. Группы инстансов в данном случае подчиняются одной или другой общей настройке.
В Редакторе ПБ такого инструмента нет. А хотелось бы.
Да похоже сразу не понял проблемму. Теперь ясно чего наддо. Но честно говоря даже пока не предстваляю как технически это реализовать. Но буду думать......
Автор программы FLProg.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

support писал(а): 26 фев 2022, 15:45 Да похоже сразу не понял проблемму. Теперь ясно чего наддо. Но честно говоря даже пока не предстваляю как технически это реализовать. Но буду думать......
[ref=#00aa00]support[/ref], как вариант:
Добавить класс параметра "Инстанс мультиблока".
Этот параметр может добавлять введенное значение к идентификатору мультиблока.
[spoiler=Инстанс мультиблока]
2022-02-26_183050.jpg
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Phazz
Полковник
Сообщения: 3129
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

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

Сообщение Phazz »

[ref=#ff8000]Dryundel[/ref], Если только делать это через main блок в котором конфигурируется дисплей, а данные слать уже через отдельные блоки
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

Phazz писал(а): 27 фев 2022, 11:25 [ref=#ff8000]Dryundel[/ref], Если только делать это через main блок в котором конфигурируется дисплей, а данные слать уже через отдельные блоки
Все эти main блоки, это пережитки. Горькое наследие базового редактора.
Да и это не поможет. Ну как с помощью main блока настроить два UART ? Как сделать так, что бы часть подчиненных блоков работала с Serial0, а другая часть с Serial Software?
Может я чего то просто не догоняю? Допускаю и такое.
Если это возможно - покажите, научите пожалуйста.
Аватара пользователя
Phazz
Полковник
Сообщения: 3129
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

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

Сообщение Phazz »

[ref=#ff8000]Dryundel[/ref], нужен именно serial? Или дисплей тоже подойдёт?

Отправлено спустя 1 час 18 минут 45 секунд:
Конечно не так удобно, но жить с этим можно
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Phazz
Полковник
Сообщения: 3129
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

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

Сообщение Phazz »

А вот чего действительно иногда не хватает, так это вставки кода из блока в общую функцию в мультиблоке
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

Phazz писал(а): 27 фев 2022, 19:37 Dryundel, нужен именно serial? Или дисплей тоже подойдёт?

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

Отправлено спустя 4 минуты 5 секунд:
Phazz писал(а): 27 фев 2022, 19:39 А вот чего действительно иногда не хватает, так это вставки кода из блока в общую функцию в мультиблоке
Не понял. А в чем проблема? Делаешь функцию в общем коде в самых верхних "Основных настройках" и пользуешься этой функцией из любого экземпляра мультиблокаблока.
Или я чего не понял в проблеме?
Аватара пользователя
Phazz
Полковник
Сообщения: 3129
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

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

Сообщение Phazz »

Вот у меня есть несколько блоков в мультиблоке. И каждый блок должен дописать свой кусочек кода в общую функцию. Может я просто не вижу как это сделать? Хочу перенести Gayver Portal в флпрог. А там собирается интерфейс в общей функции из которой он собирается.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

[ref=#808080]Phazz[/ref], понял проблему.
Совсем недавно решал подобную. Каждый инстанс должен был вставить в общий код кусок строки. И этот общий код должен был запуститься один раз при старте МК. Эту задачу я решил.
Нужна конкретика, что должен вставить блок в общую функцию? Конкретно какой код?
Аватара пользователя
Phazz
Полковник
Сообщения: 3129
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 233 раза
Поблагодарили: 114 раз

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

Сообщение Phazz »

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

Отправлено спустя 58 минут 9 секунд:
Есть один способ, не задокументированная фича. Если не зарыть скобкой общую функцию а в блоках в функциях не открывать новую а писать дальше то этот код дописывается в конце и автоматически закрывается. Но эта фича работает только с одной функцией. А иногда хочется чтобы была возможность положить код из блока в общее условие, чтобы не делать несколько проверок в коде одного и того же.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2437
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 3 раза
Поблагодарили: 31 раз

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

Сообщение Dryundel »

Phazz писал(а): 28 фев 2022, 08:17 Хочется реализовать вот это в флпрог
Не совсем понимаю как это работает, но если функция создаётся по шаблону, то почему бы не добавить аргументы к этой функции и вставлять из них нужный текст в эту функцию.
На сколько я понял, каждая функция, это страница. Типа надо создать блоки-шаблоны таких страниц, а нужный текст либо передавать аргументами либо вообще из параметров блока вставлять.
Или идея в том чтобы собирать страницу-функцию с помощью нескольких блоков? По моему это извращение.
В одном блоке можно вставлять нужные куски кода в функцию по условиям привязанным к параметрам. Один блок - одна страница-функция. Зачем в общую функцию эти куски добавлять?
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref=#808080]Phazz[/ref], А если использовать такой подход
Сборка функций.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя