Класс LiquidLine из Arduino библиотеки LiquidMenu для создания меню на LCD дисплее
Данный класс представляет собой отдельные строки, напечатанные на дисплее.
#include <LiquidMenu.h>
Это самый нижний класс в иерархии, он содержит указатели на переменные/константы, которые будут напечатаны, где расположена строка, где будет расположен индикатор фокуса и указатели на функции обратного вызова. Объекты этого класса передаются в объект LiquidScreen
, который управляет ими. Публичные методы данного класса предназначены только для конфигурации.
Содержание
Дружественные классы
LiquidScreen
Конструкторы
LiquidLine (uint8_t column, uint8_t row)
Основной конструктор. Это главный конструктор, который вызывается каждый раз.
Синтаксис
LiquidLine::LiquidLine(uint8_t column, uint8_t row )
Параметры
column
– столбец, с которого начинается строка;row
– строка, в которой печатается строка.
LiquidLine (uint8_t column, uint8_t row, A &variableA)
Конструктор с одной переменной/константой.
Синтаксис
template<typename A> LiquidLine::LiquidLine(uint8_t column, uint8_t row, A & variableA )
Параметры
column
– столбец, с которого начинается строка;row
– строка, в которой печатается строка;&variableA
– переменная/константа, которая будет напечатана.
LiquidLine (uint8_t column, uint8_t row, A &variableA, B &variableB)
Конструктор с двумя переменными/константами.
Синтаксис
template<typename A , typename B> LiquidLine::LiquidLine(uint8_t column, uint8_t row, A & variableA, B & variableB )
Параметры
column
– столбец, с которого начинается строка;row
– строка, в которой печатается строка;&variableA
– переменная/константа, которая будет напечатана;&variableB
– переменная/константа, которая будет напечатана.
LiquidLine (uint8_t column, uint8_t row, A &variableA, B &variableB, C &variableC)
Конструктор с тремя переменными/константами.
Синтаксис
template<typename A , typename B , typename C> LiquidLine::LiquidLine(uint8_t column, uint8_t row, A & variableA, B & variableB, C & varuableC )
Параметры
column
– столбец, с которого начинается строка;row
– строка, в которой печатается строка;&variableA
– переменная/константа, которая будет напечатана;&variableB
– переменная/константа, которая будет напечатана.&variableC
– переменная/константа, которая будет напечатана.
LiquidLine (uint8_t column, uint8_t row, A &variableA, B &variableB, C &variableC, D &variableD)
Конструктор с четырьмя переменными/константами.
Синтаксис
template<typename A , typename B , typename C , typename D> LiquidLine::LiquidLine(uint8_t column, uint8_t row, A & variableA, B & variableB, C & variableC, D & variableD )
Параметры
column
– столбец, с которого начинается строка;row
– строка, в которой печатается строка;&variableA
– переменная/константа, которая будет напечатана;&variableB
– переменная/константа, которая будет напечатана,&variableC
– переменная/константа, которая будет напечатана,&variableD
– переменная/константа, которая будет напечатана.
Публичные методы
add_variable()
Добавляет переменную в строку.
Синтаксис
template<typename T> bool LiquidLine::add_variable(T & variable)
Параметры
&variable
– ссылка на переменную.Возвращает
true
в случае успеха иfalse
, если максимальное количество переменных уже было достигнуто.Примечание
Максимальное количество переменных на строку указывается в LiquidMenu_config.h как
MAX_VARIABLES
. По умолчанию равно 5.attach_function()
Прикрепляет к строке функцию обратного вызова.
number
используется для идентификации. Функция обратного вызова позже может быть, когда строка выделена с помощьюLiquidMenu::call_function(uint8_t number) const
.Синтаксис
bool LiquidLine::attach_function(uint8_t number, void(*)(void) function )
Параметры
number
– номер функции, используемый для идентификации;*function
– указатель на функцию.
Возвращает
true
в случае успеха иfalse
, если максимальное количество функций уже было достигнуто.Примечание
Нумерация функций начинается с 1.
Максимальное количество функций на строку указывается в LiquidMenu_config.h как
MAX_FUNCTIONS
. По умолчанию равно 8.set_asGlyph()
Преобразует переменную
byte
в индекс глифа.Если с помощью DisplayClass::createChar(byte index, byte character[8]) был создан пользовательский символ (глиф), то при использовании данного метода он может быть отображен как обычная переменная.
Синтаксис
bool LiquidLine::set_asGlyph(uint8_t number)
Параметры
number
– номер переменной, которая будет преобразована в индекс.Возвращает
true
в случае успеха иfalse
, если тип переменной с данным номером неbyte
.set_asProgmem()
Преобразует переменную указателя
const char
в переменную указателяconst char PROGMEM
.Используйте данную функцию, чтобы сообщить объекту, что прикрепленная переменная указателя
const char
сохранена во флеш памяти, а не в RAM как обычная переменная.Синтаксис
bool LiquidLine::set_asProgmem(uint8_t number)
Параметры
number
– номер переменной, которая будет преобразована.Возвращает
true
в случае успеха иfalse
, если тип переменной с данным номером неconst char[]
.set_focusPosition()
Настраивает позицию индикатора фокуса для строку.
Допустимые значения –
LEFT
,RIGHT
иCUSTOM
. ПозицияCUSTOM
является абсолютной и поэтому нуждается в указании столбца и строки, в которых будет напечатан индикатор.Синтаксис
bool LiquidLine::set_focusPosition(Position position, uint8_t column = 0, uint8_t row = 0 )
Параметры
position
–LEFT
,RIGHT
илиCUSTOM
;column
– если используетсяCUSTOM
, данная переменная указывает столбец:row
– если используетсяCUSTOM
, данная переменная указывает строку.
Возвращает
true
в случае успеха иfalse
, если позиция указана неправильно.Примечание
Position
– это класс перечисления. При указании позиции используйтеPosition::(член класса)
.