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.

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