SmartSnippets DA1459x SDK
Files | Data Structures | Typedefs | Functions
Services Handling Routines

General BLE service routine handlers API. More...

Files

file  ble_service.h
 Services handling routines API.
 

Data Structures

struct  ble_service
 
struct  ble_service_config_t
 

Typedefs

typedef struct ble_service ble_service_t
 
typedef void(* connected_evt_t) (ble_service_t *svc, const ble_evt_gap_connected_t *evt)
 Connected event callback. More...
 
typedef void(* disconnected_evt_t) (ble_service_t *svc, const ble_evt_gap_disconnected_t *evt)
 Dis event callback. More...
 
typedef void(* read_req_t) (ble_service_t *svc, const ble_evt_gatts_read_req_t *evt)
 Read request callback. More...
 
typedef void(* write_req_t) (ble_service_t *svc, const ble_evt_gatts_write_req_t *evt)
 Write request callback. More...
 
typedef void(* prepare_write_req_t) (ble_service_t *svc, const ble_evt_gatts_prepare_write_req_t *evt)
 Prepare write request callback. More...
 
typedef void(* event_sent_t) (ble_service_t *svc, const ble_evt_gatts_event_sent_t *evt)
 Event sent callback. More...
 
typedef void(* cleanup_t) (ble_service_t *svc)
 Cleanup callback. More...
 

Functions

void ble_service_add (ble_service_t *svc)
 Add service. More...
 
void ble_service_remove (const ble_service_t *svc)
 Remove service. More...
 
void ble_service_cleanup (ble_service_t *svc)
 Cleanup service. More...
 
void ble_services_cleanup (void)
 Cleanup all services. More...
 
bool ble_service_handle_event (const ble_evt_hdr_t *evt)
 Handle BLE event. More...
 
att_perm_t ble_service_config_elevate_perm (att_perm_t perm, const ble_service_config_t *config)
 Elevate permissions. More...
 
__STATIC_INLINE uint8_t ble_service_get_num_attr (const ble_service_config_t *config, uint16_t chars, uint16_t descs)
 Get number of attributes. More...
 
void ble_service_config_add_includes (const ble_service_config_t *config)
 Add included services. More...
 

Detailed Description

General BLE service routine handlers API.

Typedef Documentation

◆ ble_service_t

typedef struct ble_service ble_service_t

BLE Service struct

◆ cleanup_t

typedef void(* cleanup_t) (ble_service_t *svc)

Cleanup callback.

Cleanup callback. Called when application invokes ble_service_cleanup.

Parameters
[in]svcservice instance

◆ connected_evt_t

typedef void(* connected_evt_t) (ble_service_t *svc, const ble_evt_gap_connected_t *evt)

Connected event callback.

Function to be called called when a new connection is established.

Parameters
[in]svcservice instance
[in]evtconnected event

◆ disconnected_evt_t

typedef void(* disconnected_evt_t) (ble_service_t *svc, const ble_evt_gap_disconnected_t *evt)

Dis event callback.

Function to be called when disconnected from a remote device.

Parameters
[in]svcservice instance
[in]evtdisconnected event

◆ event_sent_t

typedef void(* event_sent_t) (ble_service_t *svc, const ble_evt_gatts_event_sent_t *evt)

Event sent callback.

Function to be called when a notification has been sent or an indication has been confirmed.

Parameters
[in]svcservice instance
[in]evtevent sent event

◆ prepare_write_req_t

typedef void(* prepare_write_req_t) (ble_service_t *svc, const ble_evt_gatts_prepare_write_req_t *evt)

Prepare write request callback.

Function to be called when a prepare write request has been received from a remote device.

Parameters
[in]svcservice instance
[in]evtprepare write request event

◆ read_req_t

typedef void(* read_req_t) (ble_service_t *svc, const ble_evt_gatts_read_req_t *evt)

Read request callback.

Function to be called when a read request has been received from a remote device.

Parameters
[in]svcservice instance
[in]evtread request event

◆ write_req_t

typedef void(* write_req_t) (ble_service_t *svc, const ble_evt_gatts_write_req_t *evt)

Write request callback.

Function to be called when a write request has been received from a remote device.

Parameters
[in]svcservice instance
[in]evtwrite request event

Function Documentation

◆ ble_service_add()

void ble_service_add ( ble_service_t svc)

Add service.

This function adds a service to the internal database. It is required in order to receive service callbacks.

Parameters
[in]svcservice instance

◆ ble_service_cleanup()

void ble_service_cleanup ( ble_service_t svc)

Cleanup service.

This function frees all resources allocated by service.

Parameters
[in]svcservice instance
Note
Service should be removed from internal database first using ble_service_remove function.

◆ ble_service_config_add_includes()

void ble_service_config_add_includes ( const ble_service_config_t config)

Add included services.

Helper function to register included services.

Parameters
[in]configService configuration structure

◆ ble_service_config_elevate_perm()

att_perm_t ble_service_config_elevate_perm ( att_perm_t  perm,
const ble_service_config_t config 
)

Elevate permissions.

Function elevates attribute permissions.

Parameters
[in]permAttribute permissions
[in]configService configuration structure
Returns
Elevated permissions.

◆ ble_service_get_num_attr()

__STATIC_INLINE uint8_t ble_service_get_num_attr ( const ble_service_config_t config,
uint16_t  chars,
uint16_t  descs 
)

Get number of attributes.

This function calculates number of attributes needed to register the service.

Parameters
[in]configService configuration structure
[in]charsNumber of characters
[in]descsNumber of descriptors
Returns
Number of attributes

◆ ble_service_handle_event()

bool ble_service_handle_event ( const ble_evt_hdr_t evt)

Handle BLE event.

This function handles BLE events and passes them to services.

Parameters
[in]evtBLE event
Returns
True if event was handled, false otherwise.

◆ ble_service_remove()

void ble_service_remove ( const ble_service_t svc)

Remove service.

This function removes a service from the internal database.

Parameters
[in]svcservice instance
Note
This function does not remove service from attribute database. This should be called before ble_reset function which destroys attribute database.

◆ ble_services_cleanup()

void ble_services_cleanup ( void  )

Cleanup all services.

This function frees the resources allocated by all added services.