Files
hpw421/component/ble/ip/ble/api/xc_gatt_client_api.c
T
2026-06-06 16:49:48 +08:00

122 lines
4.5 KiB
C

/**
****************************************************************************************
* @file xc_gatt_client_api.c
* @brief GATT client APIs source code
* Copyright (c) 2022 - 2025, XinChip
* All rights reserved.
****************************************************************************************
*/
#include "rwip_config.h"
#include "stdint.h"
#if (BLE_GATT_CLI)
#include "xc_gatt_client_api.h"
uint16_t xc_ble_gatt_user_cli_register(uint16_t pref_mtu, uint8_t prio_level,
const gatt_cli_cb_t *p_cb,
uint8_t *p_user_lid)
{
return gatt_user_cli_register(pref_mtu, prio_level, p_cb, p_user_lid);
}
uint16_t xc_ble_gatt_user_unregister(uint8_t user_lid)
{
return gatt_user_unregister(user_lid);
}
uint16_t xc_ble_gatt_cli_discover_svc(uint8_t conidx, uint8_t user_lid,
uint16_t dummy, uint8_t disc_type, bool full,
uint16_t start_hdl, uint16_t end_hdl,
uint8_t uuid_type, const uint8_t *p_uuid)
{
return gatt_cli_discover_svc(conidx, user_lid, dummy, disc_type, full,
start_hdl, end_hdl, uuid_type, p_uuid);
}
uint16_t xc_ble_gatt_cli_discover_inc_svc(uint8_t conidx, uint8_t user_lid,
uint16_t dummy, uint16_t start_hdl,
uint16_t end_hdl)
{
return gatt_cli_discover_inc_svc(conidx, user_lid, dummy, start_hdl,
end_hdl);
}
uint16_t xc_ble_gatt_cli_discover_char(uint8_t conidx, uint8_t user_lid,
uint16_t dummy, uint8_t disc_type,
uint16_t start_hdl, uint16_t end_hdl,
uint8_t uuid_type, const uint8_t *p_uuid)
{
return gatt_cli_discover_char(conidx, user_lid, dummy, disc_type, start_hdl,
end_hdl, uuid_type, p_uuid);
}
uint16_t xc_ble_gatt_cli_discover_desc(uint8_t conidx, uint8_t user_lid,
uint16_t dummy, uint16_t start_hdl,
uint16_t end_hdl)
{
return gatt_cli_discover_desc(conidx, user_lid, dummy, start_hdl, end_hdl);
}
uint16_t xc_ble_gatt_cli_discover_cancel(uint8_t conidx, uint8_t user_lid,
uint16_t dummy)
{
return gatt_cli_discover_cancel(conidx, user_lid, dummy);
}
uint16_t xc_ble_gatt_cli_read(uint8_t conidx, uint8_t user_lid, uint16_t dummy,
uint16_t hdl, uint16_t offset, uint16_t length)
{
return gatt_cli_read(conidx, user_lid, dummy, hdl, offset, length);
}
uint16_t xc_ble_gatt_cli_read_by_uuid(uint8_t conidx, uint8_t user_lid,
uint16_t dummy, uint16_t start_hdl,
uint16_t end_hdl, uint8_t uuid_type,
const uint8_t *p_uuid)
{
return gatt_cli_read_by_uuid(conidx, user_lid, dummy, start_hdl, end_hdl,
uuid_type, p_uuid);
}
uint16_t xc_ble_gatt_cli_write(uint8_t conidx, uint8_t user_lid, uint16_t dummy,
uint8_t write_type, uint16_t hdl, uint16_t length,
const uint8_t* p_data)
{
co_buf_t* p_buf = NULL;
uint16_t status;
if(co_buf_alloc(&p_buf, GATT_BUFFER_HEADER_LEN, length, GATT_BUFFER_TAIL_LEN) == CO_BUF_ERR_NO_ERROR)
{
co_buf_copy_data_from_mem(p_buf, p_data, length);
status = gatt_cli_write(conidx, user_lid, dummy, write_type, hdl, 0, p_buf);
co_buf_release(p_buf);
}
else
{
status = GAP_ERR_INSUFF_RESOURCES;
}
return (status);
}
uint16_t xc_ble_gatt_cli_event_register(uint8_t conidx, uint8_t user_lid,
uint16_t start_hdl, uint16_t end_hdl)
{
return gatt_cli_event_register(conidx, user_lid, start_hdl, end_hdl);
}
uint16_t xc_ble_gatt_cli_event_unregister(uint8_t conidx, uint8_t user_lid,
uint16_t start_hdl, uint16_t end_hdl)
{
return gatt_cli_event_unregister(conidx, user_lid, start_hdl, end_hdl);
}
uint16_t xc_ble_gatt_cli_indicate_cfm(uint8_t conidx, uint8_t user_lid,
uint16_t token)
{
return gatt_cli_att_event_cfm(conidx, user_lid, token);
}
#endif // (BLE_GATT_CLI)
uint16_t xc_ble_gatt_cli_mtu_exch(uint8_t conidx, uint8_t user_lid)
{
return gatt_cli_mtu_exch(conidx, user_lid);
}