M5UnitUnified 0.3.0 git rev:6b3818b
Loading...
Searching...
No Matches
M5UnitUnified.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
3 *
4 * SPDX-License-Identifier: MIT
5 */
16#ifndef M5_UNIT_UNIFIED_HPP
17#define M5_UNIT_UNIFIED_HPP
18
19#include "M5UnitComponent.hpp"
20#include <M5HAL.hpp>
21#if defined(M5_UNIT_UNIFIED_USING_RMT_V2)
22#else
23#include <driver/rmt.h>
24#endif
25#include <vector>
26#include <string>
27
28class TwoWire;
29class HardwareSerial;
30class SPIClass;
31struct SPISettings;
32
37namespace m5 {
42namespace unit {
43class Component;
44
49class UnitUnified {
50public:
51 using container_type = std::vector<Component*>;
52
56 UnitUnified() = default;
57 UnitUnified(const UnitUnified&) = delete;
58 UnitUnified(UnitUnified&&) noexcept = default;
60
64 UnitUnified& operator=(const UnitUnified&) = delete;
65
66 UnitUnified& operator=(UnitUnified&&) noexcept = default;
68
71
77 bool add(Component& u, TwoWire& wire);
85 bool add(Component& u, const int8_t rx_pin, const int8_t tx_pin);
92 bool add(Component& u, HardwareSerial& serial);
99 bool add(Component& u, SPIClass& spi, const SPISettings& settings);
106 bool add(Component& u, m5::hal::bus::Bus* bus);
108
110 bool begin();
112 void update(const bool force = false);
113
115 std::string debugInfo() const;
116
117protected:
118 bool add_children(Component& u);
119 std::string make_unit_info(const Component* u, const uint8_t indent = 0) const;
120
121protected:
122 container_type _units{};
123
124private:
125 static uint32_t _registerCount;
126};
127
128} // namespace unit
129} // namespace m5
130
131#endif
Main header of M5UnitComponent.
std::string debugInfo() const
Output information for debug.
Definition M5UnitUnified.cpp:165
bool begin()
Begin of all units under management.
Definition M5UnitUnified.cpp:143
void update(const bool force=false)
Update of all units under management.
Definition M5UnitUnified.cpp:155
bool add(Component &u, TwoWire &wire)
Adding unit to be managed (I2C)
Definition M5UnitUnified.cpp:41
Top level namespace of M5stack.
Definition test_helper.hpp:18
Unit-related namespace.