Гэта дадатак ўстанаўлівае канал паміж двума мікра: разрадных прылад. Канал будзе handeled ў якасці UART сувязі. Вы павінны развіваць праграмка на кожным мікра: біт прылады з перадачай УАПП.
Індыкацыя Aktive: BLE індыкацыя (па змаўчанні)
Індыкацыя InAktive: BLE Апавяшчэнне
Ціхая ня Aktive: Няма візуальнай рэгістрацыі
Ціхая InAktive: лесанарыхтоўкі
патрабаванні:
- Мін. Android 4.4
- Bluetooth Low Energy (BLE)
- Спалучэння прылад
- Мікра: трохі праграмка (распрацаваны самастойна)
MBED прыклад:
#include "MicroBit.h"
#include "MicroBitUARTService.h"
Микродолото UBIT;
MicroBitUARTService * УАПП;
INT падлучаны = 0;
анулявання onConnected (MicroBitEvent е)
{
uBit.display.scroll ( "С");
падлучаны = 1;
}
анулявання onDisconnected (MicroBitEvent е)
{
uBit.display.scroll ( "D");
падлучаны = 0;
}
анулявання onButtonA (MicroBitEvent е)
{
калі (падлучаны == 0) {
uBit.display.scroll ( "NC");
вяртанне;
}
uart-> адправіць ( "Так");
uBit.display.scroll ( "Y");
}
анулявання onButtonB (MicroBitEvent е)
{
калі (падлучаны == 0) {
uBit.display.scroll ( "NC");
вяртанне;
}
uart-> адправіць ( "No");
uBit.display.scroll ( "N");
}
анулявання onButtonAB (MicroBitEvent е)
{
калі (падлучаны == 0) {
uBit.display.scroll ( "NC");
вяртанне;
}
uart-> адправіць ( "СК");
uBit.display.scroll ( "СК");
}
несапраўдным processBLEUart () {
uint8_t readBuf [22];
у той час як (1) {// цыкл назаўжды
калі ((! звязнае) || (! uart-> isReadable ())) {
uBit.sleep (50); // Чакаем 50мс і праверце яшчэ раз
працягнуць; // Цыкл;
}
// Інакш мы звязаны і ёсць некаторы уваход для чытання
калі (uart-> isReadable ()) {
у той час як (uart-> isReadable ()) {
INT CharCount = uart-> прачытаць (readBuf, 22, асінхронныя);
калі (CharCount! = 0) {
для (INT I = 0; я uBit.display.scroll ((сімвал) readBuf [I]);
}
}
}
}
}
/ *
ВАЖНА !!!
Oherwise вы будзеце запускаць з памяці!
Рэкамендуецца адключыць паслугі DFU і падзея ў MicroBitConfig.h, так як яны тут не патрэбныя:
microbit-> микродолото-dal-> прынцыпы ўдзелу> core-> MicroBitConfig.h
#define MICROBIT_BLE_DFU_SERVICE 0
#define MICROBIT_BLE_EVENT_SERVICE 0
#define MICROBIT_SD_GATT_TABLE_SIZE 0x500
* /
Int асноўных ()
{
// Ініцыялізаваць мікра: біт выканання.
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);
УАПП = новы MicroBitUARTService (* uBit.ble, 32, 32);
uBit.display.scroll ( "Go");
create_fiber (& processBLEUart); // Стварыць валакна і планаваць яго.
release_fiber ();
}