Această aplicație stabilește un canal între două micro: dispozitive bit. Canalul va fi handeled ca comunicare UART. Trebuie sa o dezvolte pe fiecare micro-programm: dispozitiv bit cu transfer de UART.
Indicarea aktive: Indicarea BLE (implicit)
Indicație inaktive: Notificare BLE
aktive tăcut: Fără logare vizuală
inaktive tăcut: Exploatari forestiere
cerinţe:
- Min. Android 4.4
- Bluetooth Low Energy (BLE)
- Dispozitive asociate
- Micro: programm bit (dezvoltat de unul singur)
exemplu MBED:
#include "MicroBit.h"
#include "MicroBitUARTService.h"
MicroBit UBIT;
MicroBitUARTService * UART;
int conectat = 0;
nule onConnected (MicroBitEvent e)
{
uBit.display.scroll ( "C");
conectat = 1;
}
nule onDisconnected (MicroBitEvent e)
{
uBit.display.scroll ( "D");
conectat = 0;
}
nule onButtonA (MicroBitEvent e)
{
dacă (== conectat 0) {
uBit.display.scroll ( "NC");
întoarcere;
}
uart-> send ( "Da");
uBit.display.scroll ( "Y");
}
nule onButtonB (MicroBitEvent e)
{
dacă (== conectat 0) {
uBit.display.scroll ( "NC");
întoarcere;
}
uart-> send ( "Nu");
uBit.display.scroll ( "N");
}
nule onButtonAB (MicroBitEvent e)
{
dacă (== conectat 0) {
uBit.display.scroll ( "NC");
întoarcere;
}
uart-> send ( "SK");
uBit.display.scroll ( "SK");
}
void processBLEUart () {
uint8_t readBuf [22];
în timp ce (1) {// bucla pentru totdeauna
if ((! conectat) || (! uart-> isReadable ())) {
uBit.sleep (50); // Așteptați 50ms și verificați din nou
continua; // Bucla;
}
// Altfel suntem conectate și există o anumită intrare pentru a citi
în cazul în care (uart-> isReadable ()) {
în timp ce (uart-> isReadable ()) {
int charCount = uart-> citit (readBuf, 22, asincronă);
în cazul în care (charCount! = 0) {
pentru (int i = 0; i uBit.display.scroll ((char) readBuf [i]);
}
}
}
}
}
/ *
IMPORTANT !!!
Oherwise vei alerga afară de memorie!
Recomanda dezactivarea serviciilor DFU și evenimente în MicroBitConfig.h, deoarece acestea nu sunt necesare aici:
microbit-> microbit-dal-> inc-> core-> MicroBitConfig.h
#define MICROBIT_BLE_DFU_SERVICE 0
#define MICROBIT_BLE_EVENT_SERVICE 0
#define MICROBIT_SD_GATT_TABLE_SIZE 0x500
* /
int main ()
{
// Initialise micro: 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);
= new UART MicroBitUARTService (* uBit.ble, 32, 32);
uBit.display.scroll ( "Go");
create_fiber (& processBLEUart); // Crea fibre și programați-l.
release_fiber ();
}
Ultima actualizare
30 dec. 2020