☰ Содержание
Редактор пользовательских блоков на С (Professional).
Общие термины и понятия.


Редактор предназначен для создания пользовательских блоков на языке С. В отличие от редактора Basic, он имеет расширенный функционал, и дополнительные возможности. Редактор доступен в программе FLProg, начиная с версии 7.0.


Основное окно редактора.



Блок, созданный в редакторе, может представлять собой как один блок, так и пакет блоков объединённых общим функционалом. В случае если в пакете содержится один блок, то в библиотеке пользовательских блоков он и представляется как один блок. Если в пакете содержится несколько блоков, то в библиотеке они представляются как папка. Порядок блоков в этой папке, названия, разбивка по подпапкам задается на соответствующей ветке в дереве редактора блока.

Поэтому пользовательский блок, созданный в этом редакторе, далее будем называть мультиблок. Отдельные блоки, входящие в пакет далее будут называться блоками.

Блоки входящие в мультиблок могут группироваться в папки (исключительно визуальное разделение для удобства), или группы (логическое разделение).

Блоки перенесённые на схему проекта называются экземплярами блока

Общий принцип построения мультиблока








При создании блока можно использовать параметры – задаваемые пользователем значения, которые можно изменять в процессе создания проекта в FLProg. Параметры разделяются на общие параметры и параметры экземпляра. Существуют общие параметры мультиблока, общие параметры группы, общие параметры блока.

Общие параметры мультиблока будут показаны в настройках всех экземпляров блоков входящих в мультиблок при использовании их в проекте. При изменении этого параметра в одном экземпляре, значение этого параметра изменится и в других экземплярах блоков мультиблока входящих в проект.




Общие параметры группы будут показаны в настройках всех экземпляров блоков входящих в эту группу при использовании их в проекте. При изменении этого параметра в одном экземпляре, значение этого параметра изменится и в других экземплярах блоков этой группы входящих в проект.




Общие параметры экземпляра будут показаны в настройках всех экземпляров данного блока. При изменении этого параметра в одном экземпляре, значение этого параметра изменится и в других экземплярах данного блока входящих в проект.




Параметры экземпляра, как и общие параметры блока показываются во всех экземплярах блока. Но при изменении данного параметра он изменяется только в конкретном экземпляре.




При компиляции проекта, для мультиблока формируется два вида вставляемого кода. Общий код, и код каждого экземпляра

Общий код вставляется в скетчь ОДИН раз вне зависимости от количества применённых в проекте экземпляров блоков.

Код каждого экземпляра вставляется в скетчь для каждого экземпляра блока.

Как и в случае параметров, существует общий код мультиблока, общий код группы, общий код экземпляра.

Общий код мультиблока вставляется в код скетча один раз при использовании в проекте любого экземпляра блока входящего в пакет блоков.




Общий код группы вставляется в скетч один раз при использовании в проекте любого из экземпляров блоков входящих в данную группу.




Общий код блока вставляется в скетч один раз при использовании экземпляров данного блока в проекте.




Код каждого экземпляра вставляется в скетч для каждого экземпляра блока, применяемого в проекте




Каждый из этих видов кода разделяется на секции, в соответствии с местом вставки в скетчь

Это секции “Declare”, “Setup”, “Loop”, “Functions”. Они соответствуют секциям в скетче в Arduino IDE.




Каждая секция разбита на участки в соответствии с местом вставки кода в секцию.




Код из Начала секции вставляется в соответствующую секцию скетча до кода, который вставляется компилятором программы FLProg для стандартных блоков.

Код из Конца секции вставляется в соответствующую секцию скетча после кода, который вставляется компилятором программы FLProg для стандартных блоков.

Код секции “Functions” вставляется всегда в конец скетча.

Для кода каждого инстанса в секции “Loop” существует дополнительный участок Место вставки блока. Код из этого участка вставляется в секции Loop скетча в месте вставки конкретного экземпляра блока.




В каждом участке кода возможно создание одного или нескольких элементов кода. В элементе кода прописывается непосредственно сам код на языке С, который будет вставляться в скетчь.




Для управления видимостью параметров блока в проекте, наличием входов и выходов у блока в проекте, а также вставкой элементов кода в скетчь используются Условия.

Для создания условий применяются как значения параметров, так и некоторые системные значения проекта. Как и параметры, условия разбиваются на общие условия, и условия каждого экземпляра.

Общие условия мультиблока могут использовать только общие параметры мультиблока, и системные значения проекта. Эти условия могут использоваться для управления в любом инстансе, и для любого элемента кода.




Общие условия группы могут использовать системные значения проекта, общие параметры мультиблока, общие параметры групп в которые входит данная группа, общие параметры этой группы. Эти условия доступны для управления во всех инстансах, которые входят в эту группу, и элементами общего кода данной группы, и групп которые входят в эту группу.




Общие условия экземпляра могут использовать системные значения, значения общих параметров данного блока, значения общих параметров всех групп в которые данный инстанс входит, а так же значения общих параметров мультиблока. Эти условия могут применятся для управления в данном блоке.




Условия каждого экземпляра могут использовать системные значения, значение параметров данного экземпляров данного блока, значения общих параметров данного блока, значения общих параметров всех групп в которые данный блок входит, а так же значения общих параметров мультиблока. Эти условия могут применятся для управления в данном экземпляре блока.




Все используемые инстансами библиотеки загружаются в мультиблок.




А в каждом конкретном блоке, указывается, какую библиотеку блок использует. При компиляции проекта выгружаются только те библиотеки, которые используются экземплярами блоков применёнными в проекте.