
#include "Bewegung.h"


Bewegung::Bewegung(int Pin): m_geschlossen(90), m_offen(0), m_aktuellePos(0), m_niedrigstTemp(20), m_hoechstTemp(38){
    servo1.attach(Pin);
    servo1.write(m_geschlossen);
    delay(100);
}

Bewegung::~Bewegung(){}

void Bewegung::Abfrage(float degree){
    if((degree < m_niedrigstTemp) && (m_aktuellePos == m_offen)){
        Zu();
        delay(100);
    } else if((degree > m_hoechstTemp) && (m_aktuellePos == m_geschlossen)){
        Auf();
        delay(100);
    }
}


void Bewegung::Auf(){
    for(int i = m_aktuellePos; i > m_geschlossen; i -= 2){
        servo1.write(i);
        delay(20);
    }
    servo1.write(m_offen);
    m_aktuellePos = m_offen;
}

void Bewegung::Zu(){
    for(int i = 0; i < m_offen; i += 2){
        servo1.write(i);
        delay(20);
    }
    servo1.write(m_geschlossen);
    m_aktuellePos = m_geschlossen;
}

int Bewegung::GetAktuellePos(){
   return m_aktuellePos; 
}
