/** * \file blebrr.h * * */ /* * Copyright (C) 2013. Mindtree Limited. * All rights reserved. */ #ifndef _H_BLEBRR_ #define _H_BLEBRR_ /* --------------------------------------------- Header File Inclusion */ #include "MS_common.h" #include "MS_brr_api.h" extern UCHAR blebrr_state; #define BLEBRR_LOG printf #define BLEBRR_dump_bytes appl_dump_bytes /* --------------------------------------------- Global Definitions */ /** GATT Modes */ #define BLEBRR_GATT_PROV_MODE 0x00 #define BLEBRR_GATT_PROXY_MODE 0x01 /** Bearer Client Server Roles */ #define BLEBRR_CLIENT_ROLE BRR_CLIENT_ROLE #define BLEBRR_SERVER_ROLE BRR_SERVER_ROLE /** Bearer GATT communication Channel setup events */ #define BLEBRR_COM_CHANNEL_CONNECT 0x00 #define BLEBRR_COM_CHANNEL_DISCONNECT 0x01 /** Bearer GATT MTU related defines */ #define BLEBRR_GATT_MIN_MTU (23 - 3) /* Bearer GATT Service related defines */ #define BLEBRR_MESH_PRVSNG_SERVICE 0x1827 #define BLEBRR_MESH_PROXY_SERVICE 0x1828 #define BLEBRR_MESH_PRVSNG_DATA_IN_CHAR 0x2ADB #define BLEBRR_MESH_PRVSNG_DATA_OUT_CHAR 0x2ADC #define BLEBRR_MESH_PROXY_DATA_IN_CHAR 0x2ADD #define BLEBRR_MESH_PROXY_DATA_OUT_CHAR 0x2ADE /** GATT Interface Events */ #define BLEBRR_GATT_IFACE_UP 0x00 #define BLEBRR_GATT_IFACE_DOWN 0x01 #define BLEBRR_GATT_IFACE_ENABLE 0x02 #define BLEBRR_GATT_IFACE_DISABLE 0x03 /** Bearer state defines */ #define BLEBRR_STATE_IDLE 0x00 #define BLEBRR_STATE_IN_SCAN_ENABLE 0x01 #define BLEBRR_STATE_IN_SCAN_DISABLE 0x02 #define BLEBRR_STATE_SCAN_ENABLED 0x04 #define BLEBRR_STATE_IN_ADV_ENABLE 0x10 #define BLEBRR_STATE_IN_ADV_DISABLE 0x20 #define BLEBRR_STATE_ADV_ENABLED 0x40 /*define Queue Size*/ #define BLEBRR_QUEUE_SIZE 64 #define BLEBRR_SET_STATE(x) blebrr_state = (x) #define BLEBRR_GET_STATE() blebrr_state //#define BLEBRR_LP_SUPPORT #ifdef BLEBRR_LP_SUPPORT #define BLEBRR_LP_OFF 1 #define BLEBRR_LP_SLEEP 2 #define BLEBRR_LP_WKP 3 #define BLEBRR_LP_PROXY 4 #endif /* --------------------------------------------- Structures/Data Types */ /* Call Back to Inform Application Layer about GATT Bearer Iface Events */ typedef void (* BLEBRR_GATT_IFACE_EVENT_PL_CB) ( UCHAR ev_name, UCHAR ev_param ); /* --------------------------------------------- Macros */ /* --------------------------------------------- Internal Functions */ void blebrr_adv_idle (void); void blebrr_scan_enable (void); /* --------------------------------------------- API Declarations */ void blebrr_init_pl (void); void blebrr_register(void); void blebrr_scan_pl (UCHAR enable); void blebrr_advertise_data_pl (CHAR type, UCHAR * pdata, UINT16 pdatalen); //void blebrr_advertise_pl(UCHAR state); // HZF API_RESULT blebrr_advertise_pl(UCHAR state); // HZF UCHAR blebrr_get_advdata_offset_pl (void); void blebrr_set_gattmode_pl (UCHAR flag); void blebrr_pl_scan_setup (UCHAR enable); void blebrr_pl_advertise_setup (UCHAR enable); void blebrr_pl_recv_advpacket(UCHAR type, UCHAR * pdata, UINT16 pdatalen, UCHAR rssi); API_RESULT blebrr_gatt_send_pl(BRR_HANDLE * handle, UCHAR * data, UINT16 datalen); API_RESULT blebrr_pl_gatt_connection (BRR_HANDLE * handle, UCHAR role, UCHAR mode, UINT16 mtu); API_RESULT blebrr_pl_gatt_disconnection (BRR_HANDLE * handle); API_RESULT blebrr_pl_recv_gattpacket (BRR_HANDLE * handle, UCHAR * pdata, UINT16 pdatalen); UCHAR blebrr_gatt_mode_get(void); API_RESULT blebrr_create_gatt_conn_pl ( UCHAR p_bdaddr_type, UCHAR * p_bdaddr ); API_RESULT blebrr_disconnect_pl(void); API_RESULT blebrr_discover_service_pl(UCHAR serv); API_RESULT blebrr_confige_ntf_pl(UCHAR config_ntf, UCHAR mode); API_RESULT blebrr_set_adv_scanrsp_data_pl ( UCHAR * srp_data, UCHAR srp_datalen ); void blebrr_gatt_mode_set(UCHAR flag); UCHAR blebrr_gatt_mode_get(void); void blebrr_pl_advertise_end (void); API_RESULT blebrr_register_gatt_iface_event_pl ( BLEBRR_GATT_IFACE_EVENT_PL_CB gatt_iface_evt_cb ); API_RESULT blebrr_sleep_handler(void); API_RESULT blebrr_wakeup_handler(void); API_RESULT blebrr_lp_start(UCHAR mode); void blebrr_lp_stop(void); UCHAR blebrr_get_queue_depth(void); #endif /* _H_BLEBRR_ */