M5Unit-KEYBOARD 0.1.0 git rev:b58d024
Loading...
Searching...
No Matches
unit_CardKB2.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD
3 *
4 * SPDX-License-Identifier: MIT
5 */
10#ifndef M5_UNIT_KEYBOARD_UNIT_CARD_KB2_HPP
11#define M5_UNIT_KEYBOARD_UNIT_CARD_KB2_HPP
12
13#include "unit_CardKB2_defs.hpp"
14
15namespace m5 {
16namespace unit {
38class UnitCardKB2 : public UnitKeyboard {
39 M5_UNIT_COMPONENT_HPP_BUILDER(UnitCardKB2, 0x5F);
40
41public:
46 struct config_t {
48 bool start_periodic{true};
50 uint32_t interval{10};
51 };
52
57 explicit UnitCardKB2(const uint8_t addr = DEFAULT_ADDRESS) : UnitKeyboard(addr)
58 {
59 }
61 virtual bool begin() override;
63 virtual void update(const bool force = false) override;
64
67
68 inline config_t config() const
69 {
70 return _cfg;
71 }
76 inline void config(const config_t& cfg)
77 {
78 _cfg = cfg;
79 }
81
88 inline virtual char getchar() const override
89 {
90 return updated() ? _pressed_key : 0;
91 }
95 inline uint8_t available() const
96 {
97 return (updated() && _pressed_key) ? 1 : 0;
98 }
101 inline void discard()
102 {
103 _pressed_key = 0;
104 }
105
108
113 inline uint8_t firmwareVersion() const
114 {
115 return _firmware_version;
116 }
122 bool readFirmwareVersion(uint8_t& ver);
124
125protected:
126 config_t _cfg{};
127 uint8_t _pressed_key{};
128 uint8_t _firmware_version{};
129};
130
131} // namespace unit
132} // namespace m5
133#endif
uint8_t available() const
Number of available characters (0 or 1)
Definition unit_CardKB2.hpp:95
bool readFirmwareVersion(uint8_t &ver)
Read the firmware version.
Definition unit_CardKB2.cpp:76
UnitCardKB2(const uint8_t addr=DEFAULT_ADDRESS)
Constructor.
Definition unit_CardKB2.hpp:57
virtual void update(const bool force=false) override
Definition unit_CardKB2.cpp:48
virtual bool begin() override
Definition unit_CardKB2.cpp:23
void discard()
Discard current character.
Definition unit_CardKB2.hpp:101
config_t config() const
Gets the configuration.
Definition unit_CardKB2.hpp:68
uint8_t firmwareVersion() const
Gets the firmware version.
Definition unit_CardKB2.hpp:113
void config(const config_t &cfg)
Set the configuration.
Definition unit_CardKB2.hpp:76
virtual char getchar() const override
Gets the character if input.
Definition unit_CardKB2.hpp:88
Base class of the Keyboard Unit.
Top level namespace of M5Stack.
Unit-related namespace.
Settings for begin.
Definition unit_CardKB2.hpp:46
uint32_t interval
Periodic interval (ms)
Definition unit_CardKB2.hpp:50
bool start_periodic
Start periodic measurement on begin?
Definition unit_CardKB2.hpp:48
Shared constants and types for CardKB2 I2C and UART classes.