Partial implementation of BlueGiga's BGAPI for use with the BLE112/3 modules over UART.
Hi there! I recently started using BLE112 modules with the mbed LPC1768 MCU, and I realized there was no implementation of BlueGiga's BGAPI available for mbed. This library implements only a few commands, but if you're looking to get started, this is a good place to look.
This was developed against BGAPI v1.3.2. I make no guarantees as to how well it will work with newer revisions of the software.
Diff: BGLib.h
- Revision:
- 2:3ce9a31a6a7e
- Parent:
- 1:3336b2391c80
- Child:
- 3:8f43af513d87
--- a/BGLib.h Sun May 17 23:24:26 2015 +0000 +++ b/BGLib.h Mon May 18 01:16:52 2015 +0000 @@ -1,19 +1,60 @@ #include "mbed.h" +#include "callbacks.h" -typedef void (*hello_callback_t)(); class BGLib { +/** A class which can communicate with a BlueGiga BLE112(3) over a UART Connection. Note that all communication is asynchronous. Your class will have to supply callbacks for each command it intends to use. +* +* Example: +* @code +* #include "mbed.h" +* #include "BGLib.h" +* +* BGLib ble112(p9, p10, p7, p8); +* +* uint8_t hello_msg[] = {0x00, 0x00, 0x00, 0x01}; +* +* void helloCallback() { +* //executed when code compiles. +* } +* +* int main() { +* ble112.set_ble_rsp_system_hello(&helloCallback); +* ble112.ble_cmd_system_hello(); +* } +*/ public: + /** Create a BGLib instance + * @param tx Pin to use for UART transmission + * @param rx Pin to use for UART reception + * @param rts Flow control pin used for RTS. + * @param cts Flow control pin used for CTS. + */ BGLib(PinName tx, PinName rx, PinName rts, PinName cts); - void send_hello(); - void set_hello_callback(hello_callback_t pCallback); + /** Send a Hello command to the device. */ + void ble_cmd_system_hello(); + + /** Set the callback for a Hello command. Invoked when a response arrives. + * @param pCallback Function pointer to the desired callback. + */ + void set_ble_rsp_system_hello(hello_callback_t pCallback); + + /** Send a Get Info command to the device. */ + void ble_cmd_system_get_info(); + + /** Set the callback for a Get Info command. Invoked when a response arrives. + * @param pCallback Function pointer to the desired callback. + */ + void set_ble_rsp_system_get_info(get_info_callback_t pCallback); private: void parse(); void send_bytes(uint8_t bytes[], int length); Serial mSerial; + hello_callback_t mHelloCallback; + get_info_callback_t mGetInfoCallback; }; \ No newline at end of file