Tổng quan micro:bit Gateway
Ứng dụng này thiết lập một kênh giữa hai vi: các thiết bị chút. Các kênh sẽ được handeled như giao tiếp UART. Bạn có để phát triển một programm trên mỗi vi: thiết bị chút với chuyển UART.
Chỉ aktive: Chỉ định BLE (Mặc định)
Chỉ inaktive: Thông báo BLE
Im lặng aktive: Không đăng nhập trực quan
inaktive im lặng: Logging
Yêu cầu:
- Min. Android 4.4
- Bluetooth năng lượng thấp (BLE)
- Thiết bị đã ghép
- Vi: bit programm (được phát triển bởi chính mình)
Ví dụ MBED:
#include "MicroBit.h"
#include "MicroBitUARTService.h"
MicroBit uBit;
MicroBitUARTService * UART;
int kết nối = 0;
làm mất hiệu lực onConnected (MicroBitEvent e)
{
uBit.display.scroll ( "C");
kết nối = 1;
}
làm mất hiệu lực onDisconnected (MicroBitEvent e)
{
uBit.display.scroll ( "D");
kết nối = 0;
}
làm mất hiệu lực onButtonA (MicroBitEvent e)
{
if (kết nối == 0) {
uBit.display.scroll ( "NC");
trở về;
}
uart-> gửi ( "Có");
uBit.display.scroll ( "Y");
}
làm mất hiệu lực onButtonB (MicroBitEvent e)
{
if (kết nối == 0) {
uBit.display.scroll ( "NC");
trở về;
}
uart-> gửi ( "Không");
uBit.display.scroll ( "N");
}
làm mất hiệu lực onButtonAB (MicroBitEvent e)
{
if (kết nối == 0) {
uBit.display.scroll ( "NC");
trở về;
}
uart-> gửi ( "SK");
uBit.display.scroll ( "SK");
}
khoảng trống processBLEUart () {
uint8_t readBuf [22];
while (1) {// vòng lặp mãi mãi
if ((! kết nối) || (! uart-> isReadable ())) {
uBit.sleep (50); // Chờ 50ms và kiểm tra lại
tiếp tục; // Vòng lặp;
}
// Nếu không chúng ta được kết nối và có một số đầu vào để đọc
if (uart-> isReadable ()) {
while (uart-> isReadable ()) {
int charCount = uart-> đọc (readBuf, 22, ASYNC);
if (charCount! = 0) {
for (int i = 0; i uBit.display.scroll ((char) readBuf [i]);
}
}
}
}
}
/ *
QUAN TRỌNG !!!
Oherwise bạn sẽ chạy ra khỏi bộ nhớ!
Đề nghị vô hiệu hóa các dịch vụ DFU và tổ chức sự kiện trong MicroBitConfig.h vì chúng là không cần thiết ở đây:
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 ()
{
// Khởi tạo các vi: thời gian chạy chút.
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 = new MicroBitUARTService (* uBit.ble, 32, 32);
uBit.display.scroll ( "Go");
create_fiber (& processBLEUart); // Tạo sợi và lịch trình nó.
release_fiber ();
}
Chỉ aktive: Chỉ định BLE (Mặc định)
Chỉ inaktive: Thông báo BLE
Im lặng aktive: Không đăng nhập trực quan
inaktive im lặng: Logging
Yêu cầu:
- Min. Android 4.4
- Bluetooth năng lượng thấp (BLE)
- Thiết bị đã ghép
- Vi: bit programm (được phát triển bởi chính mình)
Ví dụ MBED:
#include "MicroBit.h"
#include "MicroBitUARTService.h"
MicroBit uBit;
MicroBitUARTService * UART;
int kết nối = 0;
làm mất hiệu lực onConnected (MicroBitEvent e)
{
uBit.display.scroll ( "C");
kết nối = 1;
}
làm mất hiệu lực onDisconnected (MicroBitEvent e)
{
uBit.display.scroll ( "D");
kết nối = 0;
}
làm mất hiệu lực onButtonA (MicroBitEvent e)
{
if (kết nối == 0) {
uBit.display.scroll ( "NC");
trở về;
}
uart-> gửi ( "Có");
uBit.display.scroll ( "Y");
}
làm mất hiệu lực onButtonB (MicroBitEvent e)
{
if (kết nối == 0) {
uBit.display.scroll ( "NC");
trở về;
}
uart-> gửi ( "Không");
uBit.display.scroll ( "N");
}
làm mất hiệu lực onButtonAB (MicroBitEvent e)
{
if (kết nối == 0) {
uBit.display.scroll ( "NC");
trở về;
}
uart-> gửi ( "SK");
uBit.display.scroll ( "SK");
}
khoảng trống processBLEUart () {
uint8_t readBuf [22];
while (1) {// vòng lặp mãi mãi
if ((! kết nối) || (! uart-> isReadable ())) {
uBit.sleep (50); // Chờ 50ms và kiểm tra lại
tiếp tục; // Vòng lặp;
}
// Nếu không chúng ta được kết nối và có một số đầu vào để đọc
if (uart-> isReadable ()) {
while (uart-> isReadable ()) {
int charCount = uart-> đọc (readBuf, 22, ASYNC);
if (charCount! = 0) {
for (int i = 0; i uBit.display.scroll ((char) readBuf [i]);
}
}
}
}
}
/ *
QUAN TRỌNG !!!
Oherwise bạn sẽ chạy ra khỏi bộ nhớ!
Đề nghị vô hiệu hóa các dịch vụ DFU và tổ chức sự kiện trong MicroBitConfig.h vì chúng là không cần thiết ở đây:
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 ()
{
// Khởi tạo các vi: thời gian chạy chút.
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 = new MicroBitUARTService (* uBit.ble, 32, 32);
uBit.display.scroll ( "Go");
create_fiber (& processBLEUart); // Tạo sợi và lịch trình nó.
release_fiber ();
}
Xem thêm