XF upgrade

This commit is contained in:
2023-11-26 20:19:58 +01:00
parent dc2dc5c58b
commit 0d07b98cfd
11 changed files with 235 additions and 172 deletions

View File

@@ -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();