ZHCACZ5 August 2023 CC2564C
以下函数负责读取由存在连接的远程设备发送的数据。此函数在成功执行时返回零,而在出现错误时返回负值。根据 SPPLE 的设备角色是服务器还是客户端,调用的 API 函数为 GATT_Handle_Value_Notification 或 GATT_Write_Without_Response_Request;这两个函数分别通知接收额度特性或向传输额度特性发送无响应的写入数据包。
唯一需要的参数是所连接的远程设备的蓝牙地址。
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_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 函数用于向远程 GATT 客户端发送句柄/值通知。此函数的第一个参数是本地蓝牙协议栈的 ID。第二个参数是发送句柄/值通知的服务的 ID。第三个参数指定接收句柄/值通知的连接的 ID。第四个参数指定正在通知的属性在服务表(通过调用 GATT_Register_Service() 函数注册)中的偏移量。第五个参数是正在通知的属性值的长度(以字节为单位)。第六个参数是指向要通知的实际属性值的指针。此函数返回一个非负值,该值表示已通知的属性值的实际长度;如果出现错误,则返回负的错误代码。
提供第二个 API 函数是为了能够针对指定的属性向远程设备执行无响应的写入请求。该函数的第一个参数是本地蓝牙协议栈的 ID,依次后跟所连接远程设备的连接 ID、要写入的属性的句柄、要写入的值数据的长度(以字节为单位)以及要写入的实际值。此函数返回成功写入的字节数或负的错误代码。