M5Unit-KEYBOARD 0.0.1 git rev:a483db1
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
53 explicit UnitCardKB2(const uint8_t addr = DEFAULT_ADDRESS) : UnitKeyboard(addr)
54 {
55 }
57 virtual bool begin() override;
59 virtual void update(const bool force = false) override;
60
63
65 {
66 return _cfg;
67 }
69 inline void config(const config_t& cfg)
70 {
71 _cfg = cfg;
72 }
74
81 inline virtual char getchar() const override
82 {
83 return updated() ? _pressed_key : 0;
84 }
87 inline uint8_t available() const
88 {
89 return (updated() && _pressed_key) ? 1 : 0;
90 }
93 inline void discard()
94 {
95 _pressed_key = 0;
96 }
97
100
105 inline uint8_t firmwareVersion() const
106 {
107 return _firmware_version;
108 }
114 bool readFirmwareVersion(uint8_t& ver);
116
117protected:
118 config_t _cfg{};
119 uint8_t _pressed_key{};
120 uint8_t _firmware_version{};
121};
122
123} // namespace unit
124} // namespace m5
125#endif
Card-size 42 key QWERTY keyboard — I2C mode (SKU:U215)
uint8_t available() const
Number of available characters (0 or 1)
Definition unit_CardKB2.hpp:87
bool readFirmwareVersion(uint8_t &ver)
Read the firmware version.
Definition unit_CardKB2.cpp:72
virtual void update(const bool force=false) override
Definition unit_CardKB2.cpp:44
virtual bool begin() override
Definition unit_CardKB2.cpp:23
void discard()
Discard current character.
Definition unit_CardKB2.hpp:93
uint8_t firmwareVersion() const
Gets the firmware version.
Definition unit_CardKB2.hpp:105
void config(const config_t &cfg)
Set the configuration.
Definition unit_CardKB2.hpp:69
virtual char getchar() const override
Gets the character if input.
Definition unit_CardKB2.hpp:81
config_t config()
Gets the configuration.
Definition unit_CardKB2.hpp:64
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.