Параметр "Масив"
Параметр Масив служить для використання в блоці масиву існуючого в проекті.
При налаштуванні параметра можна встановити фільтр за розміром параметра.
Це обмежить вибір масивів лише масивами із заданим розміром.
Також можна задати фільтр типу масиву.
Також можна задати фільтр типу масиву.
У таблиці, можна вибрати які типи масивів будуть доступні до вибору або створення.
За допомогою кнопки «Вибрати все» (1) будуть вибрані всі типи за допомогою кнопки «Зняти все» (2), вибір знімається з усіх рядків.
У разі настроювання блоку в проекті цей параметр надає стандартний інтерфейс вибору або створення масиву.
За допомогою кнопки «Вибрати все» (1) будуть вибрані всі типи за допомогою кнопки «Зняти все» (2), вибір знімається з усіх рядків.
У разі настроювання блоку в проекті цей параметр надає стандартний інтерфейс вибору або створення масиву.
При натисканні кнопки «Вибрати» відкривається стандартне вікно вибору масиву з масивів, що існують у проекті.
При натисканні кнопки «Створити» відкривається стандартне вікно створення масиву.
Для параметра «Масив» формується три теги, що складається з імені масиву і вказівки значення, що передається.
Для використання в коді доступні всі три теги, а для використання за умов доступні теги типу масиву та розміру масиву.
Приклад використання параметра "Масив".
Абстрактний блок виведення групи точок на екрані. Цей блок може приймати масив типів Byte, Integer, і Unsugned Long Integer.
Блок виводить на екран прямокутник з точок. Кожна лінія закодована бітами числа масиву. Виходячи з цього, ширина прямокутника залежатиме від типу масиву.
А висота кількості елементів масиву.
Для початку створюємо параметр "Масив з точками"
Для початку створюємо параметр "Масив з точками"
Створюємо три умови по одному для кожного типу масиву.
У розділі Loop, коду кожного екземпляра, на ділянці місця вставки блоку, створимо три елементи коду з умовою вставки залежно від умови.
У цих елементах пропишемо завдання ширини лінії, залежно від типу масиву.
Слідом за ними створимо елемент коду основного промальовування.
Розберемо що тут написано.
if ( <Дозвіл малювання>) {
Це команда на дозвіл малювання масиву, що отримується з входу «Дозвіл зображення».
for ( int i = 0; i<= <Масив з точками.S> ; i++)
Пробігаємося в циклі по всіх елементах масиву, отриманого з параметра, починаючи з 0-го елемента до кінцевого елемента, заданого тегом. <Масив з точками.S> який повертає розмір вибраного масиву.
<Масив з точками.T> Line_ = <Масив з точками.N> [i];
Створюється тимчасова змінна з відповідним типом типу масиву. Тег <Масив з точками.T> при компіляції поверне значення типу масиву у стандарті З. Наприклад, типу Integer це буде int . У цю змінну записується значення чергового елемента масиву.
for (int i1=0; i1<= ; i1++ )
{
byte newX_ = + i1;
byte newY_ = + i1;
if ( bitRead(Line_ , i1)) {myOLED.setPixel(newX_ , newY_ );}
}
Тут ми пробігаємо по бітах елемента масиву і залежно від значення біта засвічуємо чи ні крапку. В результаті компіляції цього блоку з вибраним масивом типу Intrger розміром 10 елементів у скетчі отримуємо наступний код.
_tempVariable_byte = 15;
if((0))
{
for (int i = 0; i<=10; i++)
{
int Line_175838602 = _FLPArray155774681[i];
for (int i1=0; i1<= _tempVariable_byte; i1++)
{
byte newX_175838602 = 2 + i1;
byte newY_175838602 = 0 + i1;
if (bitRead(Line_175838602, i1))
{
myOLED.setPixel(newX_175838602, newY_175838602);
}
}
}
}
if ( <Дозвіл малювання>) {
Це команда на дозвіл малювання масиву, що отримується з входу «Дозвіл зображення».
for ( int i = 0; i<= <Масив з точками.S> ; i++)
Пробігаємося в циклі по всіх елементах масиву, отриманого з параметра, починаючи з 0-го елемента до кінцевого елемента, заданого тегом. <Масив з точками.S> який повертає розмір вибраного масиву.
<Масив з точками.T> Line_
Створюється тимчасова змінна з відповідним типом типу масиву. Тег <Масив з точками.T> при компіляції поверне значення типу масиву у стандарті З. Наприклад, типу Integer це буде int . У цю змінну записується значення чергового елемента масиву.
for (int i1=0; i1<=
{
byte newX_
byte newY_
if ( bitRead(Line_
}
Тут ми пробігаємо по бітах елемента масиву і залежно від значення біта засвічуємо чи ні крапку. В результаті компіляції цього блоку з вибраним масивом типу Intrger розміром 10 елементів у скетчі отримуємо наступний код.
_tempVariable_byte = 15;
if((0))
{
for (int i = 0; i<=10; i++)
{
int Line_175838602 = _FLPArray155774681[i];
for (int i1=0; i1<= _tempVariable_byte; i1++)
{
byte newX_175838602 = 2 + i1;
byte newY_175838602 = 0 + i1;
if (bitRead(Line_175838602, i1))
{
myOLED.setPixel(newX_175838602, newY_175838602);
}
}
}
}