48 lines
1.1 KiB
C++

#include "GPIO.h"
/*
Der Konstruktor initialisiert das GPIO-Pin und den Modus (Eingang oder Ausgang).
Je nachdem, ob GPIOinput true oder false ist, wird der Pin als Eingangs- oder Ausgangspin konfiguriert.
*/
IO::IO(byte pin, bool input) {
this->GPIOPin = pin;
this->GPIOinput = input;
if (this->GPIOinput == false){
pinMode(this->GPIOPin, OUTPUT);
} else {
pinMode(this->GPIOPin, INPUT);
}
}
/*
Diese Methode setzt den Pin auf HIGH und überprüft anschließend, ob der Zustand des Pins tatsächlich HIGH ist.
Sie gibt 100 zurück, wenn der Pin erfolgreich auf HIGH gesetzt wurde, andernfalls 200.
*/
byte IO::SetHigh() {
digitalWrite(this->GPIOPin, HIGH);
if (this->GetState() == HIGH){
return 100;
} else {
return 200;
}
}
/*
Diese Methode setzt den Pin auf LOW und überprüft den Zustand.
Sie gibt 101 zurück, wenn der Pin erfolgreich auf LOW gesetzt wurde, andernfalls 201.
*/
byte IO::SetLow() {
digitalWrite(this->GPIOPin, LOW);
if (this->GetState() == LOW){
return 101;
} else {
return 201;
}
}
byte IO::GetState() {
return digitalRead(this->GPIOPin);
}