2016-06-14 15:30:07 +02:00
|
|
|
#include "pxt.h"
|
|
|
|
#include "MESEvents.h"
|
2016-06-23 09:05:49 +02:00
|
|
|
#include "MicroBitUARTService.h"
|
|
|
|
MicroBitUARTService *uart;
|
2016-06-14 15:30:07 +02:00
|
|
|
|
|
|
|
using namespace pxt;
|
2016-06-21 20:17:34 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Support for additional Bluetooth services.
|
|
|
|
*/
|
2016-06-14 22:17:20 +02:00
|
|
|
//% color=#0082FB weight=20
|
2016-06-14 15:30:07 +02:00
|
|
|
namespace bluetooth {
|
|
|
|
/**
|
2016-06-20 09:39:51 +02:00
|
|
|
* Starts the Bluetooth IO pin service.
|
2016-06-14 15:30:07 +02:00
|
|
|
*/
|
2016-06-14 22:17:20 +02:00
|
|
|
//% help=bluetooth/start-io-pin-service
|
2016-06-14 22:47:18 +02:00
|
|
|
//% blockId=bluetooth_start_io_pin_service block="bluetooth io pin service" blockGap=8
|
2016-06-14 15:30:07 +02:00
|
|
|
void startIOPinService() {
|
|
|
|
new MicroBitIOPinService(*uBit.ble, uBit.io);
|
|
|
|
}
|
2016-06-14 22:17:20 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Starts the Bluetooth LED service
|
|
|
|
*/
|
|
|
|
//% help=bluetooth/start-led-service
|
2016-06-14 22:47:18 +02:00
|
|
|
//% blockId=bluetooth_start_led_service block="bluetooth led service" blockGap=8
|
2016-06-14 22:17:20 +02:00
|
|
|
void startLEDService() {
|
|
|
|
new MicroBitLEDService(*uBit.ble, uBit.display);
|
|
|
|
}
|
2016-06-14 22:24:55 +02:00
|
|
|
|
|
|
|
/**
|
2016-06-20 09:39:51 +02:00
|
|
|
* Starts the Bluetooth temperature service
|
2016-06-14 22:24:55 +02:00
|
|
|
*/
|
|
|
|
//% help=bluetooth/start-temperature-service
|
2016-06-14 22:47:18 +02:00
|
|
|
//% blockId=bluetooth_start_temperature_service block="bluetooth temperature service" blockGap=8
|
2016-06-14 22:24:55 +02:00
|
|
|
void startTemperatureService() {
|
|
|
|
new MicroBitTemperatureService(*uBit.ble, uBit.thermometer);
|
|
|
|
}
|
2016-06-14 22:39:24 +02:00
|
|
|
|
|
|
|
/**
|
2016-06-20 09:39:51 +02:00
|
|
|
* Starts the Bluetooth magnetometer service
|
2016-06-14 22:39:24 +02:00
|
|
|
*/
|
|
|
|
//% help=bluetooth/start-magnetometer-service
|
2016-06-14 22:47:18 +02:00
|
|
|
//% blockId=bluetooth_start_magnetometer_service block="bluetooth magnetometer service" blockGap=8
|
2016-06-14 22:39:24 +02:00
|
|
|
void startMagnetometerService() {
|
|
|
|
new MicroBitMagnetometerService(*uBit.ble, uBit.compass);
|
|
|
|
}
|
2016-06-14 22:47:18 +02:00
|
|
|
|
|
|
|
/**
|
2016-06-20 09:39:51 +02:00
|
|
|
* Starts the Bluetooth accelerometer service
|
2016-06-14 22:47:18 +02:00
|
|
|
*/
|
|
|
|
//% help=bluetooth/start-accelerometer-service
|
|
|
|
//% blockId=bluetooth_start_accelerometer_service block="bluetooth accelerometer service" blockGap=8
|
|
|
|
void startAccelerometerService() {
|
|
|
|
new MicroBitAccelerometerService(*uBit.ble, uBit.accelerometer);
|
|
|
|
}
|
2016-06-14 22:53:05 +02:00
|
|
|
|
|
|
|
/**
|
2016-06-20 09:39:51 +02:00
|
|
|
* Starts the Bluetooth button service
|
2016-06-14 22:53:05 +02:00
|
|
|
*/
|
|
|
|
//% help=bluetooth/start-button-service
|
|
|
|
//% blockId=bluetooth_start_button_service block="bluetooth button service" blockGap=8
|
|
|
|
void startButtonService() {
|
|
|
|
new MicroBitButtonService(*uBit.ble);
|
|
|
|
}
|
2016-06-20 09:39:51 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Register code to run when the micro:bit is connected to over Bluetooth
|
|
|
|
* @param body Code to run when a Bluetooth connection is established
|
|
|
|
*/
|
|
|
|
//% help=bluetooth/on-bluetooth-connected
|
|
|
|
//% blockId=bluetooth_on_connected block="on bluetooth connected"
|
|
|
|
void onBluetoothConnected(Action body) {
|
|
|
|
registerWithDal(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_CONNECTED, body);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Register code to run when a bluetooth connection to the micro:bit is lost
|
|
|
|
* @param body Code to run when a Bluetooth connection is lost
|
|
|
|
*/
|
|
|
|
//% help=bluetooth/on-bluetooth-disconnected
|
|
|
|
//% blockId=bluetooth_on_disconnected block="on bluetooth disconnected"
|
|
|
|
void onBluetoothDisconnected(Action body) {
|
|
|
|
registerWithDal(MICROBIT_ID_BLE, MICROBIT_BLE_EVT_DISCONNECTED, body);
|
|
|
|
}
|
2016-06-23 09:05:49 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Starts the Bluetooth UART service
|
|
|
|
*/
|
|
|
|
//% help=bluetooth/start-uart-service
|
|
|
|
//% blockId=bluetooth_start_uart_service block="bluetooth|uart|service" blockGap=8
|
|
|
|
|
|
|
|
void startUartService() {
|
|
|
|
// 32 octet buffer size is
|
|
|
|
uart = new MicroBitUARTService(*uBit.ble, 32, 32);
|
|
|
|
}
|
|
|
|
|
2016-06-14 15:30:07 +02:00
|
|
|
}
|