discoLight
Loading...
Searching...
No Matches
PulsedGPIOPin.h
1/*
2 * PulsedGPIOPin.h
3 *
4 * Created on: Jun 7, 2023
5 * Author: se3910
6 */
7
8#ifndef PULSEDGPIOPIN_H_
9#define PULSEDGPIOPIN_H_
10
11#include <string>
12#include "PeriodicTask.h"
13#include "GPIO.h"
14
15namespace SWE4211RPi {
16
18
19public:
24 ONE_SHOT, CONTINUOUS
25 };
26
36 PulsedGPIOPin(int number, std::string threadName, uint32_t period, PULSE_TYPE type = CONTINUOUS, GPIO::DIRECTION dir= GPIO::GPIO_OUT, GPIO::VALUE val = GPIO::GPIO_LOW);
37
38 virtual ~PulsedGPIOPin();
39
44 virtual void setValue(GPIO::VALUE);
45
50 virtual void setpulseDuration(int duration);
51
56 virtual void taskMethod();
61
62private:
63 GPIO & gpioPinInstance;
64
72 SWE4211RPi::GPIO::VALUE initialValue = SWE4211RPi::GPIO::GPIO_LOW;
73
77 PulsedGPIOPin::PULSE_TYPE type = PULSE_TYPE::CONTINUOUS;
78
79
80 bool firePulse = false;
81
87 void delayedToggleAndSleep(long specificDelay, SWE4211RPi::GPIO::VALUE value);
88};
89}
90#endif /* PULSEDGPIOPIN_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
Definition PeriodicTask.h:37
Definition PulsedGPIOPin.h:17
PulsedGPIOPin::PULSE_TYPE type
Definition PulsedGPIOPin.h:77
void delayedToggleAndSleep(long specificDelay, SWE4211RPi::GPIO::VALUE value)
Definition PulsedGPIOPin.cpp:62
virtual void setpulseDuration(int duration)
Definition PulsedGPIOPin.cpp:26
PULSE_TYPE
Definition PulsedGPIOPin.h:23
SWE4211RPi::GPIO::VALUE initialValue
Definition PulsedGPIOPin.h:72
virtual void setValue(GPIO::VALUE)
Definition PulsedGPIOPin.cpp:31
void stopThreadExecution()
Definition PulsedGPIOPin.cpp:77
virtual void taskMethod()
Definition PulsedGPIOPin.cpp:36
int pulseDuration
Definition PulsedGPIOPin.h:68