state-handler: #6 add basic states
Add the states: - init - manual - auto
This commit is contained in:
parent
69d767a73e
commit
3dfc3d6d2a
5
.vscode/settings.json
vendored
Normal file
5
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"C_Cpp.autocompleteAddParentheses": true,
|
||||||
|
"files.autoSave": "onFocusChange",
|
||||||
|
"C_Cpp.codeAnalysis.clangTidy.enabled": true
|
||||||
|
}
|
||||||
@ -99,6 +99,31 @@ private:
|
|||||||
bool current_mode;
|
bool current_mode;
|
||||||
Counter set[2] = { { 0, 100 }, { 0, 120 } };
|
Counter set[2] = { { 0, 100 }, { 0, 120 } };
|
||||||
LiquidCrystal *_lcd;
|
LiquidCrystal *_lcd;
|
||||||
|
|
||||||
|
/** Initialization state
|
||||||
|
*
|
||||||
|
* @param event event of the state
|
||||||
|
*/
|
||||||
|
void stateInit (const Event &event);
|
||||||
|
|
||||||
|
/** Manual state
|
||||||
|
*
|
||||||
|
* - set current speed
|
||||||
|
* - print current pressure
|
||||||
|
*
|
||||||
|
* @param event event of the state
|
||||||
|
*/
|
||||||
|
void stateManual (const Event &event);
|
||||||
|
|
||||||
|
/** Automated state
|
||||||
|
*
|
||||||
|
* - print current pressure
|
||||||
|
* - print set pressure
|
||||||
|
* - inc/dec fan speed
|
||||||
|
*
|
||||||
|
* @param event
|
||||||
|
*/
|
||||||
|
void stateAuto (const Event &event);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* STATE_HANDLER_H_ */
|
#endif /* STATE_HANDLER_H_ */
|
||||||
|
|||||||
@ -62,13 +62,50 @@ StateHandler::SetState (state_pointer newstate)
|
|||||||
(this->*current) (Event (Event::eEnter));
|
(this->*current) (Event (Event::eEnter));
|
||||||
}
|
}
|
||||||
|
|
||||||
void StateHandler::HandleState(const Event &event){
|
void
|
||||||
(this->*current)(event);
|
stateInit (const Event &event)
|
||||||
|
{
|
||||||
|
switch (event.type)
|
||||||
|
{
|
||||||
|
case Event::eEnter:
|
||||||
|
break;
|
||||||
|
case Event::eExit:
|
||||||
|
break;
|
||||||
|
case Event::eKey:
|
||||||
|
break;
|
||||||
|
case Event::eTick:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StateHandler::SetState(state_pointer newstate){
|
void
|
||||||
(this->*current)(Event(Event::eExit));
|
stateManual (const Event &event)
|
||||||
current = newstate;
|
{
|
||||||
(this->*current)(Event(Event::eEnter));
|
switch (event.type)
|
||||||
|
{
|
||||||
|
case Event::eEnter:
|
||||||
|
break;
|
||||||
|
case Event::eExit:
|
||||||
|
break;
|
||||||
|
case Event::eKey:
|
||||||
|
break;
|
||||||
|
case Event::eTick:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
stateAuto (const Event &event)
|
||||||
|
{
|
||||||
|
switch (event.type)
|
||||||
|
{
|
||||||
|
case Event::eEnter:
|
||||||
|
break;
|
||||||
|
case Event::eExit:
|
||||||
|
break;
|
||||||
|
case Event::eKey:
|
||||||
|
break;
|
||||||
|
case Event::eTick:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user