Openwear requires RC oscillator to be used
Fork of nRF51822 by
Revision 17:c3e11bb6cb72, committed 2014-06-04
- Comitter:
- Rohit Grover
- Date:
- Wed Jun 04 09:19:57 2014 +0100
- Parent:
- 16:d8161e2af6c6
- Child:
- 18:465e0419c178
- Commit message:
- white space diffs; uncrustify
Changed in this revision
--- a/btle/btle.cpp Fri May 30 13:32:48 2014 +0100 +++ b/btle/btle.cpp Wed Jun 04 09:19:57 2014 +0100 @@ -37,12 +37,14 @@ #include "nRF51GattServer.h" static void service_error_callback(uint32_t nrf_error); -void assert_nrf_callback(uint16_t line_num, const uint8_t * p_file_name); -void app_error_handler(uint32_t error_code, uint32_t line_num, const uint8_t * p_file_name); +void assert_nrf_callback(uint16_t line_num, const uint8_t *p_file_name); +void app_error_handler(uint32_t error_code, + uint32_t line_num, + const uint8_t *p_file_name); static error_t bond_manager_init(void); -static void btle_handler(ble_evt_t * p_ble_evt); +static void btle_handler(ble_evt_t *p_ble_evt); /**************************************************************************/ /*! @@ -51,7 +53,7 @@ /**************************************************************************/ static void sys_evt_dispatch(uint32_t sys_evt) { - pstorage_sys_event_handler(sys_evt); + pstorage_sys_event_handler(sys_evt); } /**************************************************************************/ @@ -63,16 +65,16 @@ /**************************************************************************/ error_t btle_init(void) { - APP_TIMER_INIT(0, 8, 5, false); - SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, false); + APP_TIMER_INIT(0, 8, 5, false); + SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, false); - ASSERT_STATUS( softdevice_ble_evt_handler_set(btle_handler) ); - ASSERT_STATUS( softdevice_sys_evt_handler_set(sys_evt_dispatch) ); + ASSERT_STATUS( softdevice_ble_evt_handler_set(btle_handler)); + ASSERT_STATUS( softdevice_sys_evt_handler_set(sys_evt_dispatch)); - bond_manager_init(); - btle_gap_init(); + bond_manager_init(); + btle_gap_init(); - return ERROR_NONE; + return ERROR_NONE; } /**************************************************************************/ @@ -80,65 +82,72 @@ @brief @param[in] p_ble_evt - + @returns */ /**************************************************************************/ -static void btle_handler(ble_evt_t * p_ble_evt) +static void btle_handler(ble_evt_t *p_ble_evt) { - /* Library service handlers */ - ble_bondmngr_on_ble_evt(p_ble_evt); - ble_conn_params_on_ble_evt(p_ble_evt); + /* Library service handlers */ + ble_bondmngr_on_ble_evt(p_ble_evt); + ble_conn_params_on_ble_evt(p_ble_evt); - /* Custom event handler */ - switch (p_ble_evt->header.evt_id) - { + /* Custom event handler */ + switch (p_ble_evt->header.evt_id) { case BLE_GAP_EVT_CONNECTED: - nRF51Gap::getInstance().setConnectionHandle( p_ble_evt->evt.gap_evt.conn_handle ); - nRF51Gap::getInstance().handleEvent(GapEvents::GAP_EVENT_CONNECTED); - break; + nRF51Gap::getInstance().setConnectionHandle( + p_ble_evt->evt.gap_evt.conn_handle ); + nRF51Gap::getInstance().handleEvent(GapEvents::GAP_EVENT_CONNECTED); + break; case BLE_GAP_EVT_DISCONNECTED: - // Since we are not in a connection and have not started advertising, store bonds - nRF51Gap::getInstance().setConnectionHandle (BLE_CONN_HANDLE_INVALID); - ASSERT_STATUS_RET_VOID ( ble_bondmngr_bonded_centrals_store() ); - nRF51Gap::getInstance().handleEvent(GapEvents::GAP_EVENT_DISCONNECTED); - break; + // Since we are not in a connection and have not started advertising, + // store bonds + nRF51Gap::getInstance().setConnectionHandle (BLE_CONN_HANDLE_INVALID); + ASSERT_STATUS_RET_VOID ( ble_bondmngr_bonded_centrals_store()); + nRF51Gap::getInstance().handleEvent(GapEvents::GAP_EVENT_DISCONNECTED); + break; case BLE_GAP_EVT_SEC_PARAMS_REQUEST: - { - ble_gap_sec_params_t sec_params = { 0 }; + { + ble_gap_sec_params_t sec_params = {0}; - sec_params.timeout = 30 ; /**< Timeout for Pairing Request or Security Request (in seconds). */ - sec_params.bond = 1 ; /**< Perform bonding. */ - sec_params.mitm = CFG_BLE_SEC_PARAM_MITM ; - sec_params.io_caps = CFG_BLE_SEC_PARAM_IO_CAPABILITIES ; - sec_params.oob = CFG_BLE_SEC_PARAM_OOB ; - sec_params.min_key_size = CFG_BLE_SEC_PARAM_MIN_KEY_SIZE ; - sec_params.max_key_size = CFG_BLE_SEC_PARAM_MAX_KEY_SIZE ; + sec_params.timeout = 30; /*< Timeout for Pairing Request or + * Security Request (in seconds). */ + sec_params.bond = 1; /**< Perform bonding. */ + sec_params.mitm = CFG_BLE_SEC_PARAM_MITM; + sec_params.io_caps = CFG_BLE_SEC_PARAM_IO_CAPABILITIES; + sec_params.oob = CFG_BLE_SEC_PARAM_OOB; + sec_params.min_key_size = CFG_BLE_SEC_PARAM_MIN_KEY_SIZE; + sec_params.max_key_size = CFG_BLE_SEC_PARAM_MAX_KEY_SIZE; - ASSERT_STATUS_RET_VOID ( sd_ble_gap_sec_params_reply(nRF51Gap::getInstance().getConnectionHandle(), BLE_GAP_SEC_STATUS_SUCCESS, &sec_params) ); - } - break; + ASSERT_STATUS_RET_VOID( + sd_ble_gap_sec_params_reply(nRF51Gap::getInstance(). + getConnectionHandle(), + BLE_GAP_SEC_STATUS_SUCCESS, + &sec_params)); + } + break; case BLE_GAP_EVT_TIMEOUT: - if (p_ble_evt->evt.gap_evt.params.timeout.src == BLE_GAP_TIMEOUT_SRC_ADVERTISEMENT) - { - nRF51Gap::getInstance().handleEvent(GapEvents::GAP_EVENT_TIMEOUT); - } - break; + if (p_ble_evt->evt.gap_evt.params.timeout.src == + BLE_GAP_TIMEOUT_SRC_ADVERTISEMENT) { + nRF51Gap::getInstance().handleEvent(GapEvents::GAP_EVENT_TIMEOUT); + } + break; case BLE_GATTC_EVT_TIMEOUT: case BLE_GATTS_EVT_TIMEOUT: - // Disconnect on GATT Server and Client timeout events. - // ASSERT_STATUS_RET_VOID (sd_ble_gap_disconnect(m_conn_handle, BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION)); - break; + // Disconnect on GATT Server and Client timeout events. + // ASSERT_STATUS_RET_VOID (sd_ble_gap_disconnect(m_conn_handle, + // BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION)); + break; - default: - break; - } + default: + break; + } - nRF51GattServer::getInstance().hwCallback(p_ble_evt); + nRF51GattServer::getInstance().hwCallback(p_ble_evt); } /**************************************************************************/ @@ -154,24 +163,24 @@ /**************************************************************************/ static error_t bond_manager_init(void) { - ble_bondmngr_init_t bond_para = { 0 }; + ble_bondmngr_init_t bond_para = {0}; - ASSERT_STATUS ( pstorage_init() ); + ASSERT_STATUS ( pstorage_init()); - bond_para.flash_page_num_bond = CFG_BLE_BOND_FLASH_PAGE_BOND ; - bond_para.flash_page_num_sys_attr = CFG_BLE_BOND_FLASH_PAGE_SYS_ATTR ; + bond_para.flash_page_num_bond = CFG_BLE_BOND_FLASH_PAGE_BOND; + bond_para.flash_page_num_sys_attr = CFG_BLE_BOND_FLASH_PAGE_SYS_ATTR; //bond_para.bonds_delete = boardButtonCheck(CFG_BLE_BOND_DELETE_BUTTON_NUM) ; - bond_para.evt_handler = NULL ; - bond_para.error_handler = service_error_callback ; + bond_para.evt_handler = NULL; + bond_para.error_handler = service_error_callback; - ASSERT_STATUS( ble_bondmngr_init( &bond_para ) ); + ASSERT_STATUS( ble_bondmngr_init( &bond_para )); /* Init radio active/inactive notification to flash (to only perform flashing when the radio is inactive) */ // ASSERT_STATUS( ble_radio_notification_init(NRF_APP_PRIORITY_HIGH, // NRF_RADIO_NOTIFICATION_DISTANCE_4560US, // ble_flash_on_radio_active_evt) ); - return ERROR_NONE; + return ERROR_NONE; } /**************************************************************************/ @@ -183,7 +192,7 @@ /**************************************************************************/ static void service_error_callback(uint32_t nrf_error) { - ASSERT_STATUS_RET_VOID( nrf_error ); + ASSERT_STATUS_RET_VOID( nrf_error ); } /**************************************************************************/ @@ -196,9 +205,9 @@ @returns */ /**************************************************************************/ -void assert_nrf_callback(uint16_t line_num, const uint8_t * p_file_name) +void assert_nrf_callback(uint16_t line_num, const uint8_t *p_file_name) { - ASSERT(false, (void) 0); + ASSERT(false, (void) 0); } /**************************************************************************/ @@ -213,8 +222,10 @@ @returns */ /**************************************************************************/ -void app_error_handler(uint32_t error_code, uint32_t line_num, const uint8_t * p_file_name) +void app_error_handler(uint32_t error_code, + uint32_t line_num, + const uint8_t *p_file_name) { - ASSERT_STATUS_RET_VOID( error_code ); - NVIC_SystemReset(); + ASSERT_STATUS_RET_VOID( error_code ); + NVIC_SystemReset(); }
--- a/btle/btle.h Fri May 30 13:32:48 2014 +0100 +++ b/btle/btle.h Wed Jun 04 09:19:57 2014 +0100 @@ -18,7 +18,7 @@ #define _BTLE_H_ #ifdef __cplusplus - extern "C" { +extern "C" { #endif #include "common/common.h" @@ -29,7 +29,7 @@ error_t btle_init(void); #ifdef __cplusplus - } +} #endif -#endif +#endif // ifndef _BTLE_H_
--- a/btle/btle_advertising.cpp Fri May 30 13:32:48 2014 +0100 +++ b/btle/btle_advertising.cpp Wed Jun 04 09:19:57 2014 +0100 @@ -27,17 +27,20 @@ /**************************************************************************/ error_t btle_advertising_start(void) { - ble_gap_adv_params_t adv_para = { 0 }; + ble_gap_adv_params_t adv_para = {0}; - /* Set the default advertising parameters */ - adv_para.type = BLE_GAP_ADV_TYPE_ADV_IND ; - adv_para.p_peer_addr = NULL ; /* Undirected advertising */ - adv_para.fp = BLE_GAP_ADV_FP_ANY ; - adv_para.p_whitelist = NULL ; - adv_para.interval = (CFG_GAP_ADV_INTERVAL_MS*8)/5 ; /* Advertising interval in units of 0.625 ms */ - adv_para.timeout = CFG_GAP_ADV_TIMEOUT_S ; + /* Set the default advertising parameters */ + adv_para.type = BLE_GAP_ADV_TYPE_ADV_IND; + adv_para.p_peer_addr = NULL; /* Undirected advertising */ + adv_para.fp = BLE_GAP_ADV_FP_ANY; + adv_para.p_whitelist = NULL; + adv_para.interval = (CFG_GAP_ADV_INTERVAL_MS * 8) / 5; /* Advertising + * interval in + * units of 0.625 + * ms */ + adv_para.timeout = CFG_GAP_ADV_TIMEOUT_S; - ASSERT_STATUS( sd_ble_gap_adv_start(&adv_para) ); + ASSERT_STATUS( sd_ble_gap_adv_start(&adv_para)); - return ERROR_NONE; + return ERROR_NONE; }
--- a/btle/btle_advertising.h Fri May 30 13:32:48 2014 +0100 +++ b/btle/btle_advertising.h Wed Jun 04 09:19:57 2014 +0100 @@ -21,4 +21,4 @@ error_t btle_advertising_start(void); -#endif +#endif // ifndef _BTLE_ADVERTISING_H_
--- a/btle/btle_gap.cpp Fri May 30 13:32:48 2014 +0100 +++ b/btle/btle_gap.cpp Wed Jun 04 09:19:57 2014 +0100 @@ -31,42 +31,48 @@ /**************************************************************************/ error_t btle_gap_init(void) { - ble_gap_conn_params_t gap_conn_params = { 0 }; + ble_gap_conn_params_t gap_conn_params = {0}; - gap_conn_params.min_conn_interval = msec_to_1_25msec(CFG_GAP_CONNECTION_MIN_INTERVAL_MS) ; // in 1.25ms unit - gap_conn_params.max_conn_interval = msec_to_1_25msec(CFG_GAP_CONNECTION_MAX_INTERVAL_MS) ; // in 1.25ms unit - gap_conn_params.slave_latency = CFG_GAP_CONNECTION_SLAVE_LATENCY ; - gap_conn_params.conn_sup_timeout = CFG_GAP_CONNECTION_SUPERVISION_TIMEOUT_MS / 10 ; // in 10ms unit + gap_conn_params.min_conn_interval = msec_to_1_25msec( + CFG_GAP_CONNECTION_MIN_INTERVAL_MS); // in 1.25ms units + gap_conn_params.max_conn_interval = msec_to_1_25msec( + CFG_GAP_CONNECTION_MAX_INTERVAL_MS); // in 1.25ms unit + gap_conn_params.slave_latency = CFG_GAP_CONNECTION_SLAVE_LATENCY; + gap_conn_params.conn_sup_timeout = + CFG_GAP_CONNECTION_SUPERVISION_TIMEOUT_MS / 10; // in 10ms unit - ble_gap_conn_sec_mode_t sec_mode; - BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode); // no security is needed + ble_gap_conn_sec_mode_t sec_mode; + BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode); // no security is needed - ASSERT_STATUS( sd_ble_gap_device_name_set(&sec_mode, (const uint8_t *) CFG_GAP_LOCAL_NAME, strlen(CFG_GAP_LOCAL_NAME)) ); - ASSERT_STATUS( sd_ble_gap_appearance_set(CFG_GAP_APPEARANCE) ); - ASSERT_STATUS( sd_ble_gap_ppcp_set(&gap_conn_params) ); - ASSERT_STATUS( sd_ble_gap_tx_power_set(CFG_BLE_TX_POWER_LEVEL) ); + ASSERT_STATUS( sd_ble_gap_device_name_set(&sec_mode, + (const uint8_t *) + CFG_GAP_LOCAL_NAME, + strlen(CFG_GAP_LOCAL_NAME))); + ASSERT_STATUS( sd_ble_gap_appearance_set(CFG_GAP_APPEARANCE)); + ASSERT_STATUS( sd_ble_gap_ppcp_set(&gap_conn_params)); + ASSERT_STATUS( sd_ble_gap_tx_power_set(CFG_BLE_TX_POWER_LEVEL)); - /* Connection Parameters */ - enum { - FIRST_UPDATE_DELAY = APP_TIMER_TICKS(5000, CFG_TIMER_PRESCALER), - NEXT_UPDATE_DELAY = APP_TIMER_TICKS(5000, CFG_TIMER_PRESCALER), - MAX_UPDATE_COUNT = 3 - }; + /* Connection Parameters */ + enum { + FIRST_UPDATE_DELAY = APP_TIMER_TICKS(5000, CFG_TIMER_PRESCALER), + NEXT_UPDATE_DELAY = APP_TIMER_TICKS(5000, CFG_TIMER_PRESCALER), + MAX_UPDATE_COUNT = 3 + }; - ble_conn_params_init_t cp_init = { 0 }; + ble_conn_params_init_t cp_init = {0}; - cp_init.p_conn_params = NULL ; - cp_init.first_conn_params_update_delay = FIRST_UPDATE_DELAY ; - cp_init.next_conn_params_update_delay = NEXT_UPDATE_DELAY ; - cp_init.max_conn_params_update_count = MAX_UPDATE_COUNT ; - cp_init.start_on_notify_cccd_handle = BLE_GATT_HANDLE_INVALID ; - cp_init.disconnect_on_fail = true ; - cp_init.evt_handler = NULL ; - cp_init.error_handler = error_callback; + cp_init.p_conn_params = NULL; + cp_init.first_conn_params_update_delay = FIRST_UPDATE_DELAY; + cp_init.next_conn_params_update_delay = NEXT_UPDATE_DELAY; + cp_init.max_conn_params_update_count = MAX_UPDATE_COUNT; + cp_init.start_on_notify_cccd_handle = BLE_GATT_HANDLE_INVALID; + cp_init.disconnect_on_fail = true; + cp_init.evt_handler = NULL; + cp_init.error_handler = error_callback; - ASSERT_STATUS ( ble_conn_params_init(&cp_init) ); + ASSERT_STATUS ( ble_conn_params_init(&cp_init)); - return ERROR_NONE; + return ERROR_NONE; } /**************************************************************************/ @@ -81,10 +87,10 @@ /**************************************************************************/ static inline uint32_t msec_to_1_25msec(uint32_t interval_ms) { - return (interval_ms * 4) / 5 ; + return (interval_ms * 4) / 5; } static void error_callback(uint32_t nrf_error) { - ASSERT_STATUS_RET_VOID( nrf_error ); + ASSERT_STATUS_RET_VOID( nrf_error ); }
--- a/btle/btle_gap.h Fri May 30 13:32:48 2014 +0100 +++ b/btle/btle_gap.h Wed Jun 04 09:19:57 2014 +0100 @@ -21,4 +21,4 @@ error_t btle_gap_init(void); -#endif +#endif // ifndef _BTLE_GAP_H_
--- a/nRF51Gap.cpp Fri May 30 13:32:48 2014 +0100 +++ b/nRF51Gap.cpp Wed Jun 04 09:19:57 2014 +0100 @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + #include "nRF51Gap.h" #include "mbed.h" @@ -34,16 +34,16 @@ The optional Scan Response payload if the advertising type is set to \ref GapAdvertisingParams::ADV_SCANNABLE_UNDIRECTED in \ref GapAdveritinngParams - + @returns \ref ble_error_t - + @retval BLE_ERROR_NONE Everything executed properly @retval BLE_ERROR_BUFFER_OVERFLOW The proposed action would cause a buffer overflow. All advertising payloads must be <= 31 bytes, for example. - + @retval BLE_ERROR_NOT_IMPLEMENTED A feature was requested that is not yet supported in the nRF51 firmware or hardware. @@ -58,18 +58,17 @@ @endcode */ /**************************************************************************/ -ble_error_t nRF51Gap::setAdvertisingData(const GapAdvertisingData & advData, const GapAdvertisingData & scanResponse) +ble_error_t nRF51Gap::setAdvertisingData(const GapAdvertisingData &advData, + const GapAdvertisingData &scanResponse) { /* Make sure we don't exceed the advertising payload length */ - if (advData.getPayloadLen() > GAP_ADVERTISING_DATA_MAX_PAYLOAD) - { + if (advData.getPayloadLen() > GAP_ADVERTISING_DATA_MAX_PAYLOAD) { return BLE_ERROR_BUFFER_OVERFLOW; } - + /* Make sure we have a payload! */ - if (advData.getPayloadLen() == 0) - { - return BLE_ERROR_PARAM_OUT_OF_RANGE; + if (advData.getPayloadLen() == 0) { + return BLE_ERROR_PARAM_OUT_OF_RANGE; } /* Check the scan response payload limits */ @@ -86,13 +85,19 @@ // return BLE_ERROR_PARAM_OUT_OF_RANGE; // } //} - + /* Send advertising data! */ - ASSERT( ERROR_NONE == sd_ble_gap_adv_data_set(advData.getPayload(), advData.getPayloadLen(), - scanResponse.getPayload(), scanResponse.getPayloadLen()), BLE_ERROR_PARAM_OUT_OF_RANGE); + ASSERT(ERROR_NONE == + sd_ble_gap_adv_data_set(advData.getPayload(), + advData.getPayloadLen(), + scanResponse.getPayload(), + scanResponse.getPayloadLen()), + BLE_ERROR_PARAM_OUT_OF_RANGE); - /* Make sure the GAP Service appearance value is aligned with the appearance from GapAdvertisingData */ - ASSERT( ERROR_NONE == sd_ble_gap_appearance_set(advData.getAppearance()), BLE_ERROR_PARAM_OUT_OF_RANGE); + /* Make sure the GAP Service appearance value is aligned with the + *appearance from GapAdvertisingData */ + ASSERT(ERROR_NONE == sd_ble_gap_appearance_set(advData.getAppearance()), + BLE_ERROR_PARAM_OUT_OF_RANGE); /* ToDo: Perform some checks on the payload, for example the Scan Response can't */ /* contains a flags AD type, etc. */ @@ -104,14 +109,14 @@ /*! @brief Starts the BLE HW, initialising any services that were added before this function was called. - + @note All services must be added before calling this function! - + @returns ble_error_t - + @retval BLE_ERROR_NONE Everything executed properly - + @section EXAMPLE @code @@ -119,63 +124,63 @@ @endcode */ /**************************************************************************/ -ble_error_t nRF51Gap::startAdvertising(const GapAdvertisingParams & params) +ble_error_t nRF51Gap::startAdvertising(const GapAdvertisingParams ¶ms) { - /* Make sure we support the advertising type */ - if (params.getAdvertisingType() == GapAdvertisingParams::ADV_CONNECTABLE_DIRECTED) - { + /* Make sure we support the advertising type */ + if (params.getAdvertisingType() == + GapAdvertisingParams::ADV_CONNECTABLE_DIRECTED) { /* ToDo: This requires a propery security implementation, etc. */ return BLE_ERROR_NOT_IMPLEMENTED; } /* Check interval range */ - if (params.getAdvertisingType() == GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED) - { + if (params.getAdvertisingType() == + GapAdvertisingParams::ADV_NON_CONNECTABLE_UNDIRECTED) { /* Min delay is slightly longer for unconnectable devices */ if ((params.getInterval() < GAP_ADV_PARAMS_INTERVAL_MIN_NONCON) || - (params.getInterval() > GAP_ADV_PARAMS_INTERVAL_MAX)) - { + (params.getInterval() > GAP_ADV_PARAMS_INTERVAL_MAX)) { return BLE_ERROR_PARAM_OUT_OF_RANGE; } - } - else - { + } else { if ((params.getInterval() < GAP_ADV_PARAMS_INTERVAL_MIN) || - (params.getInterval() > GAP_ADV_PARAMS_INTERVAL_MAX)) - { + (params.getInterval() > GAP_ADV_PARAMS_INTERVAL_MAX)) { return BLE_ERROR_PARAM_OUT_OF_RANGE; } } /* Check timeout is zero for Connectable Directed */ - if ((params.getAdvertisingType() == GapAdvertisingParams::ADV_CONNECTABLE_DIRECTED) && - (params.getTimeout() != 0)) - { + if ((params.getAdvertisingType() == + GapAdvertisingParams::ADV_CONNECTABLE_DIRECTED) && + (params.getTimeout() != 0)) { /* Timeout must be 0 with this type, although we'll never get here */ /* since this isn't implemented yet anyway */ return BLE_ERROR_PARAM_OUT_OF_RANGE; } /* Check timeout for other advertising types */ - if ((params.getAdvertisingType() != GapAdvertisingParams::ADV_CONNECTABLE_DIRECTED) && - (params.getTimeout() > GAP_ADV_PARAMS_TIMEOUT_MAX)) - { + if ((params.getAdvertisingType() != + GapAdvertisingParams::ADV_CONNECTABLE_DIRECTED) && + (params.getTimeout() > GAP_ADV_PARAMS_TIMEOUT_MAX)) { return BLE_ERROR_PARAM_OUT_OF_RANGE; } /* Start Advertising */ - ble_gap_adv_params_t adv_para = { 0 }; + ble_gap_adv_params_t adv_para = {0}; - adv_para.type = params.getAdvertisingType() ; - adv_para.p_peer_addr = NULL ; // Undirected advertisement - adv_para.fp = BLE_GAP_ADV_FP_ANY ; - adv_para.p_whitelist = NULL ; - adv_para.interval = params.getInterval() ; // advertising interval (in units of 0.625 ms) - adv_para.timeout = params.getTimeout() ; + adv_para.type = params.getAdvertisingType(); + adv_para.p_peer_addr = NULL; // Undirected + // advertisement + adv_para.fp = BLE_GAP_ADV_FP_ANY; + adv_para.p_whitelist = NULL; + adv_para.interval = params.getInterval(); // advertising + // interval (in units + // of 0.625 ms) + adv_para.timeout = params.getTimeout(); - ASSERT( ERROR_NONE == sd_ble_gap_adv_start(&adv_para), BLE_ERROR_PARAM_OUT_OF_RANGE); - - state.advertising = 1; + ASSERT(ERROR_NONE == sd_ble_gap_adv_start(&adv_para), + BLE_ERROR_PARAM_OUT_OF_RANGE); + + state.advertising = 1; return BLE_ERROR_NONE; } @@ -183,12 +188,12 @@ /**************************************************************************/ /*! @brief Stops the BLE HW and disconnects from any devices - + @returns ble_error_t - + @retval BLE_ERROR_NONE Everything executed properly - + @section EXAMPLE @code @@ -198,23 +203,23 @@ /**************************************************************************/ ble_error_t nRF51Gap::stopAdvertising(void) { - /* Stop Advertising */ - ASSERT( ERROR_NONE == sd_ble_gap_adv_stop(), BLE_ERROR_PARAM_OUT_OF_RANGE); + /* Stop Advertising */ + ASSERT(ERROR_NONE == sd_ble_gap_adv_stop(), BLE_ERROR_PARAM_OUT_OF_RANGE); - state.advertising = 0; + state.advertising = 0; - return BLE_ERROR_NONE; + return BLE_ERROR_NONE; } /**************************************************************************/ /*! @brief Disconnects if we are connected to a central device - + @returns ble_error_t - + @retval BLE_ERROR_NONE Everything executed properly - + @section EXAMPLE @code @@ -224,14 +229,16 @@ /**************************************************************************/ ble_error_t nRF51Gap::disconnect(void) { - state.advertising = 0; - state.connected = 0; - - /* Disconnect if we are connected to a central device */ - ASSERT_INT(ERROR_NONE, sd_ble_gap_disconnect(m_connectionHandle, BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION), - BLE_ERROR_PARAM_OUT_OF_RANGE); - - return BLE_ERROR_NONE; + state.advertising = 0; + state.connected = 0; + + /* Disconnect if we are connected to a central device */ + ASSERT_INT(ERROR_NONE, + sd_ble_gap_disconnect(m_connectionHandle, + BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION), + BLE_ERROR_PARAM_OUT_OF_RANGE); + + return BLE_ERROR_NONE; } /**************************************************************************/ @@ -241,9 +248,9 @@ /**************************************************************************/ void nRF51Gap::setConnectionHandle(uint16_t con_handle) { - m_connectionHandle = con_handle; + m_connectionHandle = con_handle; } - + /**************************************************************************/ /*! @brief Gets the 16-bit connection handle @@ -251,13 +258,13 @@ /**************************************************************************/ uint16_t nRF51Gap::getConnectionHandle(void) { - return m_connectionHandle; + return m_connectionHandle; } - + /**************************************************************************/ /*! @brief Sets the BLE device address - + @returns ble_error_t @section EXAMPLE @@ -272,13 +279,17 @@ /**************************************************************************/ ble_error_t nRF51Gap::setAddress(addr_type_t type, const uint8_t address[6]) { - if ( type > ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE) return BLE_ERROR_PARAM_OUT_OF_RANGE; - - ble_gap_addr_t dev_addr; - dev_addr.addr_type = type; - memcpy(dev_addr.addr, address, 6); - - ASSERT_INT(ERROR_NONE, sd_ble_gap_address_set(&dev_addr), BLE_ERROR_PARAM_OUT_OF_RANGE); - - return BLE_ERROR_NONE; + if (type > ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE) { + return BLE_ERROR_PARAM_OUT_OF_RANGE; + } + + ble_gap_addr_t dev_addr; + dev_addr.addr_type = type; + memcpy(dev_addr.addr, address, 6); + + ASSERT_INT(ERROR_NONE, + sd_ble_gap_address_set(&dev_addr), + BLE_ERROR_PARAM_OUT_OF_RANGE); + + return BLE_ERROR_NONE; }
--- a/nRF51Gap.h Fri May 30 13:32:48 2014 +0100 +++ b/nRF51Gap.h Wed Jun 04 09:19:57 2014 +0100 @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - + #ifndef __NRF51822_GAP_H__ #define __NRF51822_GAP_H__ @@ -32,30 +32,33 @@ /**************************************************************************/ class nRF51Gap : public Gap { - public: - static nRF51Gap& getInstance() - { - static nRF51Gap m_instance; - return m_instance; - } +public: + static nRF51Gap& getInstance() + { + static nRF51Gap m_instance; + return m_instance; + } - /* Functions that must be implemented from Gap */ - virtual ble_error_t setAddress(addr_type_t type, - const uint8_t address[6]); - virtual ble_error_t setAdvertisingData(const GapAdvertisingData &, - const GapAdvertisingData &); - virtual ble_error_t startAdvertising(const GapAdvertisingParams &); - virtual ble_error_t stopAdvertising(void); - virtual ble_error_t disconnect(void); - - void setConnectionHandle(uint16_t con_handle); - uint16_t getConnectionHandle(void); - - private: - uint16_t m_connectionHandle; - nRF51Gap() { m_connectionHandle = BLE_CONN_HANDLE_INVALID; }; - nRF51Gap(nRF51Gap const&); - void operator=(nRF51Gap const&); + /* Functions that must be implemented from Gap */ + virtual ble_error_t setAddress(addr_type_t type, + const uint8_t address[6]); + virtual ble_error_t setAdvertisingData(const GapAdvertisingData &, + const GapAdvertisingData &); + virtual ble_error_t startAdvertising(const GapAdvertisingParams &); + virtual ble_error_t stopAdvertising(void); + virtual ble_error_t disconnect(void); + + void setConnectionHandle(uint16_t con_handle); + uint16_t getConnectionHandle(void); + +private: + uint16_t m_connectionHandle; + nRF51Gap() { + m_connectionHandle = BLE_CONN_HANDLE_INVALID; + } + + nRF51Gap(nRF51Gap const&); + void operator=(nRF51Gap const&); }; -#endif +#endif // ifndef __NRF51822_GAP_H__