discoLight
Loading...
Searching...
No Matches
WiringPiGPIO.h
1
32#ifndef WiringPiGPIO_H_
33#define WiringPiGPIO_H_
34
35#include "GPIO.h"
36
37#include <mutex> // std::mutex, std::unique_lock
38#include <condition_variable> // std::condition_variable
39
40#define NUMBER_OF_GPIO_PINS (28)
41
42namespace SWE4211RPi {
43
44typedef int (*CallbackType)(int);
45
50class WiringPiGPIO : public GPIO{
51public:
59 WiringPiGPIO(int number, DIRECTION dir, VALUE val = GPIO_LOW);
60
65 virtual ~WiringPiGPIO(); // The destructor will return the pin to being an input.
66
72 static void freeGPIOInstance(WiringPiGPIO& instance);
73
74protected:
78 int number;
79
80 int currentEdgeType = GPIO_NONE;
81
82private:
83
84
90 static int initialized;
91
92public:
93 // General Input and Output Settings
98 virtual void setValue(GPIO::VALUE);
99
104 virtual GPIO::VALUE getValue();
105
106// Edge and Interrupt Methods
107
115 virtual void enableEdgeInterrupt(EDGE edgeType);
116
120 virtual void disableEdgeInterrupt();
121
126 virtual void handleInterruptDrivenGPIOPin();
127
128};
129
130} /* namespace SWE4211RPi */
131
132#endif /* GPIO_H_ */
GPIO GPIO wrapper classes for usage with C++ and wiringPi.
Definition GPIO.h:49
DIRECTION
Definition GPIO.h:54
VALUE
Definition GPIO.h:61
EDGE
Definition GPIO.h:68
Definition WiringPiGPIO.h:50
virtual void handleInterruptDrivenGPIOPin()
Definition WiringPiGPIO.cpp:310
static int initialized
Definition WiringPiGPIO.h:90
virtual ~WiringPiGPIO()
Definition WiringPiGPIO.cpp:130
virtual void disableEdgeInterrupt()
Definition WiringPiGPIO.cpp:171
static void freeGPIOInstance(WiringPiGPIO &instance)
Definition WiringPiGPIO.cpp:67
virtual GPIO::VALUE getValue()
Definition WiringPiGPIO.cpp:156
virtual void enableEdgeInterrupt(EDGE edgeType)
Definition WiringPiGPIO.cpp:188
int number
Definition WiringPiGPIO.h:78
virtual void setValue(GPIO::VALUE)
Definition WiringPiGPIO.cpp:142