@ -37,31 +37,30 @@
* OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
*/
# include <stdio.h>
# include <stdint.h>
# include <stdbool.h>
# include "nordic_common.h"
# include <stdint.h>
# include <stdio.h>
# include "app_error.h"
# include "app_uart.h"
# include "ble_db_discovery.h"
# include "app_timer.h"
# include "app_uart.h"
# include "app_util.h"
# include "bsp_btn_ble.h"
# include "ble.h"
# include "ble_db_discovery.h"
# include "ble_gap.h"
# include "ble_hci.h"
# include "nrf_sdh.h"
# include "nrf_sdh_ble.h"
# include "nrf_sdh_soc.h"
# include "zble_nus_c.h"
# include "bsp_btn_ble.h"
# include "nordic_common.h"
# include "nrf_ble_gatt.h"
# include "nrf_pwr_mgmt.h"
# include "nrf_ble_scan.h"
# include "nrf_log.h"
# include "nrf_log_ctrl.h"
# include "nrf_log_default_backends.h"
# include "nrf_pwr_mgmt.h"
# include "nrf_sdh.h"
# include "nrf_sdh_ble.h"
# include "nrf_sdh_soc.h"
# include "zble_nus_c.h"
# define APP_BLE_CONN_CFG_TAG 1 /**< Tag that refers to the BLE stack configuration set with @ref sd_ble_cfg_set. The default tag is @ref BLE_CONN_CFG_TAG_DEFAULT. */
# define APP_BLE_OBSERVER_PRIO 3 /**< BLE observer priority of the application. There is no need to modify this value. */
@ -73,24 +72,17 @@
# define ECHOBACK_BLE_UART_DATA 0 /**< Echo the UART data that is received over the Nordic UART Service (NUS) back to the sender. */
BLE_NUS_C_DEF ( m_ble_nus_c ) ; /**< BLE Nordic UART Service (NUS) client instance. */
NRF_BLE_GATT_DEF ( m_gatt ) ; /**< GATT module instance. */
BLE_DB_DISCOVERY_DEF ( m_db_disc ) ; /**< Database discovery module instance. */
NRF_BLE_SCAN_DEF ( m_scan ) ; /**< Scanning Module instance. */
NRF_BLE_GQ_DEF ( m_ble_gatt_queue , /**< BLE GATT Queue instance. */
NRF_SDH_BLE_CENTRAL_LINK_COUNT ,
NRF_BLE_GQ_QUEUE_SIZE ) ;
NRF_SDH_BLE_CENTRAL_LINK_COUNT , NRF_BLE_GQ_QUEUE_SIZE ) ;
static uint16_t m_ble_nus_max_data_len = BLE_GATT_ATT_MTU_DEFAULT - OPCODE_LENGTH - HANDLE_LENGTH ; /**< Maximum length of data (in bytes) that can be transmitted to the peer by the Nordic UART service module. */
/**@brief NUS UUID. */
static ble_uuid_t const m_nus_uuid =
{
. uuid = BLE_UUID_NUS_SERVICE ,
. type = NUS_SERVICE_UUID_TYPE
} ;
static ble_uuid_t const m_nus_uuid = { . uuid = BLE_UUID_NUS_SERVICE , . type = NUS_SERVICE_UUID_TYPE } ;
/**@brief Function for handling asserts in the SoftDevice.
*
@ -103,25 +95,16 @@ static ble_uuid_t const m_nus_uuid =
* @ param [ in ] line_num Line number of the failing assert call .
* @ param [ in ] p_file_name File name of the failing assert call .
*/
void assert_nrf_callback ( uint16_t line_num , const uint8_t * p_file_name )
{
app_error_handler ( 0xDEADBEEF , line_num , p_file_name ) ;
}
void assert_nrf_callback ( uint16_t line_num , const uint8_t * p_file_name ) { app_error_handler ( 0xDEADBEEF , line_num , p_file_name ) ; }
/**@brief Function for handling the Nordic UART Service Client errors.
*
* @ param [ in ] nrf_error Error code containing information about what went wrong .
*/
static void nus_error_handler ( uint32_t nrf_error )
{
APP_ERROR_HANDLER ( nrf_error ) ;
}
static void nus_error_handler ( uint32_t nrf_error ) { APP_ERROR_HANDLER ( nrf_error ) ; }
/**@brief Function to start scanning. */
static void scan_start ( void )
{
static void scan_start ( void ) {
ret_code_t ret ;
ret = nrf_ble_scan_start ( & m_scan ) ;
@ -131,38 +114,24 @@ static void scan_start(void)
APP_ERROR_CHECK ( ret ) ;
}
/**@brief Function for handling Scanning Module events.
*/
static void scan_evt_handler ( scan_evt_t const * p_scan_evt )
{
static void scan_evt_handler ( scan_evt_t const * p_scan_evt ) {
ret_code_t err_code ;
switch ( p_scan_evt - > scan_evt_id )
{
case NRF_BLE_SCAN_EVT_CONNECTING_ERROR :
{
switch ( p_scan_evt - > scan_evt_id ) {
case NRF_BLE_SCAN_EVT_CONNECTING_ERROR : {
err_code = p_scan_evt - > params . connecting_err . err_code ;
APP_ERROR_CHECK ( err_code ) ;
} break ;
case NRF_BLE_SCAN_EVT_CONNECTED :
{
ble_gap_evt_connected_t const * p_connected =
p_scan_evt - > params . connected . p_connected ;
case NRF_BLE_SCAN_EVT_CONNECTED : {
ble_gap_evt_connected_t const * p_connected = p_scan_evt - > params . connected . p_connected ;
/ / Scan is automatically stopped by the connection .
NRF_LOG_INFO ( " Connecting to target %02x%02x%02x%02x%02x%02x " ,
p_connected - > peer_addr . addr [ 0 ] ,
p_connected - > peer_addr . addr [ 1 ] ,
p_connected - > peer_addr . addr [ 2 ] ,
p_connected - > peer_addr . addr [ 3 ] ,
p_connected - > peer_addr . addr [ 4 ] ,
p_connected - > peer_addr . addr [ 5 ]
) ;
NRF_LOG_INFO ( " Connecting to target %02x%02x%02x%02x%02x%02x " , p_connected - > peer_addr . addr [ 0 ] , p_connected - > peer_addr . addr [ 1 ] , p_connected - > peer_addr . addr [ 2 ] , p_connected - > peer_addr . addr [ 3 ] , p_connected - > peer_addr . addr [ 4 ] , p_connected - > peer_addr . addr [ 5 ] ) ;
} break ;
case NRF_BLE_SCAN_EVT_SCAN_TIMEOUT :
{
case NRF_BLE_SCAN_EVT_SCAN_TIMEOUT : {
NRF_LOG_INFO ( " Scan timed out. " ) ;
scan_start ( ) ;
} break ;
@ -172,14 +141,12 @@ static void scan_evt_handler(scan_evt_t const * p_scan_evt)
}
}
/**@brief Function for initializing the scanning and setting the filters.
*/
static char m_target_periph_name0 [ 20 ] = " M1002 " ; /**< Name of the device we try to connect to. This name is searched in the scan report data*/
static char m_target_periph_name1 [ 20 ] = " M1001 " ; /**< Name of the device we try to connect to. This name is searched in the scan report data*/
static char m_target_periph_name2 [ 20 ] = " iflytop " ; /**< Name of the device we try to connect to. This name is searched in the scan report data*/
static void scan_init ( void )
{
static void scan_init ( void ) {
ret_code_t err_code ;
nrf_ble_scan_init_t init_scan ;
@ -191,7 +158,6 @@ static void scan_init(void)
err_code = nrf_ble_scan_init ( & m_scan , & init_scan , scan_evt_handler ) ;
APP_ERROR_CHECK ( err_code ) ;
/ / err_code = nrf_ble_scan_filter_set ( & m_scan , SCAN_UUID_FILTER , & m_nus_uuid ) ;
/ / APP_ERROR_CHECK ( err_code ) ;
@ -204,10 +170,8 @@ static void scan_init(void)
err_code = nrf_ble_scan_filters_enable ( & m_scan , NRF_BLE_SCAN_NAME_FILTER , false ) ;
APP_ERROR_CHECK ( err_code ) ;
}
/**@brief Function for handling database discovery events.
*
* @ details This function is a callback function to handle events from the database discovery module .
@ -216,11 +180,7 @@ static void scan_init(void)
*
* @ param [ in ] p_event Pointer to the database discovery event .
*/
static void db_disc_handler ( ble_db_discovery_evt_t * p_evt )
{
ble_nus_c_on_db_disc_evt ( & m_ble_nus_c , p_evt ) ;
}
static void db_disc_handler ( ble_db_discovery_evt_t * p_evt ) { ble_nus_c_on_db_disc_evt ( & m_ble_nus_c , p_evt ) ; }
/**@brief Function for handling characters received by the Nordic UART Service (NUS).
*
@ -228,57 +188,46 @@ static void db_disc_handler(ble_db_discovery_evt_t * p_evt)
* If @ ref ECHOBACK_BLE_UART_DATA is set , the data is sent back to sender .
*/
static void ble_nus_chars_received_uart_print ( uint8_t * p_data , uint16_t data_len )
{
static void ble_nus_chars_received_uart_print ( uint8_t * p_data , uint16_t data_len ) {
ret_code_t ret_val ;
NRF_LOG_DEBUG ( " Receiving data. " ) ;
NRF_LOG_HEXDUMP_DEBUG ( p_data , data_len ) ;
app_uart_put ( 0xA5 ) ;
app_uart_put ( 0x5A ) ;
for ( uint32_t i = 0 ; i < data_len ; i + + )
{
do
{
app_uart_put ( 0xA5 ) ;
for ( uint32_t i = 0 ; i < data_len ; i + + ) {
do {
ret_val = app_uart_put ( p_data [ i ] ) ;
if ( ( ret_val ! = NRF_SUCCESS ) & & ( ret_val ! = NRF_ERROR_BUSY ) )
{
if ( ( ret_val ! = NRF_SUCCESS ) & & ( ret_val ! = NRF_ERROR_BUSY ) ) {
NRF_LOG_ERROR ( " app_uart_put failed for index 0x%04x. " , i ) ;
APP_ERROR_CHECK ( ret_val ) ;
}
} while ( ret_val = = NRF_ERROR_BUSY ) ;
}
app_uart_put ( 0x5A ) ;
app_uart_put ( 0xA 5 ) ;
app_uart_put ( 0x5B ) ;
app_uart_put ( 0xB 5 ) ;
}
static void ble_nus_chars_received_uart_print_ch4 ( uint8_t * p_data , uint16_t data_len )
{
static void ble_nus_chars_received_uart_print_ch4 ( uint8_t * p_data , uint16_t data_len ) {
ret_code_t ret_val ;
NRF_LOG_DEBUG ( " Receiving data. " ) ;
NRF_LOG_HEXDUMP_DEBUG ( p_data , data_len ) ;
app_uart_put ( 0xA4 ) ;
app_uart_put ( 0x4A ) ;
for ( uint32_t i = 0 ; i < data_len ; i + + )
{
do
{
app_uart_put ( 0xA4 ) ;
for ( uint32_t i = 0 ; i < data_len ; i + + ) {
do {
ret_val = app_uart_put ( p_data [ i ] ) ;
if ( ( ret_val ! = NRF_SUCCESS ) & & ( ret_val ! = NRF_ERROR_BUSY ) )
{
if ( ( ret_val ! = NRF_SUCCESS ) & & ( ret_val ! = NRF_ERROR_BUSY ) ) {
NRF_LOG_ERROR ( " app_uart_put failed for index 0x%04x. " , i ) ;
APP_ERROR_CHECK ( ret_val ) ;
}
} while ( ret_val = = NRF_ERROR_BUSY ) ;
}
app_uart_put ( 0x4A ) ;
app_uart_put ( 0xA 4 ) ;
app_uart_put ( 0x4B ) ;
app_uart_put ( 0xB 4 ) ;
}
/**@brief Function for handling app_uart events.
*
* @ details This function receives a single character from the app_uart module and appends it to
@ -288,29 +237,22 @@ static void ble_nus_chars_received_uart_print_ch4(uint8_t * p_data, uint16_t dat
static uint8_t data_array [ BLE_NUS_MAX_DATA_LEN ] ;
static uint16_t data_array_index = 0 ;
/ / static uint32_t
void uart_event_handle ( app_uart_evt_t * p_event )
{
void uart_event_handle ( app_uart_evt_t * p_event ) {
uint32_t ret_val ;
switch ( p_event - > evt_type )
{
switch ( p_event - > evt_type ) {
/**@snippet [Handling data from UART] */
case APP_UART_DATA_READY :
UNUSED_VARIABLE ( app_uart_get ( & data_array [ data_array_index ] ) ) ;
data_array_index + + ;
if (
data_array_index > = ( m_ble_nus_max_data_len ) )
{
if ( data_array_index > = ( m_ble_nus_max_data_len ) ) {
NRF_LOG_DEBUG ( " Ready to send data over BLE NUS " ) ;
NRF_LOG_HEXDUMP_DEBUG ( data_array , data_array_index ) ;
do
{
do {
ret_val = ble_nus_c_string_send ( & m_ble_nus_c , data_array , data_array_index ) ;
if ( ( ret_val ! = NRF_ERROR_INVALID_STATE ) & & ( ret_val ! = NRF_ERROR_RESOURCES ) )
{
if ( ( ret_val ! = NRF_ERROR_INVALID_STATE ) & & ( ret_val ! = NRF_ERROR_RESOURCES ) ) {
APP_ERROR_CHECK ( ret_val ) ;
}
} while ( ret_val = = NRF_ERROR_RESOURCES ) ;
@ -335,7 +277,6 @@ void uart_event_handle(app_uart_evt_t * p_event)
}
}
/**@brief Callback handling Nordic UART Service (NUS) client events.
*
* @ details This function is called to notify the application of NUS client events .
@ -346,12 +287,10 @@ void uart_event_handle(app_uart_evt_t * p_event)
/**@snippet [Handling events from the ble_nus_c module] */
static int32_t rxcnt ;
static void ble_nus_c_evt_handler ( ble_nus_c_t * p_ble_nus_c , ble_nus_c_evt_t const * p_ble_nus_evt )
{
static void ble_nus_c_evt_handler ( ble_nus_c_t * p_ble_nus_c , ble_nus_c_evt_t const * p_ble_nus_evt ) {
ret_code_t err_code ;
switch ( p_ble_nus_evt - > evt_type )
{
switch ( p_ble_nus_evt - > evt_type ) {
case BLE_NUS_C_EVT_DISCOVERY_COMPLETE :
NRF_LOG_INFO ( " Discovery complete. " ) ;
err_code = ble_nus_c_handles_assign ( p_ble_nus_c , p_ble_nus_evt - > conn_handle , & p_ble_nus_evt - > handles ) ;
@ -379,21 +318,18 @@ static void ble_nus_c_evt_handler(ble_nus_c_t * p_ble_nus_c, ble_nus_c_evt_t con
}
/**@snippet [Handling events from the ble_nus_c module] */
/**
* @ brief Function for handling shutdown events .
*
* @ param [ in ] event Shutdown type .
*/
static bool shutdown_handler ( nrf_pwr_mgmt_evt_t event )
{
static bool shutdown_handler ( nrf_pwr_mgmt_evt_t event ) {
ret_code_t err_code ;
err_code = bsp_indication_set ( BSP_INDICATE_IDLE ) ;
APP_ERROR_CHECK ( err_code ) ;
switch ( event )
{
switch ( event ) {
case NRF_PWR_MGMT_EVT_PREPARE_WAKEUP :
/ / Prepare wakeup buttons .
err_code = bsp_btn_ble_sleep_mode_prepare ( ) ;
@ -409,19 +345,16 @@ static bool shutdown_handler(nrf_pwr_mgmt_evt_t event)
NRF_PWR_MGMT_HANDLER_REGISTER ( shutdown_handler , APP_SHUTDOWN_HANDLER_PRIORITY ) ;
/**@brief Function for handling BLE events.
*
* @ param [ in ] p_ble_evt Bluetooth stack event .
* @ param [ in ] p_context Unused .
*/
static void ble_evt_handler ( ble_evt_t const * p_ble_evt , void * p_context )
{
static void ble_evt_handler ( ble_evt_t const * p_ble_evt , void * p_context ) {
ret_code_t err_code ;
ble_gap_evt_t const * p_gap_evt = & p_ble_evt - > evt . gap_evt ;
switch ( p_ble_evt - > header . evt_id )
{
switch ( p_ble_evt - > header . evt_id ) {
case BLE_GAP_EVT_CONNECTED :
err_code = ble_nus_c_handles_assign ( & m_ble_nus_c , p_ble_evt - > evt . gap_evt . conn_handle , NULL ) ;
APP_ERROR_CHECK ( err_code ) ;
@ -436,14 +369,11 @@ static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
case BLE_GAP_EVT_DISCONNECTED :
NRF_LOG_INFO ( " Disconnected. conn_handle: 0x%x, reason: 0x%x " ,
p_gap_evt - > conn_handle ,
p_gap_evt - > params . disconnected . reason ) ;
NRF_LOG_INFO ( " Disconnected. conn_handle: 0x%x, reason: 0x%x " , p_gap_evt - > conn_handle , p_gap_evt - > params . disconnected . reason ) ;
break ;
case BLE_GAP_EVT_TIMEOUT :
if ( p_gap_evt - > params . timeout . src = = BLE_GAP_TIMEOUT_SRC_CONN )
{
if ( p_gap_evt - > params . timeout . src = = BLE_GAP_TIMEOUT_SRC_CONN ) {
NRF_LOG_INFO ( " Connection Request timed out. " ) ;
}
break ;
@ -456,16 +386,13 @@ static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
case BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST :
/ / Accepting parameters requested by peer .
err_code = sd_ble_gap_conn_param_update ( p_gap_evt - > conn_handle ,
& p_gap_evt - > params . conn_param_update_request . conn_params ) ;
err_code = sd_ble_gap_conn_param_update ( p_gap_evt - > conn_handle , & p_gap_evt - > params . conn_param_update_request . conn_params ) ;
APP_ERROR_CHECK ( err_code ) ;
break ;
case BLE_GAP_EVT_PHY_UPDATE_REQUEST :
{
case BLE_GAP_EVT_PHY_UPDATE_REQUEST : {
NRF_LOG_DEBUG ( " PHY update request. " ) ;
ble_gap_phys_t const phys =
{
ble_gap_phys_t const phys = {
. rx_phys = BLE_GAP_PHY_AUTO ,
. tx_phys = BLE_GAP_PHY_AUTO ,
} ;
@ -476,16 +403,14 @@ static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
case BLE_GATTC_EVT_TIMEOUT :
/ / Disconnect on GATT Client timeout event .
NRF_LOG_DEBUG ( " GATT Client Timeout. " ) ;
err_code = sd_ble_gap_disconnect ( p_ble_evt - > evt . gattc_evt . conn_handle ,
BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION ) ;
err_code = sd_ble_gap_disconnect ( p_ble_evt - > evt . gattc_evt . conn_handle , BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION ) ;
APP_ERROR_CHECK ( err_code ) ;
break ;
case BLE_GATTS_EVT_TIMEOUT :
/ / Disconnect on GATT Server timeout event .
NRF_LOG_DEBUG ( " GATT Server Timeout. " ) ;
err_code = sd_ble_gap_disconnect ( p_ble_evt - > evt . gatts_evt . conn_handle ,
BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION ) ;
err_code = sd_ble_gap_disconnect ( p_ble_evt - > evt . gatts_evt . conn_handle , BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION ) ;
APP_ERROR_CHECK ( err_code ) ;
break ;
@ -494,13 +419,11 @@ static void ble_evt_handler(ble_evt_t const * p_ble_evt, void * p_context)
}
}
/**@brief Function for initializing the BLE stack.
*
* @ details Initializes the SoftDevice and the BLE event interrupt .
*/
static void ble_stack_init ( void )
{
static void ble_stack_init ( void ) {
ret_code_t err_code ;
err_code = nrf_sdh_enable_request ( ) ;
@ -520,12 +443,9 @@ static void ble_stack_init(void)
NRF_SDH_BLE_OBSERVER ( m_ble_observer , APP_BLE_OBSERVER_PRIO , ble_evt_handler , NULL ) ;
}
/**@brief Function for handling events from the GATT library. */
void gatt_evt_handler ( nrf_ble_gatt_t * p_gatt , nrf_ble_gatt_evt_t const * p_evt )
{
if ( p_evt - > evt_id = = NRF_BLE_GATT_EVT_ATT_MTU_UPDATED )
{
void gatt_evt_handler ( nrf_ble_gatt_t * p_gatt , nrf_ble_gatt_evt_t const * p_evt ) {
if ( p_evt - > evt_id = = NRF_BLE_GATT_EVT_ATT_MTU_UPDATED ) {
NRF_LOG_INFO ( " ATT MTU exchange completed. " ) ;
m_ble_nus_max_data_len = p_evt - > params . att_mtu_effective - OPCODE_LENGTH - HANDLE_LENGTH ;
@ -533,10 +453,8 @@ void gatt_evt_handler(nrf_ble_gatt_t * p_gatt, nrf_ble_gatt_evt_t const * p_evt)
}
}
/**@brief Function for initializing the GATT library. */
void gatt_init ( void )
{
void gatt_init ( void ) {
ret_code_t err_code ;
err_code = nrf_ble_gatt_init ( & m_gatt , gatt_evt_handler ) ;
@ -546,26 +464,21 @@ void gatt_init(void)
APP_ERROR_CHECK ( err_code ) ;
}
/**@brief Function for handling events from the BSP module.
*
* @ param [ in ] event Event generated by button press .
*/
void bsp_event_handler ( bsp_event_t event )
{
void bsp_event_handler ( bsp_event_t event ) {
ret_code_t err_code ;
switch ( event )
{
switch ( event ) {
case BSP_EVENT_SLEEP :
nrf_pwr_mgmt_shutdown ( NRF_PWR_MGMT_SHUTDOWN_GOTO_SYSOFF ) ;
break ;
case BSP_EVENT_DISCONNECT :
err_code = sd_ble_gap_disconnect ( m_ble_nus_c . conn_handle ,
BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION ) ;
if ( err_code ! = NRF_ERROR_INVALID_STATE )
{
err_code = sd_ble_gap_disconnect ( m_ble_nus_c . conn_handle , BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION ) ;
if ( err_code ! = NRF_ERROR_INVALID_STATE ) {
APP_ERROR_CHECK ( err_code ) ;
}
break ;
@ -576,34 +489,18 @@ void bsp_event_handler(bsp_event_t event)
}
/**@brief Function for initializing the UART. */
static void uart_init ( void )
{
static void uart_init ( void ) {
ret_code_t err_code ;
app_uart_comm_params_t const comm_params =
{
. rx_pin_no = RX_PIN_NUMBER ,
. tx_pin_no = TX_PIN_NUMBER ,
. rts_pin_no = RTS_PIN_NUMBER ,
. cts_pin_no = CTS_PIN_NUMBER ,
. flow_control = APP_UART_FLOW_CONTROL_DISABLED ,
. use_parity = false ,
. baud_rate = UART_BAUDRATE_BAUDRATE_Baud921600
} ;
app_uart_comm_params_t const comm_params = { . rx_pin_no = RX_PIN_NUMBER , . tx_pin_no = TX_PIN_NUMBER , . rts_pin_no = RTS_PIN_NUMBER , . cts_pin_no = CTS_PIN_NUMBER , . flow_control = APP_UART_FLOW_CONTROL_DISABLED , . use_parity = false , . baud_rate = UART_BAUDRATE_BAUDRATE_Baud921600 } ;
APP_UART_FIFO_INIT ( & comm_params ,
UART_RX_BUF_SIZE ,
UART_TX_BUF_SIZE ,
uart_event_handle ,
APP_IRQ_PRIORITY_LOWEST ,
err_code ) ;
APP_UART_FIFO_INIT ( & comm_params , UART_RX_BUF_SIZE , UART_TX_BUF_SIZE , uart_event_handle , APP_IRQ_PRIORITY_LOWEST , err_code ) ;
APP_ERROR_CHECK ( err_code ) ;
}
/**@brief Function for initializing the Nordic UART Service (NUS) client. */
static void nus_c_init ( void )
{
static void nus_c_init ( void ) {
ret_code_t err_code ;
ble_nus_c_init_t init ;
@ -615,10 +512,8 @@ static void nus_c_init(void)
APP_ERROR_CHECK ( err_code ) ;
}
/**@brief Function for initializing buttons and leds. */
static void buttons_leds_init ( void )
{
static void buttons_leds_init ( void ) {
ret_code_t err_code ;
bsp_event_t startup_event ;
@ -629,38 +524,30 @@ static void buttons_leds_init(void)
APP_ERROR_CHECK ( err_code ) ;
}
/**@brief Function for initializing the timer. */
static void timer_init ( void )
{
static void timer_init ( void ) {
ret_code_t err_code = app_timer_init ( ) ;
APP_ERROR_CHECK ( err_code ) ;
}
/**@brief Function for initializing the nrf log module. */
static void log_init ( void )
{
static void log_init ( void ) {
ret_code_t err_code = NRF_LOG_INIT ( NULL ) ;
APP_ERROR_CHECK ( err_code ) ;
NRF_LOG_DEFAULT_BACKENDS_INIT ( ) ;
}
/**@brief Function for initializing power management.
*/
static void power_management_init ( void )
{
static void power_management_init ( void ) {
ret_code_t err_code ;
err_code = nrf_pwr_mgmt_init ( ) ;
APP_ERROR_CHECK ( err_code ) ;
}
/** @brief Function for initializing the database discovery module. */
static void db_discovery_init ( void )
{
static void db_discovery_init ( void ) {
ble_db_discovery_init_t db_init ;
memset ( & db_init , 0 , sizeof ( ble_db_discovery_init_t ) ) ;
@ -672,15 +559,12 @@ static void db_discovery_init(void)
APP_ERROR_CHECK ( err_code ) ;
}
/**@brief Function for handling the idle state (main loop).
*
* @ details Handles any pending log operations , then sleeps until the next event occurs .
*/
static void idle_state_handle ( void )
{
if ( NRF_LOG_PROCESS ( ) = = false )
{
static void idle_state_handle ( void ) {
if ( NRF_LOG_PROCESS ( ) = = false ) {
nrf_pwr_mgmt_run ( ) ;
}
}
@ -701,8 +585,7 @@ static void uart_send_tmr_cb(void* p_context) { //
}
last_data_array_index = data_array_index ;
}
int main ( void )
{
int main ( void ) {
/ / Initialize .
log_init ( ) ;
timer_init ( ) ;
@ -731,8 +614,7 @@ int main(void)
scan_start ( ) ;
/ / Enter main loop .
for ( ; ; )
{
for ( ; ; ) {
idle_state_handle ( ) ;
}
}