☰ Зміст
Параметр "Масив"




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




При налаштуванні параметра можна встановити фільтр за розміром параметра.




Це обмежить вибір масивів лише масивами із заданим розміром.

Також можна задати фільтр типу масиву.




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

За допомогою кнопки «Вибрати все» (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);
    }
   }
  }
 }