10#ifndef M5_UNIT_KEYBOARD_UNIT_CARD_KB2_UART_HPP
11#define M5_UNIT_KEYBOARD_UNIT_CARD_KB2_UART_HPP
14#include <m5_utility/container/circular_buffer.hpp>
40class UnitCardKB2UART :
public UnitKeyboardBitwise {
41 M5_UNIT_COMPONENT_HPP_BUILDER(UnitCardKB2UART, 0x5F);
44 using Packet = std::array<uint8_t, 5>;
59 _repeat_start_at.resize(cardkb2::NUMBER_OF_KEYS);
60 _hold_start_at.resize(cardkb2::NUMBER_OF_KEYS);
63 virtual bool begin()
override;
65 virtual void update(
const bool force =
false)
override;
84 return cardkb2::character_to_key_index(ch);
115 void update_uart(
const bool force);
116 uint8_t read_data(Packet& rbuf);
118 inline virtual uint8_t to_mode_bits(
const char ch)
const override
120 return cardkb2::character_to_mode_bits(ch);
127 bool _sym_was_pressed{
false};
128 bool _caps_shift_once{
false};
129 bool _caps_lock{
false};
130 bool _caps_hold_active{
false};
131 bool _caps_pressing{
false};
132 uint8_t _caps_click_count{0};
133 uint32_t _caps_pressed_at{0};
134 uint32_t _caps_last_release_at{0};
Card-size 42 key QWERTY keyboard — UART mode (SKU:U215)
virtual bool begin() override
Definition unit_CardKB2UART.cpp:110
virtual bool writeMode(const keyboard::Mode) override
Not supported on CardKB2UART.
Definition unit_CardKB2UART.hpp:108
config_t config()
Gets the configuration.
Definition unit_CardKB2UART.hpp:70
virtual void update(const bool force=false) override
Definition unit_CardKB2UART.cpp:345
virtual bool readMode(keyboard::Mode &) override
Not supported on CardKB2UART.
Definition unit_CardKB2UART.hpp:103
virtual keyboard::key_index_t toKeyIndex(const char ch) const override
Obtains the key index corresponding to the specified character.
Definition unit_CardKB2UART.hpp:82
void config(const config_t &cfg)
Set the configuration.
Definition unit_CardKB2UART.hpp:75
virtual bool readFirmwareVersion(uint8_t &ver) override
Read the firmware version.
Definition unit_CardKB2UART.cpp:136
Class supporting keyboard state acquisition by key press bits.
Top level namespace of M5stack.
Settings for begin.
Definition unit_CardKB2UART.hpp:50
uint32_t interval
Periodic interval (ms)
Definition unit_CardKB2UART.hpp:54
bool start_periodic
Start periodic measurement on begin?
Definition unit_CardKB2UART.hpp:52
Shared constants and types for CardKB2 I2C and UART classes.
uint8_t key_index_t
Key index (Not character)
Definition unit_Keyboard.hpp:24
Mode
Operation mode for M5Unit-KEYBOARD firmware.
Definition unit_Keyboard.hpp:50