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