Αυτή η εφαρμογή δημιουργεί ένα κανάλι μεταξύ δύο μικρο: συσκευές bit. Το κανάλι θα handeled η επικοινωνία UART. Θα πρέπει να αναπτύξει μια programm σε κάθε μικρο: συσκευή λίγο με τη μεταφορά UART.
Ένδειξη Aktive: BLE Ένδειξη (Προεπιλογή)
Ένδειξη inaktive: BLE Κοινοποίηση
Silent Aktive: Δεν υπάρχει οπτική καταγραφή
Silent inaktive: Καταγραφή
απαιτήσεις:
- Min. Android 4.4
- Bluetooth Low Energy (BLE)
- Αξιόπιστες συσκευές
- Μικρο: programm bit (που αναπτύχθηκε από τον εαυτό σας)
MBED παράδειγμα:
#include "MicroBit.h"
#include "MicroBitUARTService.h"
MicroBit uBit?
MicroBitUARTService * UART?
int συνδέεται = 0?
άκυρη onConnected (MicroBitEvent ε)
{
uBit.display.scroll ( "C")?
συνδεδεμένος = 1?
}
άκυρη onDisconnected (MicroBitEvent ε)
{
uBit.display.scroll ( "D")?
συνδεδεμένος = 0?
}
άκυρη onButtonA (MicroBitEvent ε)
{
αν (συνδεδεμένο == 0) {
uBit.display.scroll ( "NC")?
απόδοση;
}
uart-> Αποστολή ( "Yes")?
uBit.display.scroll ( "Υ")?
}
άκυρη onButtonB (MicroBitEvent ε)
{
αν (συνδεδεμένο == 0) {
uBit.display.scroll ( "NC")?
απόδοση;
}
uart-> Αποστολή ( "Όχι")?
uBit.display.scroll ( "Ν")?
}
άκυρη onButtonAB (MicroBitEvent ε)
{
αν (συνδεδεμένο == 0) {
uBit.display.scroll ( "NC")?
απόδοση;
}
uart-> στείλετε ( «SK»)?
uBit.display.scroll ( "SK")?
}
άκυρη processBLEUart () {
uint8_t readBuf [22]?
ενώ (1) {// βρόχο για πάντα
αν ((! συνδεδεμένο) || (! uart-> isReadable ())) {
uBit.sleep (50)? // Περιμένετε 50mS και ελέγξτε και πάλι
να συνεχίσει; // Βρόχο?
}
// Αλλιώς είμαστε συνδεδεμένοι και υπάρχει κάποια είσοδο για να διαβάσετε
αν (uart-> isReadable ()) {
ενώ (uart-> isReadable ()) {
int charCount = uart-> διαβάζουν (readBuf, 22, ASYNC)?
αν (charCount! = 0) {
for (int i = 0? i uBit.display.scroll ((char) readBuf [i])?
}
}
}
}
}
/ *
ΣΗΜΑΝΤΙΚΌ !!!
Oherwise θα ξεμείνει από μνήμη!
Προτείνουμε την απενεργοποίηση των υπηρεσιών DFU και εκδηλώσεων σε MicroBitConfig.h δεδομένου ότι δεν χρειάζονται εδώ:
microbit-> microbit-dal-> inc-> πυρήνος> MicroBitConfig.h
#define MICROBIT_BLE_DFU_SERVICE 0
#define MICROBIT_BLE_EVENT_SERVICE 0
#define MICROBIT_SD_GATT_TABLE_SIZE 0x500
* /
int main ()
{
// Initialise το μικρο: runtime bit.
uBit.init ()?
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)?
UART = νέα MicroBitUARTService (* uBit.ble, 32, 32)?
uBit.display.scroll ( "Go")?
create_fiber (& processBLEUart)? // Δημιουργούν ίνες και το χρονοδιάγραμμα αυτό.
release_fiber ()?
}
Ενημερώθηκε στις
30 Δεκ 2020