Zephyr C++ Toolkit
Loading...
Searching...
No Matches
IGpio.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4
5namespace zct {
6
7class IGpio {
8public:
9
10 enum class Direction {
11 Input,
12 Output
13 };
14
20 enum class LogicMode {
23 };
24
25 enum class PullMode {
26 None,
27 PullUp,
29 };
30
46
55
59 virtual ~IGpio() = default;
60
68 virtual void set(bool value);
69
77 virtual bool get() const;
78
86 virtual void setPhysical(bool value) = 0;
87
95 virtual bool getPhysical() const = 0;
96
102 virtual void setDirection(Direction direction);
103
109 virtual void setLogicMode(LogicMode logicMode);
110
117 virtual void configureInterrupt(InterruptMode interruptMode, std::function<void()> callback) = 0;
118
124 virtual void setPullMode(PullMode pullMode);
125
126protected:
127 const char* m_name;
133
139 virtual void configurePinBasedOnSettings() = 0;
140};
141
142} // namespace zct
Definition IGpio.hpp:7
virtual bool getPhysical() const =0
virtual void setDirection(Direction direction)
Definition IGpio.cpp:42
Direction m_direction
Definition IGpio.hpp:128
LogicMode
Definition IGpio.hpp:20
virtual void setPullMode(PullMode pullMode)
Definition IGpio.cpp:52
const char * m_name
Definition IGpio.hpp:127
virtual void set(bool value)
Definition IGpio.cpp:19
virtual void configureInterrupt(InterruptMode interruptMode, std::function< void()> callback)=0
virtual bool get() const
Definition IGpio.cpp:31
LogicMode m_logicMode
Definition IGpio.hpp:129
virtual void setPhysical(bool value)=0
InterruptMode m_interruptMode
Definition IGpio.hpp:131
virtual void configurePinBasedOnSettings()=0
PullMode m_pullMode
Definition IGpio.hpp:130
std::function< void()> m_interruptUserCallback
Definition IGpio.hpp:132
InterruptMode
Definition IGpio.hpp:34
virtual void setLogicMode(LogicMode logicMode)
Definition IGpio.cpp:47
PullMode
Definition IGpio.hpp:25
virtual ~IGpio()=default
Destroy the GPIO.
Direction
Definition IGpio.hpp:10
Definition Mutex.hpp:6