state-handler: #6 add state controller functions
- HandleState to set an event of the state - SetState to update current state to new
This commit is contained in:
parent
f9a1e411ae
commit
452a385756
@ -41,13 +41,27 @@ enum _buttons {
|
||||
BUTTON_CONTROL_TOG_ACTIVE
|
||||
};
|
||||
|
||||
class StateHandler;
|
||||
typedef void (StateHandler::*state_pointer)(const Event &);
|
||||
|
||||
|
||||
class StateHandler {
|
||||
public:
|
||||
StateHandler();
|
||||
virtual ~StateHandler();
|
||||
int getSetPresuure(); // Get currently set pressure 0-100%
|
||||
int getSetSpeed(); //Get currently set FanSpeed 0-100%
|
||||
|
||||
/** Handle the given event of the current state
|
||||
* @param event event to be handled in the current state
|
||||
*/
|
||||
void HandleState(const Event &event);
|
||||
private:
|
||||
state_pointer current;
|
||||
/** Set a new curremt state
|
||||
* @param newstate new state to be set to current
|
||||
*/
|
||||
void SetState(state_pointer newstate);
|
||||
bool mode;
|
||||
Counter * bar_pressure;
|
||||
Counter * bar_speed;
|
||||
|
||||
@ -25,3 +25,14 @@ int StateHandler::getSetSpeed(){
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
void StateHandler::HandleState(const Event &event){
|
||||
(this->*current)(event);
|
||||
}
|
||||
|
||||
void StateHandler::SetState(state_pointer newstate){
|
||||
(this->*current)(Event(Event::eExit));
|
||||
current = newstate;
|
||||
(this->*current)(Event(Event::eEnter));
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user