Появился в версии 7.
Такой идентификатор есть, и он называется "Идентификатор инстанса". Он уникальный для каждого экземпляра блока вытаскиваемого ра схему.Dryundel писал(а): ↑26.02.2022{, 09:55}support, есть предложение по вышеобозначенному вопросу.А что если добавить в редактор еще один тип параметра? Ну типа "Модификатор идентификатора мультиблока". Ведь, на сколько я понимаю, общие параметры привязываются именно к идентификатору мультиблока.
Идея конечно сырая и мне неизвестна вся логика FLProg, но предлагаю как направление к решению вопроса.
Отправлено спустя 10 минут 30 секунд:
Модификатор идентификатора - это конечно техническое название типа параметра, для понимания идеи. Рабочим названием может быть к примеру "Экземпляр мультиблока". Надо еще подумать.![]()
Такое добавление не должно влиять на работу блоков созданных в предыдущих версиях.
Кроме того можно создавать группы блоков и для этих групп создавать собственнные наборы параметров, условий, общего кодаDryundel писал(а): ↑25.02.2022{, 21:15}aidar_i, Naladchik, вероятно нормального решения пока не существует.Dryundel писал(а): ↑20.02.2022{, 11:44}Требуется сделать так, чтобы одна группа экземпляров подчинялась одним общим настройкам, а другая группа экземпляров соответственно другим. И можно было выбирать к какой группе относится экземпляр.
...
Рассуждая логически, в редакторе не хватает еще одной ступеньки иерархии, типа "Экземпляр мультиблока"
Но может кто то придумал костыль?
Господа, я нашел костыль!![]()
Если имеющийся в проекте такой блок сохранить в библиотеку ПБ с новым именем (достаточно изменить одну букву). Хотя и букву менять не обязательно. Нужно только для отличия. Тогда в библиотеке будут два идентичных блока. Фишка в том, что общие параметры этих клонов можно сделать разными.
Костыль? - Да.
Кривой? - еще какой кривой.
Но работает!![]()
support, и все же, это не есть достойное программы FLProg решение. Я не унялся.
Этот костыль снимает ограничение на использование блоков один раз. А это не есть хорошо.
Phazz, support, похоже что вы не понимаете о чем я говорю. Согласен вопрос как бы размазан в нескольких постах, хотя я описывал проблему достаточно внятно в одном из них.
Да похоже сразу не понял проблемму. Теперь ясно чего наддо. Но честно говоря даже пока не предстваляю как технически это реализовать. Но буду думать......Dryundel писал(а): ↑26.02.2022{, 11:00}Phazz, support, похоже что вы не понимаете о чем я говорю. Согласен вопрос как бы размазан в нескольких постах, хотя я описывал проблему достаточно внятно в одном из них.
Попробую еще раз.
=====================================
Вот есть ПБ, можно создавать много инстансов этого блока. Понятно, что идентификатор инстанса у каждого будет свой и путаницы не будет. У этой группы инстансов есть параметры инстансов и общий параметр (к примеру Serial0). Этот общий параметр можно настроить из любого инстанса и он поменяется сразу во всех.
Теперь я хочу создать в проекте другую группу инстансов такого же блока но она (эта новая группа) должна работать с Software Serial. Идентификаторы инстансов в этом случае не помогут, т.к. Serial является общим параметрам и подчинен идентификатору мультиблока.
И какие бы ухищрения я не использовал, не удастся в проекте заставить одну группу инстансов работать с Serial0 а другую с Software Serial, т.к. общая настройка применится ко всем инстансам.
Я приводил пример штатного блока "Дисплей". В нем можно создать "Дисплей №2" и идентифицировать инстансы по этому параметру. У дисплея 1 и 2 разные адреса, колич.строк, столбцов и прочее. Группы инстансов в данном случае подчиняются одной или другой общей настройке.
В Редакторе ПБ такого инструмента нет. А хотелось бы.
support, как вариант:
Все эти main блоки, это пережитки. Горькое наследие базового редактора.
Вроде ничего вариант. Надо помозговать над ним. Спасибо.
Не понял. А в чем проблема? Делаешь функцию в общем коде в самых верхних "Основных настройках" и пользуешься этой функцией из любого экземпляра мультиблокаблока.
Не совсем понимаю как это работает, но если функция создаётся по шаблону, то почему бы не добавить аргументы к этой функции и вставлять из них нужный текст в эту функцию.
А можно четче сформулировать свою мысль, недопонял если честно.