From 0347555d5b2314e1be58261ef29fa13a76c039e6 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 30 Jun 2023 17:05:11 +1000 Subject: Start on converting gpio expander interupts to fsm events --- src/events/include/event_queue.hpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/events/include/event_queue.hpp') diff --git a/src/events/include/event_queue.hpp b/src/events/include/event_queue.hpp index eb8dd0a0..01f37896 100644 --- a/src/events/include/event_queue.hpp +++ b/src/events/include/event_queue.hpp @@ -13,6 +13,7 @@ #include "freertos/FreeRTOS.h" #include "freertos/portmacro.h" #include "freertos/queue.h" +#include "system_fsm.hpp" #include "tinyfsm.hpp" #include "ui_fsm.hpp" @@ -33,6 +34,16 @@ class EventQueue { return instance; } + template + auto DispatchFromISR(const Event& ev) -> bool { + WorkItem* item = new WorkItem([=]() { + tinyfsm::FsmList::template dispatch(ev); + }); + BaseType_t ret; + xQueueSendFromISR(system_handle_, &item, &ret); + return ret; + } + template auto Dispatch(const Event& ev) -> void { WorkItem* item = new WorkItem( -- cgit v1.2.3