Increased default power to 6, added UART write block

This commit is contained in:
Martin Woolley
2016-06-23 11:38:23 +01:00
parent 7bf00ff139
commit 76005841fa
6 changed files with 139 additions and 4 deletions

View File

@ -91,8 +91,32 @@ namespace bluetooth {
//% 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);
// 61 octet buffer size is 3 x (MTU - 3) + 1
// MTU on nRF51822 is 23 octets. 3 are used by Attribute Protocol header data leaving 20 octets for payload
// So we allow a buffer that can contain 3 x max length messages plus one octet for a terminator character
uart = new MicroBitUARTService(*uBit.ble, 61, 60);
}
/**
* Reads the Bluetooth UART service buffer, returning when a specified 'end of message' delimiter character is encountered
* @param eom End of Message delimiter character
*/
//% help=bluetooth/uart-read
//% blockId=bluetooth_uart_read block="bluetooth|uart|read %eom" blockGap=8
StringData* uartRead(char* eom) {
// temp hard coding of : as eom delimiter
char delim[6] = {':', 0};
return uart->readUntil(delim).leakData();
}
/**
* Writes to the Bluetooth UART service buffer. From there the data is transmitted over Bluetooth to a connected device.
*/
//% help=bluetooth/uart-write
//% blockId=bluetooth_uart_write block="bluetooth|uart|write %data" blockGap=8
void uartWrite(StringData* data) {
uart->send(ManagedString(data));
}
}