Un programme d'essai pour les Terminales NSI

Dependencies:   microbit

Files at this revision

API Documentation at this revision

Comitter:
davsel
Date:
Wed Feb 17 22:46:32 2021 +0000
Parent:
0:0041f35b0c4c
Commit message:
Test

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed_app.json Show annotated file Show diff for this revision Revisions of this file
microbit.lib Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Jul 13 16:03:21 2016 +0100
+++ b/main.cpp	Wed Feb 17 22:46:32 2021 +0000
@@ -1,43 +1,80 @@
-/*
-The MIT License (MIT)
-
-Copyright (c) 2016 British Broadcasting Corporation.
-This software is provided by Lancaster University by arrangement with the BBC.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-*/
-
 #include "MicroBit.h"
+#include "MicroBitUARTService.h"
 
 MicroBit uBit;
+MicroBitUARTService *uart;
+
+int connected = 0;
+
+void onConnected(MicroBitEvent)
+{
+
+    uBit.display.scroll("C");
+
+    connected = 1;
+
+    // mobile app will send ASCII strings terminated with the colon character
+    ManagedString eom(":");
+
+    while(connected == 1) {
+        ManagedString msg = uart->readUntil(eom);
+        uBit.display.scroll(msg);
+    }
+
+}
+
+void onDisconnected(MicroBitEvent)
+{
+    uBit.display.scroll("D");
+    connected = 0;
+}
+
+void onButtonA(MicroBitEvent)
+{
+    if (connected == 0) {
+        return;
+    }
+    uart->send(ManagedString("YES"));
+    uBit.display.scroll("Y");
+}
+
+void onButtonB(MicroBitEvent)
+{
+    if (connected == 0) {
+        return;
+    }
+    uart->send(ManagedString("NO"));
+    uBit.display.scroll("N");
+}
+
+void onButtonAB(MicroBitEvent)
+{
+    if (connected == 0) {
+        return;
+    }
+    uart->send(ManagedString("GOT IT!!"));
+    uBit.display.scroll("!");
+}
 
 int main()
 {
     // Initialise the micro:bit runtime.
     uBit.init();
 
-    // Insert your code here!
-    uBit.display.scroll("HELLO WORLD! :)");
+    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(MICROBIT_ID_BUTTON_A, MICROBIT_BUTTON_EVT_CLICK, onButtonA);
+    uBit.messageBus.listen(MICROBIT_ID_BUTTON_B, MICROBIT_BUTTON_EVT_CLICK, onButtonB);
+    uBit.messageBus.listen(MICROBIT_ID_BUTTON_AB, MICROBIT_BUTTON_EVT_CLICK, onButtonAB);
+
+
+    // Note GATT table size increased from default in MicroBitConfig.h
+    // #define MICROBIT_SD_GATT_TABLE_SIZE             0x500
+    uart = new MicroBitUARTService(*uBit.ble, 32, 32);
+    uBit.display.scroll("UART ready");
 
     // 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();
-}
-
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed_app.json	Wed Feb 17 22:46:32 2021 +0000
@@ -0,0 +1,9 @@
+{
+    "macros": [ 
+        "MICROBIT_BLE_ENABLED=1",
+        "MICROBIT_BLE_PAIRING_MODE=0",
+        "MICROBIT_BLE_OPEN=1",
+        "MICROBIT_SD_GATT_TABLE_SIZE=0x600",
+        "MICROBIT_BLE_DFU_SERVICE=1"
+        ]
+}
\ No newline at end of file
--- a/microbit.lib	Wed Jul 13 16:03:21 2016 +0100
+++ b/microbit.lib	Wed Feb 17 22:46:32 2021 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/teams/Lancaster-University/code/microbit/#4b89e7e3494f
+https://os.mbed.com/users/davsel/code/microbit/#fd99a22e4c7e