forking app
Fork of microbit-animator-starter by
Diff: main.cpp
- Revision:
- 5:ed00381f279a
- Parent:
- 2:ceab125d609b
diff -r f4a8c2ec1517 -r ed00381f279a main.cpp --- a/main.cpp Fri Mar 24 06:21:09 2017 +0000 +++ b/main.cpp Wed Nov 29 22:41:20 2017 +0000 @@ -31,103 +31,32 @@ MicroBit uBit; -Animator my_animator(uBit.display); - -void animationLoop() { - while (my_animator.playing == 1) { - switch (my_animator.current_animation) { - case ANIMATION_TYPE_FLASH: - my_animator.flash(); - break; - case ANIMATION_TYPE_RIPPLE: - my_animator.ripple(); - break; - case ANIMATION_TYPE_SPIRAL: - my_animator.spiral(); - break; - } - fiber_sleep(my_animator.sleep_time); - } -} - -void onConnected(MicroBitEvent) -{ - uBit.display.print("C"); -} - -void onDisconnected(MicroBitEvent) -{ - uBit.display.print("D"); +void onConnected(MicroBitEvent) +{ + uBit.display.print("C"); +} + +void onDisconnected(MicroBitEvent) +{ + uBit.display.print("D"); +} + +int main() +{ + // Initialise the micro:bit runtime. + uBit.init(); + + uBit.display.print("X"); + + uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, onConnected); + uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, onDisconnected); + + // services: note that the device information service is included by default + // see config.json property microbit-dal.bluetooth. device_info_service + + new MicroBitAccelerometerService(*uBit.ble, uBit.accelerometer); + new MicroBitLEDService(*uBit.ble, uBit.display); + new MicroBitTemperatureService(*uBit.ble, uBit.thermometer); + + release_fiber(); } - -void animationControl(MicroBitEvent e) -{ - if (e.value == ANIMATION_CONTROL_START) { - if (my_animator.playing == 0) { - my_animator.start(); - create_fiber(animationLoop); - } - return; - } - if (e.value == ANIMATION_CONTROL_STOP) { - my_animator.stop(); - return; - } - if (e.value == ANIMATION_CONTROL_FASTER) { - my_animator.faster(); - return; - } - if (e.value == ANIMATION_CONTROL_SLOWER) { - my_animator.slower(); - return; - } -} - -void animationType(MicroBitEvent e) -{ - my_animator.setAnimationType(e.value); -} - -void onButton(MicroBitEvent e) -{ - if (e.source == MICROBIT_ID_BUTTON_B) { - uBit.display.scroll(uBit.getName()); - return; - } -} - -int main() -{ - // Initialise the micro:bit runtime. - uBit.init(); - - // Insert your code here! - uBit.display.scroll("A"); - - uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, onConnected); - uBit.messageBus.listen(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, onDisconnected); - - uBit.messageBus.listen(ANIMATION_CONTROL_EVENT, MICROBIT_EVT_ANY, animationControl); - uBit.messageBus.listen(ANIMATION_TYPE_EVENT, MICROBIT_EVT_ANY, animationType); - - uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onButton); - -/* NOTES - * ----- - * - * Add #include "MicroBitAnimationService.h" to MicroBitBLEManager.h - * - * In MicroBitConfig.h: - * #define MICROBIT_BLE_OPEN 1 - * #define MICROBIT_SD_GATT_TABLE_SIZE 0x500 - * - * See https://developer.mbed.org/teams/Bluetooth-Low-Energy/code/BLE_GATT_Example/ for additional information on mbed support for Bluetooth low energy - * - */ - new MicroBitAnimationService(*uBit.ble); - - // If main exits, there may still be other fibers running or registered event handlers etc. - // Simply release this fiber, which will mean we enter the scheduler. Worse case, we then - // sit in the idle task forever, in a power efficient sleep. - release_fiber(); -}