XF upgrade
This commit is contained in:
@@ -10,10 +10,22 @@
|
||||
#include "board/ButtonsController.h"
|
||||
|
||||
|
||||
ButtonEventsHandler::ButtonEventsHandler() {
|
||||
ButtonEventsHandler::ButtonEventsHandler()
|
||||
: stRun(this) {
|
||||
for(uint8_t i = 0; i< MAX_OBSERVER; i++) {
|
||||
observer_[i] = nullptr;
|
||||
}
|
||||
|
||||
stInitial.setNextState(&stRun);
|
||||
stRun.registerOnEntry((XFState::callback)&ButtonEventsHandler::startButtonSM);
|
||||
|
||||
}
|
||||
|
||||
void ButtonEventsHandler::startButtonSM(const XFEvent* ev) {
|
||||
buttonStateSm_[0].startBehavior();
|
||||
buttonStateSm_[1].startBehavior();
|
||||
buttonStateSm_[2].startBehavior();
|
||||
buttonStateSm_[3].startBehavior();
|
||||
}
|
||||
|
||||
ButtonEventsHandler* ButtonEventsHandler::getInstance() {
|
||||
@@ -21,54 +33,6 @@ ButtonEventsHandler* ButtonEventsHandler::getInstance() {
|
||||
return &buttonEventsHandler_;
|
||||
}
|
||||
|
||||
XFEventStatus ButtonEventsHandler::processEvent() {
|
||||
eEventStatus eventStatus = XFEventStatus::Unknown;
|
||||
|
||||
const XFEvent* ev = getCurrentEvent();
|
||||
XFEvent::XFEventType evType = ev->getEventType();
|
||||
int evid = ev->getId();
|
||||
|
||||
oldState_ = currentState_;
|
||||
changeState_ = false;
|
||||
|
||||
switch (currentState_) {
|
||||
case state::initial:
|
||||
if(evType == XFEvent::Initial) {
|
||||
currentState_ = state::run;
|
||||
changeState_ = true;
|
||||
eventStatus = XFEventStatus::Consumed;
|
||||
}
|
||||
break;
|
||||
|
||||
case state::run:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if(changeState_) {
|
||||
switch (oldState_) { // onExit
|
||||
case state::initial:
|
||||
break;
|
||||
|
||||
case state::run:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (currentState_) { // onEntry
|
||||
case state::initial:
|
||||
break;
|
||||
|
||||
case state::run:
|
||||
buttonStateSm_[0].startBehavior();
|
||||
buttonStateSm_[1].startBehavior();
|
||||
buttonStateSm_[2].startBehavior();
|
||||
buttonStateSm_[3].startBehavior();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return eventStatus;
|
||||
}
|
||||
|
||||
void ButtonEventsHandler::onButtonChangeState(uint16_t buttonIndex, bool pressed) {
|
||||
if(pressed) {
|
||||
buttonStateSm_[buttonIndex].genButtonPressed();
|
||||
|
||||
Reference in New Issue
Block a user