ZHCACZ5 August 2023 CC2564C
以下函數(shù)負(fù)責(zé)讀取由存在連接的遠(yuǎn)程設(shè)備發(fā)送的數(shù)據(jù)。此函數(shù)在成功執(zhí)行時(shí)返回零,而在出現(xiàn)錯(cuò)誤時(shí)返回負(fù)值。根據(jù) SPPLE 的設(shè)備角色是服務(wù)器還是客戶端,調(diào)用的 API 函數(shù)為 GATT_Handle_Value_Notification 或 GATT_Write_Without_Response_Request;這兩個(gè)函數(shù)分別通知接收額度特性或向傳輸額度特性發(fā)送無(wú)響應(yīng)的寫入數(shù)據(jù)包。
唯一需要的參數(shù)是所連接的遠(yuǎn)程設(shè)備的藍(lán)牙地址。
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)
第一個(gè) API 函數(shù)用于向遠(yuǎn)程 GATT 客戶端發(fā)送句柄/值通知。此函數(shù)的第一個(gè)參數(shù)是本地藍(lán)牙協(xié)議棧的 ID。第二個(gè)參數(shù)是發(fā)送句柄/值通知的服務(wù)的 ID。第三個(gè)參數(shù)指定接收句柄/值通知的連接的 ID。第四個(gè)參數(shù)指定正在通知的屬性在服務(wù)表(通過(guò)調(diào)用 GATT_Register_Service() 函數(shù)注冊(cè))中的偏移量。第五個(gè)參數(shù)是正在通知的屬性值的長(zhǎng)度(以字節(jié)為單位)。第六個(gè)參數(shù)是指向要通知的實(shí)際屬性值的指針。此函數(shù)返回一個(gè)非負(fù)值,該值表示已通知的屬性值的實(shí)際長(zhǎng)度;如果出現(xiàn)錯(cuò)誤,則返回負(fù)的錯(cuò)誤代碼。
提供第二個(gè) API 函數(shù)是為了能夠針對(duì)指定的屬性向遠(yuǎn)程設(shè)備執(zhí)行無(wú)響應(yīng)的寫入請(qǐng)求。該函數(shù)的第一個(gè)參數(shù)是本地藍(lán)牙協(xié)議棧的 ID,依次后跟所連接遠(yuǎn)程設(shè)備的連接 ID、要寫入的屬性的句柄、要寫入的值數(shù)據(jù)的長(zhǎng)度(以字節(jié)為單位)以及要寫入的實(shí)際值。此函數(shù)返回成功寫入的字節(jié)數(shù)或負(fù)的錯(cuò)誤代碼。