nRF51 SDK
|
Blood Pressure Service Sample Application main file. More...
Typedefs | |
typedef struct bps_meas_sim_value_s | bps_meas_sim_value_t |
Functions | |
void | app_error_handler (uint32_t error_code, uint32_t line_num, const uint8_t *p_file_name) |
Function for error handling, which is called when an error has occurred. More... | |
void | assert_nrf_callback (uint16_t line_num, const uint8_t *p_file_name) |
Callback function for asserts in the SoftDevice. More... | |
static void | battery_level_update (void) |
Function for performing battery measurement, and update Battery Level characteristic in Battery Service. | |
static void | battery_level_meas_timeout_handler (void *p_context) |
Function for handling the Battery measurement timer timeout. More... | |
static void | bps_sim_measurement (ble_bps_meas_t *p_meas) |
Function for populating simulated blood pressure measurements. | |
static void | leds_init (void) |
Function for the LEDs initialization. More... | |
static void | timers_init (void) |
Function for the Timer initialization. More... | |
static void | gap_params_init (void) |
Function for the GAP initialization. More... | |
static void | advertising_init (void) |
Function for initializing the Advertising functionality. More... | |
static void | blood_pressure_measurement_send (void) |
Function for simulating and sending one Blood Pressure Measurement. | |
static void | on_bps_evt (ble_bps_t *p_bps, ble_bps_evt_t *p_evt) |
Function for handling the Blood Pressure Service events. More... | |
static void | services_init (void) |
Function for initializing services that will be used by the application. More... | |
static void | sensor_sim_init (void) |
Function for initializing the sensor simulators. | |
static void | sec_params_init (void) |
Function for initializing security parameters. | |
static void | application_timers_start (void) |
Function for starting application timers. | |
static void | advertising_start (void) |
Function for starting advertising. | |
static void | on_conn_params_evt (ble_conn_params_evt_t *p_evt) |
Function for handling the Connection Parameter events. More... | |
static void | conn_params_error_handler (uint32_t nrf_error) |
Function for handling a Connection Parameters error. More... | |
static void | conn_params_init (void) |
Function for initializing the Connection Parameters module. | |
static void | on_ble_evt (ble_evt_t *p_ble_evt) |
Function for handling the Application's BLE Stack events. More... | |
static void | ble_evt_dispatch (ble_evt_t *p_ble_evt) |
Function for dispatching a BLE stack event to all modules with a BLE stack event handler. More... | |
static void | ble_stack_init (void) |
Function for initializing the BLE stack. More... | |
static void | button_event_handler (uint8_t pin_no) |
Function for handling button events. More... | |
static void | gpiote_init (void) |
Function for initializing the GPIOTE handler module. | |
static void | buttons_init (void) |
Function for initializing the button handler module. | |
static void | bond_manager_error_handler (uint32_t nrf_error) |
Function for handling a Bond Manager error. More... | |
static void | bond_evt_handler (ble_bondmngr_evt_t *p_evt) |
Function for handling the Bond Manager events. More... | |
static void | bond_manager_init (void) |
Function for the Bond Manager initialization. | |
static void | radio_notification_init (void) |
Function for initializing the Radio Notification events. | |
static void | power_manage (void) |
Function for the Power manager. | |
int | main (void) |
Function for application main entry. | |
Variables | |
static uint16_t | m_conn_handle = BLE_CONN_HANDLE_INVALID |
static ble_gap_sec_params_t | m_sec_params |
static ble_gap_adv_params_t | m_adv_params |
static ble_bas_t | m_bas |
static ble_bps_t | m_bps |
static bps_meas_sim_value_t | m_bps_meas_sim_val [NUM_SIM_MEAS_VALUES] |
static bool | m_bps_meas_ind_conf_pending = false |
static ble_sensorsim_cfg_t | m_battery_sim_cfg |
static ble_sensorsim_state_t | m_battery_sim_state |
static app_timer_id_t | m_battery_timer_id |
This file contains the source code for a sample application using the Blood Pressure service It also includes the sample code for Battery and Device Information services. This application uses the srvlib_conn_params module.
#define SEND_MEAS_BUTTON_PIN_NO NRF6310_BUTTON_0 |
Button used for sending a measurement.
#define BONDMNGR_DELETE_BUTTON_PIN_NO NRF6310_BUTTON_1 |
Button used for deleting all bonded masters during startup.
#define DEVICE_NAME "Nordic_BPS" |
Name of device. Will be included in the advertising data.
#define MANUFACTURER_NAME "NordicSemiconductor" |
Manufacturer. Will be passed to Device Information Service.
#define MODEL_NUM "NS-BPS-EXAMPLE" |
Model number. Will be passed to Device Information Service.
#define MANUFACTURER_ID 0x1122334455 |
Manufacturer ID, part of System ID. Will be passed to Device Information Service.
#define ORG_UNIQUE_ID 0x667788 |
Organizational Unique ID, part of System ID. Will be passed to Device Information Service.
#define APP_ADV_INTERVAL 40 |
The advertising interval (in units of 0.625 ms. This value corresponds to 25 ms).
#define APP_ADV_TIMEOUT_IN_SECONDS 180 |
The advertising timeout in units of seconds.
#define APP_TIMER_PRESCALER 0 |
Value of the RTC1 PRESCALER register.
#define APP_TIMER_MAX_TIMERS 3 |
Maximum number of simultaneously created timers.
#define APP_TIMER_OP_QUEUE_SIZE 4 |
Size of timer operation queues.
#define NUM_SIM_MEAS_VALUES 4 |
Number of simulated measurements to cycle through.
#define SIM_MEAS_1_SYSTOLIC 117 |
Simulated measurement value for systolic pressure.
#define SIM_MEAS_1_DIASTOLIC 76 |
Simulated measurement value for diastolic pressure.
#define SIM_MEAS_1_MEAN_AP 103 |
Simulated measurement value for mean arterial pressure.
#define SIM_MEAS_1_PULSE_RATE 60 |
Simulated measurement value for pulse rate.
#define SIM_MEAS_2_SYSTOLIC 121 |
Simulated measurement value for systolic pressure.
#define SIM_MEAS_2_DIASTOLIC 81 |
Simulated measurement value for diastolic pressure.
#define SIM_MEAS_2_MEAN_AP 106 |
Simulated measurement value for mean arterial pressure.
#define SIM_MEAS_2_PULSE_RATE 72 |
Simulated measurement value for pulse rate.
#define SIM_MEAS_3_SYSTOLIC 138 |
Simulated measurement value for systolic pressure.
#define SIM_MEAS_3_DIASTOLIC 88 |
Simulated measurement value for diastolic pressure.
#define SIM_MEAS_3_MEAN_AP 120 |
Simulated measurement value for mean arterial pressure.
#define SIM_MEAS_3_PULSE_RATE 105 |
Simulated measurement value for pulse rate.
#define SIM_MEAS_4_SYSTOLIC 145 |
Simulated measurement value for systolic pressure.
#define SIM_MEAS_4_DIASTOLIC 100 |
Simulated measurement value for diastolic pressure.
#define SIM_MEAS_4_MEAN_AP 131 |
Simulated measurement value for mean arterial pressure.
#define SIM_MEAS_4_PULSE_RATE 125 |
Simulated measurement value for pulse rate.
#define BATTERY_LEVEL_MEAS_INTERVAL APP_TIMER_TICKS(2000, APP_TIMER_PRESCALER) |
Battery level measurement interval (ticks).
#define MIN_BATTERY_LEVEL 81 |
Minimum battery level as returned by the simulated measurement function.
#define MAX_BATTERY_LEVEL 100 |
Maximum battery level as returned by the simulated measurement function.
#define BATTERY_LEVEL_INCREMENT 1 |
Value by which the battery level is incremented/decremented for each call to the simulated measurement function.
#define MIN_CONN_INTERVAL MSEC_TO_UNITS(500, UNIT_1_25_MS) |
Minimum acceptable connection interval (0.5 seconds).
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(1000, UNIT_1_25_MS) |
Maximum acceptable connection interval (1 second).
#define SLAVE_LATENCY 0 |
Slave latency.
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(4000, UNIT_10_MS) |
Connection supervisory timeout (4 seconds).
#define FIRST_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000, APP_TIMER_PRESCALER) |
Time from initiating event (connect or start of indication) to first time sd_ble_gap_conn_param_update is called (5 seconds).
#define NEXT_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000, APP_TIMER_PRESCALER) |
Time between each call to sd_ble_gap_conn_param_update after the first (30 seconds).
#define MAX_CONN_PARAMS_UPDATE_COUNT 3 |
Number of attempts before giving up the connection parameter negotiation.
#define APP_GPIOTE_MAX_USERS 1 |
Maximum number of users of the GPIOTE handler.
#define BUTTON_DETECTION_DELAY APP_TIMER_TICKS(50, APP_TIMER_PRESCALER) |
Delay from a GPIOTE event until a button is reported as pushed (in number of timer ticks).
#define SEC_PARAM_TIMEOUT 30 |
Timeout for Pairing Request or Security Request (in seconds).
#define SEC_PARAM_BOND 1 |
Perform bonding.
#define SEC_PARAM_MITM 0 |
Man In The Middle protection not required.
#define SEC_PARAM_IO_CAPABILITIES BLE_GAP_IO_CAPS_NONE |
No I/O capabilities.
#define SEC_PARAM_OOB 0 |
Out Of Band data not available.
#define SEC_PARAM_MIN_KEY_SIZE 7 |
Minimum encryption key size.
#define SEC_PARAM_MAX_KEY_SIZE 16 |
Maximum encryption key size.
#define FLASH_PAGE_SYS_ATTR (BLE_FLASH_PAGE_END - 3) |
Flash page used for bond manager system attribute information.
#define FLASH_PAGE_BOND (BLE_FLASH_PAGE_END - 1) |
Flash page used for bond manager bonding information.
#define DEAD_BEEF 0xDEADBEEF |
Value used as error code on stack dump, can be used to identify stack location on stack unwind.
void app_error_handler | ( | uint32_t | error_code, |
uint32_t | line_num, | ||
const uint8_t * | p_file_name | ||
) |
[in] | error_code | Error code supplied to the handler. |
[in] | line_num | Line number where the handler is called. |
[in] | p_file_name | Pointer to the file name. |
void assert_nrf_callback | ( | uint16_t | line_num, |
const uint8_t * | p_file_name | ||
) |
This function will be called in case of an assert in the SoftDevice.
[in] | line_num | Line number of the failing ASSERT call. |
[in] | file_name | File name of the failing ASSERT call. |
|
static |
This function will be called each time the battery level measurement timer expires.
[in] | p_context | Pointer used for passing some arbitrary information (context) from the app_start_timer() call to the timeout handler. |
|
static |
Initializes all LEDs used by this application.
|
static |
Initializes the timer module. This creates and starts application timers.
|
static |
This function shall be used to setup all the necessary GAP (Generic Access Profile) parameters of the device. It also sets the permissions and appearance.
|
static |
Encodes the required advertising data and passes it to the stack. Also builds a structure to be passed to the stack when starting advertising.
|
static |
This function will be called for all Blood Pressure Service events which are passed to the application.
[in] | p_bps | Blood Pressure Service structure. |
[in] | p_evt | Event received from the Blood Pressure Service. |
|
static |
Initialize the Blood Pressure, Battery and Device Information services.
|
static |
This function will be called for all events in the Connection Parameters Module which are passed to the application.
[in] | p_evt | Event received from the Connection Parameters Module. |
|
static |
[in] | nrf_error | Error code containing information about what went wrong. |
|
static |
[in] | p_ble_evt | Bluetooth stack event. |
|
static |
This function is called from the BLE Stack event interrupt handler after a BLE stack event has been received.
[in] | p_ble_evt | Bluetooth stack event. |
|
static |
Initializes the SoftDevice and the BLE event interrupt.
|
static |
[in] | pin_no | The pin number of the button pressed. |
|
static |
[in] | nrf_error | Error code containing information about what went wrong. |
|
static |
[in] | p_evt | Data associated to the bond manager event. |
|
static |
Handle of the current connection.
|
static |
Security requirements for this application.
|
static |
Parameters to be passed to the stack when starting advertising.
|
static |
Structure used to identify the battery service.
|
static |
Structure used to identify the blood pressure service.
|
static |
Blood Pressure simulated measurements.
|
static |
Flag to keep track of when an indication confirmation is pending.
|
static |
Battery Level sensor simulator configuration.
|
static |
Battery Level sensor simulator state.
|
static |
Battery timer.