Controller
: Кнопки
-
Controller lilka::controller
Екземпляр класу
Controller
, який можна використовувати для вимірювання стану кнопок. Вам не потрібно інстанціюватиController
вручну.
-
struct ButtonState
Містить стан кнопки, який був вимінярий в певний момент часу.
Public Members
-
bool pressed
true
, якщо кнопка була в натиснутому стані в момент викликуlilka::controller.getState()
.
-
bool justPressed
true
, якщо кнопка була вперше натиснута в момент викликуlilka::controller.getState()
(до цього була відпущена).
-
bool justReleased
true
, якщо кнопка була вперше відпущена в момент викликуlilka::controller.getState()
(до цього була натиснута).
-
uint64_t time
-
uint64_t nextRepeatTime
-
uint32_t repeatRate
-
uint32_t repeatDelay
-
bool pressed
-
struct State
Містить стани всіх кнопок, які були виміряні в певний момент часу.
Public Members
-
ButtonState up
-
ButtonState down
-
ButtonState left
-
ButtonState right
-
ButtonState select
-
ButtonState start
-
ButtonState any
Спеціальний стан, який містить стани «будь-якої» кнопки.
-
ButtonState up
-
class Controller
Клас для роботи з контролером.
Використовується для вимірювання стану кнопок.
Приклад використання:
#include <lilka.h> void setup() { lilka::begin(); } void loop() { while (1) { lilka::State state = lilka::controller.getState(); if (state.up.justPressed) { Serial.println("Ви щойно натиснули кнопку 'Вгору'"); } else if (state.up.justReleased) { Serial.println("Ви щойно відпустили кнопку 'Вгору'"); } } }
Public Functions
-
Controller()
-
void begin()
Почати вимірювання стану кнопок.
Попередження
Цей метод викликається автоматично при виклику
lilka::begin()
.
-
void resetState()
-
void setGlobalHandler(void (*handler)(Button, bool))
Встановити глобальний обробник подій, який буде викликатися при натисненні або відпусканні будь-якої кнопки.
-
void setHandler(Button button, void (*handler)(bool))
Встановити обробник подій для певної кнопки, який буде викликатися при натисненні або відпусканні цієї кнопки.
-
void clearHandlers()
Видалити всі обробники подій.
-
void setAutoRepeat(Button button, uint32_t rate, uint32_t delay)
Налаштувати автоматичне повторення натискання кнопки.
Після виклику цього методу кнопка буде автоматично натискатися з певною затримкою та частотою.
Щоб вимкнути автоматичне повторення натискання кнопки, викличте цей метод з параметрами
delay = 0
таrate = 0
.- Параметри:
button – Кнопка, для якої налаштовується автоматичне повторення натискання.
rate – Частота автоматичного повторення натискання (кількість натискань на секунду).
delay – Затримка перед початком автоматичного повторення натискання (в мілісекундах).
// Натискання кнопки "Вгору" буде повторюватись з частотою 5 натискань на секунду після початкової затримки 500 мс: lilka::controller.setAutoRepeat(lilka::Button::UP, 5, 500);
-
Controller()