Bluetooth UART support for the Adafruit BluefruitLE SPI, for the University of York Engineering Stage 1 project
BluetoothUart.h@3:bdfd15be7b82, 2021-03-12 (annotated)
- Committer:
- ajp109
- Date:
- Fri Mar 12 14:35:25 2021 +0000
- Revision:
- 3:bdfd15be7b82
- Parent:
- 2:8c341bac60b8
Remove readme
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ajp109 | 2:8c341bac60b8 | 1 | #include "Adafruit_BluefruitLE_SPI.h" |
ajp109 | 2:8c341bac60b8 | 2 | |
ajp109 | 2:8c341bac60b8 | 3 | #ifdef NDEBUG |
ajp109 | 2:8c341bac60b8 | 4 | #define ASSERT_WITH_MSG(expr,msg) ((void)0) |
ajp109 | 2:8c341bac60b8 | 5 | #else |
ajp109 | 2:8c341bac60b8 | 6 | #define ASSERT_WITH_MSG(expr,msg) \ |
ajp109 | 2:8c341bac60b8 | 7 | do { \ |
ajp109 | 2:8c341bac60b8 | 8 | if (!(expr)) { \ |
ajp109 | 2:8c341bac60b8 | 9 | mbed_assert_internal(msg, __FILE__, __LINE__); \ |
ajp109 | 2:8c341bac60b8 | 10 | } \ |
ajp109 | 2:8c341bac60b8 | 11 | } while (0) |
ajp109 | 2:8c341bac60b8 | 12 | #endif |
ajp109 | 2:8c341bac60b8 | 13 | |
ajp109 | 2:8c341bac60b8 | 14 | #define MINIMUM_FIRMWARE_VERSION "0.6.6" |
ajp109 | 2:8c341bac60b8 | 15 | #define MODE_LED_BEHAVIOUR "MODE" |
ajp109 | 2:8c341bac60b8 | 16 | |
ajp109 | 2:8c341bac60b8 | 17 | class BluetoothUart : public Adafruit_BluefruitLE_SPI |
ajp109 | 2:8c341bac60b8 | 18 | { |
ajp109 | 2:8c341bac60b8 | 19 | public: |
ajp109 | 2:8c341bac60b8 | 20 | BluetoothUart(PinName mosi, PinName miso, PinName sclk, PinName cs, PinName irq, PinName rst = NC): |
ajp109 | 2:8c341bac60b8 | 21 | Adafruit_BluefruitLE_SPI(mosi, miso, sclk, cs, irq, rst) |
ajp109 | 2:8c341bac60b8 | 22 | { |
ajp109 | 2:8c341bac60b8 | 23 | ASSERT_WITH_MSG(begin(), "Couldn't find Bluefruit module - check wiring?"); |
ajp109 | 2:8c341bac60b8 | 24 | ASSERT_WITH_MSG(factoryReset(), "Couldn't factory reset Bluefruit module"); |
ajp109 | 2:8c341bac60b8 | 25 | if ( isVersionAtLeast(MINIMUM_FIRMWARE_VERSION) ) { |
ajp109 | 2:8c341bac60b8 | 26 | sendCommandCheckOK("AT+HWModeLED=" MODE_LED_BEHAVIOUR); |
ajp109 | 2:8c341bac60b8 | 27 | } |
ajp109 | 2:8c341bac60b8 | 28 | setMode(BLUEFRUIT_MODE_DATA); |
ajp109 | 2:8c341bac60b8 | 29 | } |
ajp109 | 2:8c341bac60b8 | 30 | }; |