Microchip® Advanced Software Framework

cscp.h File Reference

Custom Serial Chat Profile.

Copyright (c) 2017-2018 Microchip Technology Inc. and its subsidiaries.

#include "at_ble_api.h"

Data Structures

struct  app_csc_data
 
struct  csc_report_ntf
 SPOG report notification or indication, notify to user. More...
 

Macros

#define ADV_DATA_128_UUID_TYPE   (0x07)
 Advertisement 128bit UUID type. More...
 
#define ADV_DATA_APPEARANCE_TYPE   (0x19)
 Advertisement appearance type. More...
 
#define ADV_DATA_NAME_DATA   ("AT-CSC")
 Advertisement name. More...
 
#define ADV_DATA_NAME_LEN   (6)
 Advertisement data name length. More...
 
#define ADV_DATA_NAME_TYPE   (0x09)
 Advertisement data type. More...
 
#define ADV_TYPE_LEN   (0x01)
 Advertisement type length. More...
 
#define APP_CSC_ADV_TIMEOUT   (655)
 APP_CSC_ADV_TIMEOUT Advertising time-out between 0x0001 and 0x028F in seconds, 0x0000 disables time-out. More...
 
#define APP_CSC_FAST_ADV   (1600)
 APP_SPOG_FAST_ADV between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s). More...
 
#define AT_DISCOVER_SUCCESS   (10)
 Discovery sucess status. More...
 
#define CSC_UUID_128_LEN   (16)
 Custom serial chat UUID length. More...
 
#define END_HANDLE   (0xffff)
 
#define SCAN_RESP_LEN   (10)
 scan_resp_len is the length of the scan response data More...
 
#define START_HANDLE   (0x0001)
 start and end handle More...
 

Typedefs

typedef struct app_csc_data app_csc_data_t
 
typedef struct csc_report_ntf csc_report_ntf_t
 SPOG report notification or indication, notify to user. More...
 
typedef void(* recv_ntf_callback_t )(csc_report_ntf_t *)
 Receive notification callback. More...
 

Enumerations

enum  ble_discovery_role {
  DISCOVER_IDLE = 0,
  DISCOVER_SERVICE,
  DISCOVER_INCLUDE_SERVICE,
  DISCOVER_CHARACTERISTIC,
  DISCOVER_DESCRIPTOR,
  DISCOVER_IDLE = 0,
  DISCOVER_SERVICE,
  DISCOVER_INCLUDE_SERVICE,
  DISCOVER_CHARACTERISTIC,
  DISCOVER_DESCRIPTOR
}
 type of attribute discovery More...
 

Functions

at_ble_status_t csc_notification_confirmation_handler (void *params)
 Notification confirmation handler. More...
 
void csc_prf_buf_init (uint8_t *databuf, uint16_t datalen)
 CSC profile buffer initialization. More...
 
at_ble_status_t csc_prf_char_changed_handler (void *params)
 Service characteristic change handler function. More...
 
at_ble_status_t csc_prf_characteristic_found_handler (void *params)
 Handler for characteristic found. More...
 
at_ble_status_t csc_prf_connected_state_handler (void *params)
 Handler for connection event. More...
 
at_ble_status_t csc_prf_descriptor_found_handler (void *params)
 Handler for descriptor found. More...
 
void csc_prf_dev_adv (void)
 CSC profile advertisement function. More...
 
at_ble_status_t csc_prf_disconnect_event_handler (void *params)
 device disconnected handler function More...
 
at_ble_status_t csc_prf_discovery_complete_handler (void *params)
 Handler for discovery complete. More...
 
void csc_prf_init (void *param)
 CSC profile initialization function. More...
 
at_ble_status_t csc_prf_notification_handler (void *params)
 invoked by ble manager on receiving notification More...
 
void csc_prf_send_data (uint8_t *databuf, uint16_t datalen)
 CSC profile send data function. More...
 
at_ble_status_t csc_prf_service_found_handler (void *params)
 Handler for service found. More...
 
at_ble_status_t csc_prf_write_notification_handler (void *params)
 Handler for configuring the notification for remote device. More...
 
void notify_recv_ntf_handler (recv_ntf_callback_t recv_ntf_fn)
 Function call the user defined callback for sending the receive data. More...
 

#define ADV_DATA_128_UUID_TYPE   (0x07)

Advertisement 128bit UUID type.

#define ADV_DATA_APPEARANCE_TYPE   (0x19)

Advertisement appearance type.

#define ADV_DATA_NAME_DATA   ("AT-CSC")

Advertisement name.

#define ADV_DATA_NAME_LEN   (6)

Advertisement data name length.

#define ADV_DATA_NAME_TYPE   (0x09)

Advertisement data type.

#define ADV_TYPE_LEN   (0x01)

Advertisement type length.

#define APP_CSC_ADV_TIMEOUT   (655)

APP_CSC_ADV_TIMEOUT Advertising time-out between 0x0001 and 0x028F in seconds, 0x0000 disables time-out.

Referenced by csc_prf_dev_adv().

#define APP_CSC_FAST_ADV   (1600)

APP_SPOG_FAST_ADV between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s).

Referenced by csc_prf_dev_adv().

#define AT_DISCOVER_SUCCESS   (10)
#define CSC_UUID_128_LEN   (16)

Custom serial chat UUID length.

Referenced by csc_prf_connected_state_handler(), and csc_serv_init().

#define END_HANDLE   (0xffff)
#define SCAN_RESP_LEN   (10)

scan_resp_len is the length of the scan response data

#define START_HANDLE   (0x0001)

typedef struct app_csc_data app_csc_data_t

SPOG report notification or indication, notify to user.

typedef void(* recv_ntf_callback_t)(csc_report_ntf_t *)

Receive notification callback.

type of attribute discovery

Enumerator
DISCOVER_IDLE 

Discovery Disable.

DISCOVER_SERVICE 

Discover Service.

DISCOVER_INCLUDE_SERVICE 

Discover Include Service.

DISCOVER_CHARACTERISTIC 

Discover Characteristic.

DISCOVER_DESCRIPTOR 

Discover Descriptor.

DISCOVER_IDLE 

Discovery Disable.

DISCOVER_SERVICE 

Discover Service.

DISCOVER_INCLUDE_SERVICE 

Discover Include Service.

DISCOVER_CHARACTERISTIC 

Discover Characteristic.

DISCOVER_DESCRIPTOR 

Discover Descriptor.

at_ble_status_t csc_notification_confirmation_handler ( void *  params)

Notification confirmation handler.

Notification confirmation handler.

Parameters
[in]at_ble_cmd_complete_event_taddress of the cmd completion

References AT_BLE_SUCCESS, DBG_LOG_DEV, and at_ble_cmd_complete_event_t::status.

void csc_prf_buf_init ( uint8_t *  databuf,
uint16_t  datalen 
)

CSC profile buffer initialization.

Parameters
[in]databufInitialization data pointer
[in]datalenData length

CSC profile buffer initialization.

References app_csc_data::buff_len, and app_csc_data::buff_ptr.

Referenced by main().

at_ble_status_t csc_prf_char_changed_handler ( void *  params)

Service characteristic change handler function.

Service characteristic change handler function.

References AT_BLE_SUCCESS.

at_ble_status_t csc_prf_characteristic_found_handler ( void *  params)

Handler for characteristic found.

Parameters
[in]characteristicfound event parameter containing details about the characteristic found
Note
Called by the ble_manager after receiving the characteristic

Handler for characteristic found.

References AT_BLE_SUCCESS, and app_csc_data::csc_char.

at_ble_status_t csc_prf_connected_state_handler ( void *  params)

Handler for connection event.

Parameters
[in]connectedevent parameter containing details like handle
Note
Called by the ble_manager after receiving connection event

Handler for connection event.

References at_ble_primary_service_discover_by_uuid(), AT_BLE_SUCCESS, AT_BLE_UUID_128, app_csc_data::conn_params, app_csc_data::csc_serv, CSC_SERVICE_UUID, CSC_UUID_128_LEN, DBG_LOG, DBG_LOG_DEV, app_csc_data::devicedb, app_csc_data::discover_role, DISCOVER_SERVICE, END_HANDLE, at_ble_connected_t::handle, at_ble_primary_service_found_t::service_uuid, START_HANDLE, at_ble_uuid_t::type, and at_ble_uuid_t::uuid.

at_ble_status_t csc_prf_descriptor_found_handler ( void *  params)

Handler for descriptor found.

Parameters
[in]characteristicfound event parameter containing details about the descriptor found
Note
Called by the ble_manager after receiving the descriptor

Handler for descriptor found.

References AT_BLE_SUCCESS, and app_csc_data::csc_desc.

void csc_prf_dev_adv ( void  )

CSC profile advertisement function.

CSC profile advertisement function.

References APP_CSC_ADV_TIMEOUT, APP_CSC_FAST_ADV, AT_BLE_ADV_FP_ANY, AT_BLE_ADV_GEN_DISCOVERABLE, at_ble_adv_start(), AT_BLE_ADV_TYPE_UNDIRECTED, AT_BLE_SUCCESS, DBG_LOG, and NULL.

Referenced by app_disconnected_event_handler(), and main().

at_ble_status_t csc_prf_disconnect_event_handler ( void *  params)

device disconnected handler function

References ALL_UNUSED, AT_BLE_SUCCESS, and app_csc_data::devicedb.

void csc_prf_init ( void *  param)
void csc_prf_send_data ( uint8_t *  databuf,
uint16_t  datalen 
)

CSC profile send data function.

Parameters
[in]databufData buffer send to remote device
[in]datalenData length

CSC profile send data function.

References app_csc_data::buff_len, app_csc_data::conn_params, csc_serv_send_data(), and at_ble_connected_t::handle.

Referenced by csc_app_send_buf().

at_ble_status_t csc_prf_service_found_handler ( void *  params)

Handler for service found.

Parameters
[in]servicefound event parameter containing details about the service found
Note
Called by the ble_manager after receiving the service

Handler for service found.

References AT_BLE_SUCCESS, app_csc_data::csc_serv, and DBG_LOG_DEV.

at_ble_status_t csc_prf_write_notification_handler ( void *  params)

Handler for configuring the notification for remote device.

Handler for configuring the notification for remote device.

References at_ble_characteristic_write(), AT_BLE_FAILURE, AT_BLE_SUCCESS, at_ble_descriptor_found_t::conn_handle, app_csc_data::csc_desc, data, DBG_LOG, at_ble_descriptor_found_t::desc_handle, and UNUSED.

void notify_recv_ntf_handler ( recv_ntf_callback_t  recv_ntf_fn)

Function call the user defined callback for sending the receive data.

Function call the user defined callback for sending the receive data.

References recv_ntf_cb.

Referenced by main().