10#ifndef M5_UNIT_KEYBOARD_UNIT_CARD_KB2_UART_HPP
11#define M5_UNIT_KEYBOARD_UNIT_CARD_KB2_UART_HPP
16#include <m5_utility/container/circular_buffer.hpp>
42class UnitCardKB2UART :
public UnitKeyboardBitwise {
47 using Packet = std::array<uint8_t, 5>;
68 virtual bool begin()
override;
70 virtual void update(
const bool force =
false)
override;
92 return cardkb2::character_to_key_index(ch);
126 void update_uart(
const bool force);
127 uint8_t read_data(Packet& rbuf);
129 inline virtual uint8_t to_mode_bits(
const char ch)
const override
131 return cardkb2::character_to_mode_bits(ch);
138 m5::unit::cardkb2::CardKB2ModifierState _mod{};
CardKB2 Sym/Caps/Fn modifier state machine (firmware-parity), event-driven and native-testable.
UnitCardKB2UART(const uint8_t addr=DEFAULT_ADDRESS)
Constructor.
Definition unit_CardKB2UART.hpp:64
virtual bool begin() override
Definition unit_CardKB2UART.cpp:107
virtual bool writeMode(const keyboard::Mode) override
Not supported on CardKB2UART.
Definition unit_CardKB2UART.hpp:119
config_t config() const
Gets the configuration.
Definition unit_CardKB2UART.hpp:75
virtual void update(const bool force=false) override
Definition unit_CardKB2UART.cpp:330
virtual bool readMode(keyboard::Mode &) override
Not supported on CardKB2UART.
Definition unit_CardKB2UART.hpp:111
virtual keyboard::key_index_t toKeyIndex(const char ch) const override
Obtains the key index corresponding to the specified character.
Definition unit_CardKB2UART.hpp:90
void config(const config_t &cfg)
Set the configuration.
Definition unit_CardKB2UART.hpp:83
virtual bool readFirmwareVersion(uint8_t &ver) override
Read the firmware version.
Definition unit_CardKB2UART.cpp:133
std::array< uint8_t, 5 > Packet
5-byte UART packet: {0xAA, 0x03, key_id, key_state, checksum}
Definition unit_CardKB2UART.hpp:47
Class supporting keyboard state acquisition by key press bits.
Top level namespace of M5Stack.
Settings for begin.
Definition unit_CardKB2UART.hpp:53
uint32_t interval
Periodic interval (ms)
Definition unit_CardKB2UART.hpp:57
bool start_periodic
Start periodic measurement on begin?
Definition unit_CardKB2UART.hpp:55
Shared constants and types for CardKB2 I2C and UART classes.
uint8_t key_index_t
Key index (Not character)
Definition unit_Keyboard.hpp:26
Mode
Operation mode for M5Unit-KEYBOARD firmware.
Definition unit_Keyboard.hpp:58