☰ Зміст
Редактор блоків користувача на С (Professional).
Загальні терміни та поняття.


Редактор призначений для створення блоків користувача на мові С. На відміну від редактора Basic, він має розширений функціонал, і додаткові можливості. Редактор доступний у програмі FLProg, починаючи з версії 7.0.


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



Блок, створений редакторі, може бути як один блок, і пакет блоків об'єднаних загальним функціоналом. Якщо в пакеті міститься один блок, то в бібліотеці блоків користувача він і представляється як один блок. Якщо пакет містить кілька блоків, то в бібліотеці вони видаються як папка. Порядок блоків у цій папці, назви, розбивка по підпапках визначається на відповідній гілці в дереві редактора блоку.

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

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

Блоки перенесені на схему проекту екземплярами блоку

Загальний принцип побудови мультиблоку








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

Загальні параметри мультиблоку будуть показані в налаштуваннях всіх екземплярів блоків, що входять до мультиблоку при використанні їх у проекті. При зміні цього параметра в одному екземплярі, значення цього параметра зміниться і в інших екземплярах блоків мультиблоку, що входять до проекту.




Загальні параметри групи будуть показані в налаштуваннях всіх екземплярів блоків, що входять до цієї групи при використанні їх у проекті. При зміні цього параметра в одному екземплярі, значення цього параметра зміниться і в інших екземплярах блоків цієї групи, що входять до проекту.




Загальні параметри екземпляра будуть показані у налаштуваннях всіх екземплярів цього блоку. При зміні цього параметра в одному примірнику значення цього параметра зміниться і в інших примірниках даного блоку, що входять до проекту.




Параметри екземпляра, як і загальні параметри блоку відображаються у всіх екземплярах блоку. Але за зміни цього параметра він змінюється лише у конкретному екземплярі.




При компіляції проекту, для мультиблоку формується два види коду, що вставляється. Загальний код та код кожного екземпляра

Загальний код вставляється в скетч ОДИН раз незалежно від кількості застосованих у проекті екземплярів блоків.

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

Як і у разі параметрів, існує загальний код мультиблок, загальний код групи, загальний код екземпляра.

Загальний код мультиблоку вставляється в код скетчу один раз при використанні в проекті будь-якого екземпляра блоку, що входить до пакета блоків.




Загальний код групи вставляється в скетч один раз при використанні в проекті будь-якого з екземплярів блоків, що входять до цієї групи.




Загальний код блоку вставляється в скетч один раз при використанні екземплярів цього блоку у проекті.




Код кожного екземпляра вставляється в скетч для кожного екземпляра блоку, що застосовується у проекті




Кожен із цих видів коду поділяється на секції, відповідно до місця вставки в скетч.

Це секції "Declare", "Setup", "Loop", "Functions". Вони відповідають секціям у скетчі Arduino IDE.



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




Код із Початок секції вставляється у відповідну секцію скетчу до коду, який вставляється компілятором FLProg для стандартних блоків.

Код із Кінці секції вставляється у відповідну секцію скетчу після коду, який вставляється компілятором FLProg для стандартних блоків.

Код секції “Functions” завжди вставляється в кінець скетчу.

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




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




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

Для створення умов застосовують як значення параметрів, так і деякі системні значення проекту. Як і параметри, умови розбиваються на загальні умови та умови кожного екземпляра.

Загальні умови мультиблоку можуть використовувати лише загальні параметри мультиблоку та системні значення проекту. Ці умови можуть використовуватися для керування в будь-якому інстансі та для будь-якого елемента коду.




Загальні умови групи можуть використовувати системні значення проекту, загальні параметри мультиблоку, загальні параметри груп, до яких входить дана група, загальні параметри цієї групи. Ці умови доступні для управління у всіх інстансах, що входять до цієї групи, та елементами загального коду цієї групи, та груп, які входять до цієї групи.




Загальні умови екземпляра можуть використовувати системні значення, значення загальних параметрів блоку, значення загальних параметрів всіх груп в які цей інстанс входить, а також значення загальних параметрів мультиблоку. Ці умови можуть бути застосовані для управління в даному блоці.




Умови кожного екземпляра можуть використовувати системні значення, значення параметрів даного примірника даного блоку, значення загальних параметрів даного блоку, значення загальних параметрів всіх груп, у які цей блок входить, а також значення загальних параметрів мультиблоку. Ці умови можуть застосовуватися для керування в цьому примірнику блоку.




Всі бібліотеки, що використовуються інстансами, завантажуються в мультиблок.




А в кожному конкретному блоці вказується, яку бібліотеку блок використовує. При компіляції проекту вивантажуються ті бібліотеки, які використовуються екземплярами блоків застосованими у проекті.