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.

api_datatypes.h

Committer:
dishbreak
Date:
2015-05-19
Revision:
7:63daf39f20e1
Parent:
6:23d9a99dcde0

File content as of revision 7:63daf39f20e1:

#ifndef API_DATATYPES_H
#define API_DATATYPES_H
/** @file api_datatypes.h
* @brief Data structures that the API uses for responses and commands. */

/** Data structure returned from Get Info command. */
typedef struct {
 uint16_t major; ///< Major version (e.g. 1)
 uint16_t minor; ///< Minor version (e.g. 3)
 uint16_t patch; ///< Patch version (e.g. 2)
 uint16_t build; ///< Build number (e.g. 122)
 uint16_t ll_version; ///< Link Layer Version
 uint8_t protocol_version; ///< BGAPI Version
 uint8_t hw; ///< Hardware Version
} ble_msg_system_get_info_rsp_t;


/** Data structure passed into the Reset command. */
typedef struct {
    uint8_t boot_in_dfu; ///< Determine whether or not to boot into Device Firmware Update (DFU) mode. 1 for booting into DFU, 0 otherwise.
} ble_msg_system_reset_t;

/** Data structure returned from Boot event. */
typedef struct {
 uint16_t major; ///< Major version (e.g. 1)
 uint16_t minor; ///< Minor version (e.g. 3)
 uint16_t patch; ///< Patch version (e.g. 2)
 uint16_t build; ///< Build number (e.g. 122)
 uint16_t ll_version; ///< Link Layer Version
 uint8_t protocol_version; ///< BGAPI Version
 uint8_t hw; ///< Hardware Version
} ble_msg_system_boot_evt_t;

/** Data structure returned from Discover command. */
typedef struct {
    uint16_t result; ///< Result. Non-zero value indicates an error.
} ble_msg_gap_discover_rsp_t;



/** Data structure representing a scan result */
typedef struct {
    int8_t rssi; ///< RSSI value (dBm).
    uint8_t packet_type; ///< Scan response header. 
    uint8_t hw_addr[6]; ///< BLE Hardware Address.
    uint8_t address_type; ///< Address type. 1 for random, 0 for public.
    uint8_t bond; ///< Bond handle if known bond for device, 0xff otherwise.
    uint8_t *data; ///< Service data.
    uint8_t data_len; ///< Service data length (in bytes).
} ble_msg_gap_scan_result_evt_t;

#endif