ZHCACZ5 August 2023 CC2564C
以下函数负责在远程设备上配置 SPPLE 服务。此函数在成功执行时返回零,而在出现错误时返回负值。以下函数根据指定的句柄通知正确的特性;根据 SPPLE 的设备角色是服务器还是客户端,调用的 API 函数为 GATT_Handle_Value_Notification 或 GATT_Write_Without_Response_Request;这两个函数分别通知接收额度特性或向传输额度特性发送无响应的写入数据包。
唯一需要的参数是所连接的远程设备的蓝牙地址。
GATT_Write_Request(BluetoothStackID, ConnectionID, ClientConfigurationHandle, sizeof(Buffer), &Buffer, ClientEventCallback, 0)
和
GATT_Handle_Value_Notification(BluetoothStackID, SPPLEServiceID, ConnectionID, SPPLE_RX_CREDITS_CHARACTERISTIC_ATTRIBUTE_OFFSET, WORD_SIZE, (Byte_t*)&Credits)
或者
GATT_Write_Without_Response_Request(BluetoothStackID, ConnectionID, DeviceInfo->ClientInfo.Tx_Credit_Characteristic, WORD_SIZE, &Credits)
int BTPSAPI GATT_Write_Request(unsigned int BluetoothStackID, unsigned int ConnectionID, Word_t AttributeHandle, Word_t AttributeLength, void *AttributeValue,GATT_Client_Event_Callback_t ClientEventCallback, unsigned long CallbackParameter)
和
int BTPSAPI GATT_Handle_Value_Notification(unsigned int BluetoothStackID, unsigned int ServiceID, unsigned int ConnectionID, Word_t AttributeOffset, Word_tAttributeValueLength, Byte_t *AttributeValue)
或者
int BTPSAPI GATT_Write_Without_Response_Request(unsigned int BluetoothStackID, unsigned int ConnectionID, Word_t AttributeHandle, Word_t AttributeLength, void*AttributeValue)
提供的第一个 API 函数能够针对指定的属性向远程设备执行写入请求。该函数的第一个参数是本地蓝牙协议栈的 ID,依次后跟所连接远程设备的连接 ID、要写入其值的属性的句柄、值的长度(以字节为单位)以及要写入的实际值数据。最后两个参数分别指定 GATT 客户端事件回调函数和回调参数,当从远程设备接收响应时可以调用这些参数。此函数返回请求的正的非零事务 ID 或负的错误代码。
第二个 API 函数用于向远程 GATT 客户端发送句柄/值通知。此函数的第一个参数是本地蓝牙协议栈的 ID。第二个参数是发送句柄/值通知的服务的 ID。第三个参数指定接收句柄/值通知的连接的 ID。第四个参数指定正在通知的属性在服务表(通过调用 GATT_Register_Service() 函数注册)中的偏移量。第五个参数是正在通知的属性值的长度(以字节为单位)。第六个参数是指向要通知的实际属性值的指针。此函数返回一个非负值,该值表示已通知的属性值的实际长度;如果出现错误,则返回负的错误代码。
提供第三个 API 函数,以便针对指定的属性向远程设备执行无响应的写入请求。该函数的第一个参数是本地蓝牙协议栈的 ID,依次后跟所连接远程设备的连接 ID、要写入的属性的句柄、要写入的值数据的长度(以字节为单位)以及要写入的实际值。此函数返回成功写入的字节数或负错误代码。