setOpen() wird zwischengespeichert.

This commit is contained in:
Toberfra 2022-02-10 11:50:35 +01:00
parent ba1d3a122d
commit 34cb487948
2 changed files with 24 additions and 17 deletions

View File

@ -7,41 +7,31 @@ KlappenAblauf::~KlappenAblauf()
}
statusKlappen KlappenAblauf::setOpen(bool open)
void KlappenAblauf::setOpen(bool open)
{
openSpeicher = open;
if(open){
if(aktuellerState == WARTE_GESCHLOSSEN){
aktuellerState = START_AUF;
return OK;
}
}else{
if(aktuellerState == WARTE_OFFEN){
aktuellerState = START_ZU;
return OK;
}
}
return ERROR_BUSY;
}
statusKlappen KlappenAblauf::setOpen(bool open , int id)
void KlappenAblauf::setOpen(bool open , int id)
{
KlappenAblauf *zeiger;
zeiger = (KlappenAblauf *) searchIdElement(id);
if(zeiger)
return zeiger->setOpen(open);
return ERROR_ID;
}
void KlappenAblauf::memberSetup(){
AnalogDigital::memberSetup();
openSpeicher = false;
fsmInit();
}
void KlappenAblauf::memberLoop(){
AnalogDigital::memberLoop();
openSpeicherAbfrage();
fsmStep();
}
@ -52,6 +42,20 @@ void KlappenAblauf::fsmInit(){
}
void KlappenAblauf::openSpeicherAbfrage(){
if(openSpeicher){
if(aktuellerState == WARTE_GESCHLOSSEN){
aktuellerState = START_AUF;
}
}else{
if(aktuellerState == WARTE_OFFEN){
aktuellerState = START_ZU;
}
}
}
void KlappenAblauf::fsmStep(){

View File

@ -36,8 +36,8 @@ public:
/**
* @param open
*/
statusKlappen setOpen(bool open);
static statusKlappen setOpen(bool open , int id);
void setOpen(bool open);
static void setOpen(bool open , int id);
protected:
@ -53,6 +53,9 @@ protected:
private:
int16_t timer;
bool openSpeicher;
void openSpeicherAbfrage();
typedef enum fsmStatesEnum{
INIT,