Класс LiquidMenu из Arduino библиотеки LiquidMenu для создания меню на LCD дисплее

Добавлено 17 апреля 2018 в 13:04

Данный класс представляет собой коллекцию экранов, формирующих меню.

#include <LiquidMenu.h>
Библиотека LiquidMenu

Меню состоит из объектов LiquidScreen. Он содержит указатели на них и вызывает их функции в зависимости от того, какой из них активен. Данный класс используется для управления. Также можно использовать несколько меню, в этом случае объекты данного класса попадают в объект LiquidSystem, который контролирует их, используя те же публичные методы.

Содержание

Дружественные классы

class LiquidSystem

Конструкторы

LiquidMenu()

Основной конструктор. Это главный конструктор, который вызывается каждый раз.

Синтаксис

LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal,
                       uint8_t startingScreen = 1
                      )

Параметры

  • &liquidCrystal – указатель на объект класса DisplayClass;
  • startingScreen – номер экрана, который будет показан первым.
LiquidMenu()

Конструктор с одним объектом LiquidScreen.

Синтаксис

LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal,
                       LiquidScreen & liquidScreen,
                       uint8_t startingScreen = 1 
                      )

Параметры

  • &liquidCrystal – указатель на объект класса DisplayClass;
  • &liquidScreen – указатель на объект LiquidScreen;
  • startingScreen – номер экрана, который будет показан первым.
LiquidMenu()

Конструктор с двумя объектами LiquidScreen.

Синтаксис

LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal,
                       LiquidScreen & liquidScreen1,
                       LiquidScreen & liquidScreen2,
                       uint8_t startingScreen = 1 
                      )

Параметры

  • &liquidCrystal – указатель на объект класса DisplayClass;
  • &liquidScreen1 – указатель на объект LiquidScreen;
  • &liquidScreen2 – указатель на объект LiquidScreen;
  • startingScreen – номер экрана, который будет показан первым.
LiquidMenu()

Конструктор с тремя объектами LiquidScreen.

Синтаксис

LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal,
                       LiquidScreen & liquidScreen1,
                       LiquidScreen & liquidScreen2,
                       LiquidScreen & liquidScreen3,
                       uint8_t startingScreen = 1 
                      )

Параметры

  • &liquidCrystal – указатель на объект класса DisplayClass;
  • &liquidScreen1 – указатель на объект LiquidScreen;
  • &liquidScreen2 – указатель на объект LiquidScreen;
  • &liquidScreen3 – указатель на объект LiquidScreen;
  • startingScreen – номер экрана, который будет показан первым.
LiquidMenu()

Конструктор с четырьмя объектами LiquidScreen.

Синтаксис

LiquidMenu::LiquidMenu(DisplayClass & liquidCrystal,
                       LiquidScreen & liquidScreen1,
                       LiquidScreen & liquidScreen2,
                       LiquidScreen & liquidScreen3,
                       LiquidScreen & liquidScreen4,
                       uint8_t startingScreen = 1 
                      )

Параметры

  • &liquidCrystal – указатель на объект класса DisplayClass;
  • &liquidScreen1 – указатель на объект LiquidScreen;
  • &liquidScreen2 – указатель на объект LiquidScreen;
  • &liquidScreen3 – указатель на объект LiquidScreen;
  • &liquidScreen4 – указатель на объект LiquidScreen;
  • startingScreen – номер экрана, который будет показан первым.

Публичные методы

add_screen()

Добавляет объект LiquidScreen в меню.

Синтаксис

bool LiquidMenu::add_screen(LiquidScreen & liquidScreen)

Параметры

&liquidScreen – указатель на объект LiquidScreen.

Возвращает

true в случае успеха и false, если максимальное количество экранов уже было достигнуто.

Примечание

Максимальное количество экранов на меню указывается в LiquidMenu_config.h как MAX_SCREENS. По умолчанию равно 16.

call_function()

Вызывает прикрепленную функцию, указанную номером.

Вызывает функцию, указанную аргументом number для текущего экрана и для выделенной строки.

Синтаксис

bool LiquidMenu::call_function(uint8_t number) const

Параметры

  • number – номер функции в массиве.

Возвращает

true, если функция с указанным номером существует.

Примечание

Нумерация функций начинается с 1.

change_screen()

Переключает на указанный экран.

Синтаксис

bool LiquidMenu::change_screen(LiquidScreen & p_liquidScreen)
bool LiquidMenu::change_screen(uint8_t number)

Параметры

  • &p_liquidScreen – указатель на объект LiquidScreen;
  • number – номер экрана.

Возвращает

true в случае успеха и false, если экран не найден, или номер экрана неправильный.

init()

Инициализирует объект меню.

Вызовите данный метод, чтобы полностью инициализировать объект меню.

Синтаксис

void LiquidMenu::init() const

Примечание

Необходим при использовании I2C библиотеки дисплея.

next_screen()

Переключает на следующий экран.

Синтаксис

void LiquidMenu::next_screen()
operator++()

Переключает на следующий экран.

Синтаксис

void LiquidMenu::operator++()

Примечание

Оператор префиксного инкремента перезагружен.

operator++()

Переключает на следующий экран.

Синтаксис

void LiquidMenu::operator++(int)

Примечание

Оператор постфиксного инкремента перезагружен.

operator--()

Переключает на предыдущий экран.

Синтаксис

void LiquidMenu::operator--()

Примечание

Оператор префиксного декремента перезагружен.

operator--()

Переключает на предыдущий экран.

Синтаксис

void LiquidMenu::operator--(int)

Примечание

Оператор постфиксного декремента перезагружен.

operator=()

Переключает на указанный экран.

Синтаксис

bool LiquidMenu::operator=(LiquidScreen & p_liquidScreen)
bool LiquidMenu::operator=(uint8_t number)

Параметры

  • &p_liquidScreen – указатель на объект LiquidScreen;
  • number – номер экрана.

Возвращает

true в случае успеха и false, если экран не найден, или номер экрана неправильный.

previous_screen()

Переключает на предыдущий экран.

Синтаксис

void LiquidMenu::previous_screen()
set_focusPosition()

Устанавливает позицию фокуса для всего меню за раз.

Допустимые значения – LEFT и RIGHT. Позиция CUSTOM является не допустимой для данной функции, поскольку ей необходимо индивидуальное указание строки и столбца для каждой строки.

Синтаксис

bool LiquidMenu::set_focusPosition(Position position)

Параметры

  • positionLEFT или RIGHT.

Возвращает

true в случае успеха и false, если позиция указана неправильно.

Примечание

Position – это класс перечисления. При указании позиции используйте Position::(член класса).

set_focusSymbol()

Изменяет символ индикатора фокуса.

Символ изменяется для конкретной позиции.

Синтаксис

bool LiquidMenu::set_focusSymbol(Position position,
                                 uint8_t symbol[8]
                                 )

Параметры

  • position – позиция, для которой должен быть изменен символ;
  • symbol[] – символ.

Возвращает

true в случае успеха и false, если позиция указана неправильно.

Примечание

Position – это класс перечисления. При указании позиции используйте Position::(член класса).

softUpdate()

Отпечатывает текущий экран на дисплее (без очистки).

Вызывайте данный метод, когда изменение в какой-либо прикрепленной переменной или новые символы полностью покрывают старые символы.

Синтаксис

void LiquidMenu::softUpdate() const

Примечание

Данный метод не очищает дисплей.

switch_focus()

Переключает фокус.

Переключает фоку к следующей или предыдущей строке в соответствии с переданным параметром.

Синтаксис

void LiquidMenu::switch_focus(bool forward = true)

Параметры

forwardtrue для движения вперед, false для движения назад.

update()

Отпечатывает текущий экран на дисплее.

Вызывайте данный метод при изменении какой-либо прикрепленной переменной.

Синтаксис

void LiquidMenu::update() const

Теги

ArduinoLCD дисплейМенюПрограммирование

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.