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, DISCOVER_COMPLETED, 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.
#define APP_CSC_FAST_ADV (1600) |
APP_SPOG_FAST_ADV between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s).
#define AT_DISCOVER_SUCCESS (10) |
Discovery sucess status.
#define CSC_UUID_128_LEN (16) |
Custom serial chat UUID length.
#define END_HANDLE (0xffff) |
#define SCAN_RESP_LEN (10) |
scan_resp_len is the length of the scan response data
#define START_HANDLE (0x0001) |
start and end handle
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.
typedef void(* recv_ntf_callback_t)(csc_report_ntf_t *) |
Receive notification callback.
enum ble_discovery_role |
type of attribute discovery
at_ble_status_t csc_notification_confirmation_handler | ( | void * | params | ) |
Notification confirmation handler.
Notification confirmation handler.
[in] | at_ble_cmd_complete_event_t | address 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.
[in] | databuf | Initialization data pointer |
[in] | datalen | Data length |
CSC profile buffer initialization.
References app_csc_data::buff_len, and app_csc_data::buff_ptr.
Referenced by ble_csc_init(), and 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.
[in] | characteristic | found event parameter containing details about the characteristic found |
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.
[in] | connected | event parameter containing details like handle |
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, status, 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.
[in] | characteristic | found event parameter containing details about the descriptor found |
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 ADV_DATA_128_UUID_TYPE, ADV_DATA_NAME_DATA, ADV_DATA_NAME_LEN, ADV_DATA_NAME_TYPE, ADV_TYPE_LEN, APP_CSC_ADV_TIMEOUT, APP_CSC_FAST_ADV, at_ble_adv_data_set(), AT_BLE_ADV_FP_ANY, AT_BLE_ADV_GEN_DISCOVERABLE, at_ble_adv_start(), AT_BLE_ADV_TYPE_UNDIRECTED, AT_BLE_GAP_PERIPHERAL_SLV, at_ble_set_dev_config(), AT_BLE_SUCCESS, CSC_SERVICE_UUID, CSC_UUID_128_LEN, DBG_LOG, NULL, and SCAN_RESP_LEN.
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.
at_ble_status_t csc_prf_discovery_complete_handler | ( | void * | params | ) |
Handler for discovery complete.
[in] | discovery | complete event parameter containing details about the descriptor found |
Handler for discovery complete.
References at_ble_characteristic_discover_all(), at_ble_descriptor_discover_all(), AT_BLE_DISC_ALL_CHAR, AT_BLE_DISC_BY_UUID_SVC, AT_BLE_DISC_DESC_CHAR, AT_BLE_SUCCESS, AT_DISCOVER_SUCCESS, at_ble_primary_service_found_t::conn_handle, at_ble_characteristic_found_t::conn_handle, app_csc_data::conn_params, app_csc_data::csc_char, app_csc_data::csc_serv, DBG_LOG, DBG_LOG_DEV, app_csc_data::devicedb, at_ble_primary_service_found_t::end_handle, at_ble_connected_t::handle, at_ble_primary_service_found_t::start_handle, at_ble_discovery_complete_t::status, and at_ble_characteristic_found_t::value_handle.
void csc_prf_init | ( | void * | param | ) |
CSC profile initialization function.
CSC profile initialization function.
References ALL_UNUSED, AT_BLE_SUCCESS, ble_advertisement_data_set(), BLE_GAP_EVENT_TYPE, BLE_GATT_CLIENT_EVENT_TYPE, BLE_GATT_SERVER_EVENT_TYPE, ble_mgr_events_callback_handler(), app_csc_data::buff_len, app_csc_data::buff_ptr, csc_serv_init(), DBG_LOG, REGISTER_CALL_BACK, and status.
Referenced by main().
at_ble_status_t csc_prf_notification_handler | ( | void * | params | ) |
invoked by ble manager on receiving notification
References AT_BLE_SUCCESS, at_ble_notification_recieved_t::char_len, at_ble_notification_recieved_t::char_value, csc_report_ntf::conn_handle, at_ble_notification_recieved_t::conn_handle, csc_report_ntf::recv_buff, csc_report_ntf::recv_buff_len, and recv_ntf_cb.
void csc_prf_send_data | ( | uint8_t * | databuf, |
uint16_t | datalen | ||
) |
CSC profile send data function.
[in] | databuf | Data buffer send to remote device |
[in] | datalen | Data 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.
[in] | service | found event parameter containing details about the service found |
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 ble_csc_init(), and main().