BLE_API wrapper library for STMicroelectronics' BlueNRG Bluetooth Low Energy expansion board shield
Fork of X_NUCLEO_IDB0XA1 by
Diff: source/platform/btle.cpp
- Revision:
- 232:f2a7da5d24e1
- Parent:
- 225:31b976a40f43
--- a/source/platform/btle.cpp Thu Jun 16 12:08:19 2016 +0000 +++ b/source/platform/btle.cpp Fri Jun 17 16:07:05 2016 +0000 @@ -88,17 +88,69 @@ /**************************************************************************/ /*! - @brief Initialises BTLE and the underlying HW/Device - @param isSetAddress boolean if address has been set - @param mosi MOSI Pin - @param miso MISO Pin - @param sclk clock Pin + @brief Prepare communication between the host and the BTLE HW device @returns void */ /**************************************************************************/ -void btleInit(bool isSetAddress, uint8_t role) +void btleInitHW(void) +{ + PRINTF("btleInitHW>>\n\r"); + + /* Delay needed only to be able to acces the JTAG interface after reset + if it will be disabled later. */ + //Clock_Wait(500); FIXME: // check if I can remove this + + /* Initialize the BlueNRG HCI */ + HCI_Init(); +} + +/**************************************************************************/ +/*! + * @brief Flash a new firmware using internal bootloader. + * @param fw_image Pointer to the firmware image (raw binary data, + * little-endian). + * @param fw_size Size of the firmware image. The firmware image size shall + * be multiple of 4 bytes. + * @retval int It returns 0 if successful, or a number not equal to 0 in + * case of error (ACI_ERROR, UNSUPPORTED_VERSION, + * WRONG_IMAGE_SIZE, CRC_ERROR) + */ +/**************************************************************************/ + +int btleUpdateFirmware(const uint8_t *fw_image, uint32_t fw_size) { - PRINTF("btleInit>>\n\r"); + int status = program_device(fw_image, fw_size); + + return (status); +} + +/**************************************************************************/ +/*! + * @brief Get BlueNRG HW updater version + * @param version This parameter returns the updater HW version. + * @retval Status of the call + */ +/**************************************************************************/ +uint8_t btleGetUpdaterHWVersion(uint8_t *upd_hw_version) +{ + uint8_t status; + + status = getBlueNRGUpdaterHWVersion(upd_hw_version); + + return (status); +} + + +/**************************************************************************/ +/*! + @brief Start the BTLE stack with the specified role + @param isSetAddress boolean if address has been set + @param role The device role + @returns void +*/ +/**************************************************************************/ +void btleStart(bool isSetAddress, uint8_t role) +{ /* Avoid compiler warnings about unused variables. */ (void)isSetAddress; @@ -107,13 +159,6 @@ uint16_t fwVersion; uint16_t service_handle, dev_name_char_handle, appearance_char_handle; - /* Delay needed only to be able to acces the JTAG interface after reset - if it will be disabled later. */ - Clock_Wait(500); - - /* Initialize the BlueNRG HCI */ - HCI_Init(); - /* Reset BlueNRG SPI interface */ BlueNRG_RST();