Update FSFW #51
30
hal/src/fsfw_hal/linux/gpio/Gpio.h
Normal file
30
hal/src/fsfw_hal/linux/gpio/Gpio.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#ifndef FSFW_HAL_SRC_FSFW_HAL_LINUX_GPIO_GPIO_H_
|
||||||
|
#define FSFW_HAL_SRC_FSFW_HAL_LINUX_GPIO_GPIO_H_
|
||||||
|
|
||||||
|
#include "fsfw_hal/common/gpio/GpioIF.h"
|
||||||
|
#include "fsfw_hal/common/gpio/gpioDefinitions.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Additional abstraction layer for handling GPIOs.
|
||||||
|
*
|
||||||
|
* @author J. Meier
|
||||||
|
*/
|
||||||
|
class Gpio {
|
||||||
|
public:
|
||||||
|
Gpio(gpioId_t gpioId, GpioIF* gpioIF) : gpioId(gpioId), gpioIF(gpioIF) {
|
||||||
|
if (gpioIF == nullptr) {
|
||||||
|
sif::error << "Gpio::Gpio: Invalid GpioIF" << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ReturnValue_t pullHigh() {
|
||||||
|
return gpioIF->pullHigh(gpioId);
|
||||||
|
}
|
||||||
|
ReturnValue_t pullLow() {
|
||||||
|
return gpioIF->pullLow(gpioId);
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
gpioId_t gpioId = gpio::NO_GPIO;
|
||||||
|
GpioIF* gpioIF = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* FSFW_HAL_SRC_FSFW_HAL_LINUX_GPIO_GPIO_H_ */
|
@ -19,6 +19,19 @@ class SourceSequenceCounter {
|
|||||||
void reset(uint16_t toValue = 0) {
|
void reset(uint16_t toValue = 0) {
|
||||||
sequenceCount = toValue % (SpacePacketBase::LIMIT_SEQUENCE_COUNT);
|
sequenceCount = toValue % (SpacePacketBase::LIMIT_SEQUENCE_COUNT);
|
||||||
}
|
}
|
||||||
|
SourceSequenceCounter& operator++(int) {
|
||||||
|
this->increment();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
SourceSequenceCounter& operator--(int) {
|
||||||
|
this->decrement();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
SourceSequenceCounter& operator=(const uint16_t& newCount) {
|
||||||
|
sequenceCount = newCount;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
operator uint16_t() { return this->get(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ */
|
#endif /* FSFW_TMTCSERVICES_SOURCESEQUENCECOUNTER_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user