diff --git a/docs/reference/bluetooth.md b/docs/reference/bluetooth.md index 10b0300c..1a20ac00 100644 --- a/docs/reference/bluetooth.md +++ b/docs/reference/bluetooth.md @@ -27,6 +27,7 @@ bluetooth.setTransmitPower(7); ```cards bluetooth.startUartService(); bluetooth.uartReadUntil(""); +bluetooth.uartWriteLine(""); bluetooth.uartWriteString(""); bluetooth.uartWriteNumber(0); bluetooth.uartWriteValue("", 0); @@ -50,6 +51,7 @@ For more advanced information on the @boardname@ Bluetooth UART service includin [startAccelerometerService](/reference/bluetooth/start-accelerometer-service), [startButtonService](/reference/bluetooth/start-button-service), [startIOPinService](/reference/bluetooth/start-io-pin-service), [startLEDService](/reference/bluetooth/start-led-service), [startMagnetometerService](/reference/bluetooth/start-magnetometer-service), [startTemperatureService](/reference/bluetooth/start-temperature-service), [startUartService](/reference/bluetooth/start-uart-service), [uartReadUntil](/reference/bluetooth/uart-read-until), +[uartWriteLine](/reference/bluetooth/uart-write-line), [uartWriteString](/reference/bluetooth/uart-write-string), [uartWriteNumber](/reference/bluetooth/uart-write-number), [uartWriteValue](/reference/bluetooth/uart-write-value), diff --git a/docs/reference/bluetooth/uart-write-line.md b/docs/reference/bluetooth/uart-write-line.md new file mode 100644 index 00000000..5a24714d --- /dev/null +++ b/docs/reference/bluetooth/uart-write-line.md @@ -0,0 +1,51 @@ +# UART Write Line + +## ~hint +![](/static/bluetooth/Bluetooth_SIG.png) + +For another device like a smartphone to use any of the Bluetooth "services" which the @boardname@ has, it must first be [paired with the @boardname@](/reference/bluetooth/bluetooth-pairing). Once paired, the other device may connect to the @boardname@ and exchange data relating to many of the @boardname@'s features. + +## ~ + +The [Bluetooth UART service](/reference/bluetooth/start-uart-service) allows another device such as a smartphone to exchange any data it wants to with the @boardname@, in small chunks. + +With the Bluetooth UART service running, this block allows a @boardname@ to send a line of text to a Bluetooth connected device. + +```sig +bluetooth.uartWriteLine(""); +``` + +## Example: Starting the Bluetooth UART service and then sending "HELLO" whenever button A is pressed and another device has connected over Bluetooth + +```blocks +let connected = 0; +bluetooth.onBluetoothConnected(() => { + basic.showString("C"); + connected = 1; +}); +bluetooth.onBluetoothDisconnected(() => { + basic.showString("D"); + connected = 0; +}); +input.onButtonPressed(Button.A, () => { + if (connected == 1) { + bluetooth.uartWriteLine("HELLO"); + } +}); +``` + +## Video - UART service guessing game + +https://www.youtube.com/watch?v=PgGeWddMAZ0 + +## Advanced + +For more advanced information on the @boardname@ Bluetooth UART service including information on using a smartphone, see the [Lancaster University @boardname@ runtime technical documentation](http://lancaster-university.github.io/microbit-docs/ble/uart-service/) + +## See also + +[About Bluetooth](/reference/bluetooth/about-bluetooth), [@boardname@ Bluetooth profile overview ](http://lancaster-university.github.io/microbit-docs/ble/profile/), [@boardname@ Bluetooth profile reference](http://lancaster-university.github.io/microbit-docs/resources/bluetooth/microbit-profile-V1.9-Level-2.pdf), [Bluetooth on @boardname@ resources](http://bluetooth-mdw.blogspot.co.uk/p/bbc-microbit.html), [Bluetooth SIG](https://www.bluetooth.com) + +```package +bluetooth +``` diff --git a/libs/bluetooth/bluetooth.ts b/libs/bluetooth/bluetooth.ts index a30cf399..482f92cb 100644 --- a/libs/bluetooth/bluetooth.ts +++ b/libs/bluetooth/bluetooth.ts @@ -24,6 +24,16 @@ namespace bluetooth { console.log("UART Write: " + data) } + /** + * Writes to the Bluetooth UART service buffer. From there the data is transmitted over Bluetooth to a connected device. + */ + //% help=bluetooth/uart-write-line weight=79 + //% blockId=bluetooth_uart_line block="bluetooth uart|write line %data" blockGap=8 + //% parts="bluetooth" advanced=true + export function uartWriteLine(data: string): void { + uartWriteString(data + "\r\n"); + } + /** * Prints a numeric value to the serial */