Параметр "Массив"
Параметр «Массив» служит для использования в блоке массива существующего в проекте.
При настройке параметра можно задать фильтр по размеру параметра.
Это ограничит выбор массивов только массивами с заданным размером.
Так же можно задать фильтр по типу массива.
Так же можно задать фильтр по типу массива.
В появившейся таблице, можно выбрать какие типы массивов будут доступны к выбору или созданию.
С помощью кнопки «Выбрать всё» (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);
}
}
}
}