From 01cf744164f372a73b3f298e3eda0b9da6b4827a Mon Sep 17 00:00:00 2001 From: Joshua Saxby <Joshua2.Saxby@live.uwe.ac.uk> Date: Sun, 9 Feb 2020 01:17:28 +0000 Subject: [PATCH] I think C++ event-handlers were working after all, except I neglected to call an async version of print... --- source/main.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/source/main.cpp b/source/main.cpp index b9bbbb4..0c72d35 100755 --- a/source/main.cpp +++ b/source/main.cpp @@ -19,17 +19,30 @@ MicroBit micro_bit; -void event_handler(MicroBitEvent) { - micro_bit.display.printAsync("A", 200); -} +class EventThingy { +public: + void event_handler_a(MicroBitEvent) { + micro_bit.display.image.setPixelValue(0, 2, 1); + } + + void event_handler_b(MicroBitEvent) { + micro_bit.display.image.setPixelValue(4, 2, 1); + } +}; + +EventThingy eventer; int main() { // Initialise the micro:bit runtime. micro_bit.init(); micro_bit.messageBus.listen( - MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, event_handler + MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, &eventer, &EventThingy::event_handler_a + ); + + micro_bit.messageBus.listen( + MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, &eventer, &EventThingy::event_handler_b ); while (true) { -- GitLab