#include "fixed_queue.h"\r
#include "bt_prf_task.h"\r
#include "gki.h"\r
+#include "bt_trace.h"\r
\r
#include <string.h>\r
\r
\r
void bt_prf_sys_init(void)\r
{\r
- memset(&bt_prf_sys_cb,0,sizeof(tBT_PRF_SYS_CB));\r
+ LOG_ERROR("bt_prf_sys_init\n");\r
+ memset(&bt_prf_sys_cb, 0, sizeof(tBT_PRF_SYS_CB));\r
+ bt_prf_StartUp();\r
}\r
\r
\r
UINT8 id;\r
BOOLEAN freebuf = TRUE;\r
\r
- APPL_TRACE_EVENT("profile task got event 0x%x\n", p_msg->event);\r
+ LOG_ERROR("profile task got event 0x%x\n", p_msg->event);\r
\r
/* get subsystem id from event */\r
id = (UINT8) (p_msg->event >> 8);\r
}\r
else\r
{\r
- APPL_TRACE_WARNING("profile task got unregistered event id %d\n", id);\r
+ LOG_ERROR("profile task got unregistered event id %d\n", id);\r
}\r
\r
if (freebuf)\r
**\r
** Function bt_prf_sys_sendmsg\r
**\r
-** Description Send a GKI message to the profile task.\r
+** Description Send a message to the profile task.\r
**\r
**\r
** Returns void\r
{\r
// There is a race condition that occurs if the stack is shut down while\r
// there is a procedure in progress that can schedule a task via this\r
- // message queue. This causes |btu_bta_msg_queue| to get cleaned up before\r
+ // message queue. This causes |bt_profile_msg_queue| to get cleaned up before\r
// it gets used here; hence we check for NULL before using it.\r
if (bt_profile_msg_queue) {\r
fixed_queue_enqueue(bt_profile_msg_queue, p_msg);\r
#include "bt_prf_task.h"\r
#include "bt_prf_sys.h"\r
#include "allocator.h"\r
+#include "bt_trace.h"\r
#include "thread.h"\r
#include "gki.h"\r
\r
******************************************************************************/\r
void bt_prf_task_thread_handler(void *arg)\r
{\r
- //ke_event_clear(KE_EVENT_BTU_TASK_THREAD);\r
\r
TaskEvt_t *e;\r
for (;;) { \r
if (pdTRUE == xQueueReceive(xProfileQueue, &e, (portTickType)portMAX_DELAY)) {\r
\r
- if (e->sig == SIG_BTU_WORK) {\r
+ if (e->sig == SIG_PRF_WORK) {\r
fixed_queue_process(bt_profile_msg_queue);\r
- \r
+ LOG_ERROR("bt_prf_task_thread_handler\n");\r
}\r
- else if (e->sig == SIG_BTU_START_UP) {\r
+ else if (e->sig == SIG_PRF_START_UP) {\r
bt_prf_task_start_up();\r
}\r
osi_free(e); \r
\r
void bt_prf_task_start_up(void)\r
{\r
+ LOG_ERROR("bt_prf_task_start_up\n");\r
fixed_queue_register_dequeue(bt_profile_msg_queue, bt_profile_msg_ready);\r
}\r
\r
bt_profile_msg_queue = fixed_queue_new(SIZE_MAX);\r
if (bt_profile_msg_queue == NULL)\r
goto error_exit;\r
-\r
+ \r
+ xProfileQueue = xQueueCreate(60, sizeof(void *));\r
+ xTaskCreate(bt_prf_task_thread_handler, "Bt_prf", 4096, NULL, configMAX_PRIORITIES - 1, &xProfileTaskHandle);\r
+ bt_prf_task_post(SIG_PRF_START_UP);\r
return;\r
\r
-error_exit:;\r
+error_exit:\r
LOG_ERROR("%s Unable to allocate resources for bt_workqueue\n", __func__);\r
bt_prf_ShutDown();\r
\r
extern void bt_prf_sys_free(void);\r
extern void bt_prf_sys_event(prf_hdr_evt_t *p_msg);\r
\r
+extern void bt_prf_sys_sendmsg(void *p_msg);\r
+\r
+\r
extern void bt_prf_sys_register(uint8_t id, const tBT_PRF_SYS_REG *p_reg);\r
extern void bt_prf_sys_deregister(uint8_t id);\r
extern BOOLEAN bt_prf_sys_is_register(uint8_t id);\r
#ifndef BT_PRF_TASK_H__\r
#define BT_PRF_TASK_H__\r
\r
-/* Functions provided by btu_core.c
+/* Functions provided by bt_prf_task.c
************************************
*/\r
\r
button_cb_env.button_inst.but_cfg_hdl = p_data->add_result.attr_id;
}
///Start advertising
- LOG_ERROR("\nStart sent the ADV.\n");
- esp_ble_start_advertising (&adv_params);
+ LOG_ERROR("\n*******Start sent the ADV.*************\n");
+ //esp_ble_start_advertising (&adv_params);
+ BTA_GATTS_Listen(button_cb_env.gatt_if, true, NULL);
break;
case ESP_GATTS_CONNECT_EVT:
//set the connection flag to true
{
tBT_UUID app_uuid = {LEN_UUID_16,{ATT_SVC_BUTTON}};
-
+ LOG_ERROR("\n=============================button_init==============================================\n");
if(button_cb_env.enabled)
{
- LOG_ERROR("button svc already initaliezd");
- return GATT_ERROR;
+ LOG_ERROR("button svc already initaliezd\n");
+ return ESP_GATT_ERROR;
}
else
{
#define ATT_UUID_128_LEN 0x0010
#define ATT_UUID_32_LEN 0x0004
-#define WX_AIRSYNC_CFG TRUE
+#define WX_AIRSYNC_CFG FALSE
#define BUT_PROFILE_CFG TRUE
-#define HIDD_LE_PROFILE_CFG TRUE
+#define HIDD_LE_PROFILE_CFG FALSE
/*
* Type Definition
\r
if(++adv_data != NULL)\r
{\r
- ble_set_scan_rsp(adv_data,NULL);\r
+ ble_set_scan_rsp(adv_data, NULL);\r
}\r
\r
}\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the mtu value invalid\r
**\r
*******************************************************************************/\r
-tGATT_STATUS esp_ble_gattc_config_mtu (uint16_t conn_id, uint16_t mtu)\r
+esp_gatt_status_t esp_ble_gattc_config_mtu (uint16_t conn_id, uint16_t mtu)\r
{\r
if ((mtu < GATT_DEF_BLE_MTU_SIZE) || (mtu > GATT_MAX_MTU_SIZE)){\r
LOG_ERROR("Invalid MTU parameters\n");\r
- return GATT_ILLEGAL_PARAMETER;\r
+ return ESP_GATT_ILLEGAL_PARAMETER;\r
}\r
\r
BTA_GATTC_ConfigureMTU (conn_id, mtu);\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the srvc_id or char_result parameter is NULL.\r
**\r
*****************************************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_first_char (uint16_t conn_id, esp_gatt_srvc_id_t *srvc_id,\r
+esp_gatt_status_t esp_ble_gattc_get_first_char (uint16_t conn_id, esp_gatt_srvc_id_t *srvc_id,\r
esp_bt_uuid_t *char_uuid_cond,\r
esp_gattc_char_id_t *char_result,\r
esp_gatt_char_prop_t *property)\r
{\r
- tBTA_GATT_STATUS status = 0;\r
+ esp_gatt_status_t status = 0;\r
\r
if (!srvc_id || !char_result){\r
- return BTA_GATT_ILLEGAL_PARAMETER;\r
+ return ESP_GATT_ILLEGAL_PARAMETER;\r
}\r
\r
status = BTA_GATTC_GetFirstChar (conn_id, srvc_id, char_uuid_cond,\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the char_id or descr_result parameter is NULL.\r
**\r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_first_char_descr (uint16_t conn_id, esp_gattc_char_id_t *char_id,\r
+esp_gatt_status_t esp_ble_gattc_get_first_char_descr (uint16_t conn_id, esp_gattc_char_id_t *char_id,\r
esp_bt_uuid_t *descr_uuid_cond,\r
esp_gattc_char_descr_id_t *descr_result)\r
{\r
- tBTA_GATT_STATUS status;\r
+ esp_gatt_status_t status;\r
\r
if (!char_id || !descr_result){\r
- return BTA_GATT_ILLEGAL_PARAMETER;\r
+ return ESP_GATT_ILLEGAL_PARAMETER;\r
}\r
\r
status = BTA_GATTC_GetFirstCharDescr (conn_id, char_id, descr_uuid_cond, descr_result);\r
** \r
*******************************************************************************/\r
\r
-tBTA_GATT_STATUS esp_ble_gattc_get_next_char (uint16_t conn_id,\r
+esp_gatt_status_t esp_ble_gattc_get_next_char (uint16_t conn_id,\r
esp_gattc_char_id_t *start_char_id,\r
esp_bt_uuid_t *char_uuid_cond,\r
esp_gattc_char_id_t *char_result,\r
esp_gatt_char_prop_t *property)\r
{\r
\r
- tBTA_GATT_STATUS status;\r
+ esp_gatt_status_t status;\r
\r
if (!start_char_id || !char_result){\r
- return BTA_GATT_ILLEGAL_PARAMETER;\r
+ return ESP_GATT_ILLEGAL_PARAMETER;\r
}\r
\r
status = BTA_GATTC_GetNextChar(conn_id, start_char_id, char_uuid_cond,\r
**\r
*******************************************************************************/\r
\r
-tBTA_GATT_STATUS esp_ble_gattc_get_next_char_descr (uint16_t conn_id,\r
+esp_gatt_status_t esp_ble_gattc_get_next_char_descr (uint16_t conn_id,\r
esp_gattc_char_descr_id_t *start_descr_id,\r
esp_bt_uuid_t *descr_uuid_cond,\r
esp_gattc_char_descr_id_t *descr_result)\r
{\r
- tBTA_GATT_STATUS status;\r
+ esp_gatt_status_t status;\r
\r
if (!start_descr_id || !descr_result){\r
- return BTA_GATT_ILLEGAL_PARAMETER;\r
+ return ESP_GATT_ILLEGAL_PARAMETER;\r
}\r
\r
status = BTA_GATTC_GetNextCharDescr (conn_id, start_descr_id, descr_uuid_cond, descr_result);\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the srvc_id or result parameter is NULL.\r
**\r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_first_inclu_srvc (uint16_t conn_id, esp_gatt_srvc_id_t *srvc_id,\r
+esp_gatt_status_t esp_ble_gattc_get_first_inclu_srvc (uint16_t conn_id, esp_gatt_srvc_id_t *srvc_id,\r
esp_bt_uuid_t *uuid_cond, esp_gattc_incl_srvc_id_t *result)\r
{\r
\r
- tBTA_GATT_STATUS status;\r
+ esp_gatt_status_t status;\r
\r
if (!srvc_id || !result){\r
- return BTA_GATT_ILLEGAL_PARAMETER;\r
+ return ESP_GATT_ILLEGAL_PARAMETER;\r
}\r
\r
status = BTA_GATTC_GetFirstIncludedService(conn_id, srvc_id, uuid_cond, result);\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the p_char_id or p_descr_result parameter is NULL.\r
\r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_next_inclu_srvc (uint16_t conn_id,\r
+esp_gatt_status_t esp_ble_gattc_get_next_inclu_srvc (uint16_t conn_id,\r
esp_gattc_incl_srvc_id_t *start_id,\r
esp_bt_uuid_t *uuid_cond,\r
esp_gattc_incl_srvc_id_t *result)\r
{\r
- tBTA_GATT_STATUS status;\r
+ esp_gatt_status_t status;\r
\r
if (!start_id || !result){\r
- return BTA_GATT_ILLEGAL_PARAMETER;\r
+ return ESP_GATT_ILLEGAL_PARAMETER;\r
}\r
\r
status = BTA_GATTC_GetNextIncludedService(conn_id, start_id, uuid_cond, result);\r
** @return OK if registration succeed, otherwise failed.\r
**\r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_register_ntf (esp_gattc_if_t client_if,\r
+esp_gatt_status_t esp_ble_gattc_register_ntf (esp_gattc_if_t client_if,\r
BD_ADDR bda,\r
esp_gattc_char_id_t *char_id)\r
{\r
- tBTA_GATT_STATUS status = BTA_GATT_ILLEGAL_PARAMETER;\r
+ esp_gatt_status_t status = ESP_GATT_ILLEGAL_PARAMETER;\r
status = BTA_GATTC_RegisterForNotifications (client_if, bda, char_id);\r
\r
return status;\r
BD_ADDR bda,\r
esp_gattc_char_id_t *char_id)\r
{\r
- tBTA_GATT_STATUS status = BTA_GATT_ILLEGAL_PARAMETER;\r
+ esp_gatt_status_t status = ESP_GATT_ILLEGAL_PARAMETER;\r
status = BTA_GATTC_DeregisterForNotifications (client_if, bda, char_id);\r
\r
return status;\r
#include "button_pro.h"
#include "app_button_int.h"
-static const tBT_PRF_SYS_REG bta_gatts_reg =
+static const tBT_PRF_SYS_REG but_prf_reg =
{
ble_but_prf_hdl_event,
ble_but_prf_disable
*******************************************************************************/
BOOLEAN ble_but_prf_hdl_event(prf_hdr_evt_t *msg_data)
{
+ LOG_ERROR("###################ble_but_prf_hdl_event#####################################\n");
+
UINT16 connid = 0;
switch(msg_data->event)
{
*******************************************************************************/
void ble_but_prf_disable(void)
{
- BT_HDR *p_buf;
-
+ prf_hdr_evt_t *p_buf;
+ LOG_ERROR("ble_but_prf_disable\n");
+
if (bt_prf_sys_is_register(PRF_ID_BUT_LE) == FALSE)
{
- APPL_TRACE_WARNING("button profile Module not enabled/already disabled");
+ APPL_TRACE_WARNING("button profile Module not enabled/already disabled\n");
return;
}
- if ((p_buf = (BT_HDR *) GKI_getbuf(sizeof(BT_HDR))) != NULL)
+ if ((p_buf = (prf_hdr_evt_t *) GKI_getbuf(sizeof(prf_hdr_evt_t))) != NULL)
{
p_buf->event = BLE_BUT_DISABLE_IND_EVT;
bta_sys_sendmsg(p_buf);
}
+void ble_but_prf_enable(void)
+{
+ bt_prf_sys_register(PRF_ID_BUT_LE,&but_prf_reg);
+}
+
+void ble_but_create_svc(void)
+{
+ prf_hdr_evt_t *p_msg;
+
+ LOG_ERROR("ble_but_create_svc\n"); //todo
+ if ((p_msg = (prf_hdr_evt_t *) GKI_getbuf(sizeof(prf_hdr_evt_t))) != NULL)
+ {
+ memset(p_msg, 0, sizeof(prf_hdr_evt_t));
+
+ p_msg->event = BLE_BUT_ENABLE_REQ_EVT;
+
+ bt_prf_sys_sendmsg(p_msg);
+ }
+}
+
#include "wx_airsync_prf.h"
#include "button_pro.h"
-
+#include "app_button.h"
#include "hid_le_prf.h"
#include "bt_app_api.h"
break;
}
}
+
+
/*set advertising config callback*/
static void bta_gatts_set_adv_data_cback(tBTA_STATUS call_status)
{
DIS_ATTR_IEEE_DATA_BIT | DIS_ATTR_PNP_ID_BIT;
DIS_SrInit(dis_attr_mask);
*/
+ ble_but_create_svc();
/*instantiate a battery service*/
- bas_register();
+ //bas_register();
/*instantiate the driver for button profile*/
//app_button_init();
#if (BUT_PROFILE_CFG)
/*instantiate a button service*/
- button_init(SimpleDataCallBack);
+ //button_init(SimpleDataCallBack);
#endif ///BUT_PROFILE_CFG
#if (HIDD_LE_PROFILE_CFG)
LOG_ERROR("register gatts application\n");
esp_ble_gatts_app_register(&t_uuid, bta_gatts_callback);
+
+ bt_prf_sys_init();
+ ble_but_prf_enable();
}
void gatts_server_test(void)
uint8_t check_sum(uint8_t *check_array,uint8_t len);
+ void ble_but_prf_enable(void);
+
+ void ble_but_create_svc(void);
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the mtu value invalid\r
**\r
*******************************************************************************/\r
-tGATT_STATUS esp_ble_gattc_config_mtu (uint16_t conn_id, uint16_t mtu);\r
+esp_gatt_status_t esp_ble_gattc_config_mtu (uint16_t conn_id, uint16_t mtu);\r
\r
\r
/*******************************************************************************\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the srvc_id or char_result parameter is NULL.\r
**\r
*****************************************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_first_char (uint16_t conn_id, esp_gatt_srvc_id_t *srvc_id,\r
+esp_gatt_status_t esp_ble_gattc_get_first_char (uint16_t conn_id, esp_gatt_srvc_id_t *srvc_id,\r
esp_bt_uuid_t *char_uuid_cond,\r
esp_gattc_char_id_t *char_result,\r
esp_gatt_char_prop_t *property);\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the char_id or descr_result parameter is NULL.\r
**\r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_first_char_descr (uint16_t conn_id, esp_gattc_char_id_t *char_id,\r
+esp_gatt_status_t esp_ble_gattc_get_first_char_descr (uint16_t conn_id, esp_gattc_char_id_t *char_id,\r
esp_bt_uuid_t *descr_uuid_cond,\r
esp_gattc_char_descr_id_t *descr_result);\r
\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the p_char_id or p_descr_result parameter is NULL.\r
\r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_next_inclu_srvc (uint16_t conn_id,\r
+esp_gatt_status_t esp_ble_gattc_get_next_inclu_srvc (uint16_t conn_id,\r
esp_gattc_incl_srvc_id_t *start_id,\r
esp_bt_uuid_t *uuid_cond,\r
esp_gattc_incl_srvc_id_t *result);\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the start_char_id or char_result parameter is NULL.\r
** \r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_next_char (uint16_t conn_id,\r
+esp_gatt_status_t esp_ble_gattc_get_next_char (uint16_t conn_id,\r
esp_gattc_char_id_t *start_char_id,\r
esp_bt_uuid_t *char_uuid_cond,\r
esp_gattc_char_id_t *char_result,\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the start_descr_id or descr_result parameter is NULL.\r
**\r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_get_next_char_descr (uint16_t conn_id,\r
+esp_gatt_status_t esp_ble_gattc_get_next_char_descr (uint16_t conn_id,\r
esp_gattc_char_descr_id_t *start_descr_id,\r
esp_bt_uuid_t *descr_uuid_cond,\r
esp_gattc_char_descr_id_t *descr_result);\r
** - @ref ESP_GATT_ILLEGAL_PARAMETER: If the srvc_id or result parameter is NULL.\r
**\r
*******************************************************************************/\r
-extern tBTA_GATT_STATUS esp_ble_gattc_get_first_inclu_srvc (uint16_t conn_id, esp_gatt_srvc_id_t *srvc_id,\r
+esp_gatt_status_t esp_ble_gattc_get_first_inclu_srvc (uint16_t conn_id, esp_gatt_srvc_id_t *srvc_id,\r
esp_bt_uuid_t *uuid_cond, esp_gattc_incl_srvc_id_t *result);\r
\r
\r
** @return OK if registration succeed, otherwise failed.\r
**\r
*******************************************************************************/\r
-tBTA_GATT_STATUS esp_ble_gattc_register_ntf (esp_gattc_if_t client_if,\r
+esp_gatt_status_t esp_ble_gattc_register_ntf (esp_gattc_if_t client_if,\r
BD_ADDR bda,\r
esp_gattc_char_id_t *char_id);\r
\r