From 34cb4879489f7e508d4db3fd5d32a79ec29863b2 Mon Sep 17 00:00:00 2001 From: Toberfra Date: Thu, 10 Feb 2022 11:50:35 +0100 Subject: [PATCH] setOpen() wird zwischengespeichert. --- Arduino/motor/src/KlappenAblauf.cpp | 34 ++++++++++++++++------------- Arduino/motor/src/KlappenAblauf.h | 7 ++++-- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/Arduino/motor/src/KlappenAblauf.cpp b/Arduino/motor/src/KlappenAblauf.cpp index 899b384..0313f60 100644 --- a/Arduino/motor/src/KlappenAblauf.cpp +++ b/Arduino/motor/src/KlappenAblauf.cpp @@ -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(){ diff --git a/Arduino/motor/src/KlappenAblauf.h b/Arduino/motor/src/KlappenAblauf.h index 52f372c..0e2eabf 100644 --- a/Arduino/motor/src/KlappenAblauf.h +++ b/Arduino/motor/src/KlappenAblauf.h @@ -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,