BTM services: Difference between revisions

No edit summary
No edit summary
Line 92: Line 92:
| 39 ([5.0.0-5.0.2] 27) || [5.0.0+] [[#BleGetGattClientConditionList]]
| 39 ([5.0.0-5.0.2] 27) || [5.0.0+] [[#BleGetGattClientConditionList]]
|-
|-
| 40 ([5.0.0-5.0.2] ?) || [5.0.0+] AcquireBlePairingEvent
| 40 ([5.0.0-5.0.2] 28) || [5.0.0+] [[#AcquireBlePairingEvent]]
|-
|-
| 41 ([5.0.0-5.0.2] ?) || [5.0.0+] BlePairDevice
| 41 ([5.0.0-5.0.2] ?) || [5.0.0+] BlePairDevice
Line 104: Line 104:
| 45 || [5.1.0+] AcquireBleServiceDiscoveryEvent
| 45 || [5.1.0+] AcquireBleServiceDiscoveryEvent
|-
|-
| 46 || [5.1.0+] GetGattServices
| 46 ([5.0.0-5.0.2] 29) || [5.0.0+] [[#GetGattServices]]
|-
|-
| 47 || [5.1.0+] GetGattService
| 47 ([5.0.0-5.0.2] 30) || [5.0.0+] [[#GetGattService]]
|-
|-
| 48 || [5.1.0+] GetGattIncludedServices
| 48 || [5.1.0+] GetGattIncludedServices
Line 236: Line 236:
== BleGetGattClientConditionList ==
== BleGetGattClientConditionList ==
Takes a type-0x1A output buffer containing a 0x74-byte struct.
Takes a type-0x1A output buffer containing a 0x74-byte struct.
== AcquireBlePairingEvent ==
No input, returns an output u8 and an Event handle with EventClearMode=1.
== GetGattServices ==
Takes a type-0x6 output buffer containing an array of [[#GattService]], an u32, returns an output u8 total_out.
The u32 is the same as param for [[#BleDisconnect]]. The max array entries is 100.
== GetGattService ==
Takes a type-0x1A output buffer containing a [[#GattService]], an u32, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], returns an output u8 total_out.
The u32 is the same as param for [[#BleDisconnect]].
Same as [[#GetGattServices]] except this only returns the [[#GattService]] which matches the input [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]].


== Cmd60 ==
== Cmd60 ==
Line 417: Line 432:
| 20 || [[#BleGetConnectionState_2|BleGetConnectionState]]
| 20 || [[#BleGetConnectionState_2|BleGetConnectionState]]
|-
|-
| 21 || [[#AcquireBlePairingEvent]]
| 21 || [[#AcquireBlePairingEvent_2|AcquireBlePairingEvent]]
|-
|-
| 22 || [[#BlePairDevice]]
| 22 || [[#BlePairDevice]]
Line 429: Line 444:
| 26 || [[#AcquireBleServiceDiscoveryEvent]]
| 26 || [[#AcquireBleServiceDiscoveryEvent]]
|-
|-
| 27 || [[#GetGattServices]]
| 27 || [[#GetGattServices_2|GetGattServices]]
|-
|-
| 28 || [[#GetGattService]]
| 28 || [[#GetGattService_2|GetGattService]]
|-
|-
| 29 || [[#GetGattIncludedServices]]
| 29 || [[#GetGattIncludedServices]]
Line 553: Line 568:
The u32 is handled the same as [[#BleDisconnect_2|BleDisconnect]].
The u32 is handled the same as [[#BleDisconnect_2|BleDisconnect]].


Same as [[#GetGattServices]] except this only returns the [[#GattService]] which matches the input [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]].
Same as [[#GetGattServices_2|GetGattServices]] except this only returns the [[#GattService]] which matches the input [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]].


=== GetGattIncludedServices ===
=== GetGattIncludedServices ===
Line 560: Line 575:
The u32 is handled the same as [[#BleDisconnect_2|BleDisconnect]]. The max array entries is 100.
The u32 is handled the same as [[#BleDisconnect_2|BleDisconnect]]. The max array entries is 100.


Same as [[#GetGattServices]] except this only returns [[#GattService]] entries where various checks pass with u16 fields.
Same as [[#GetGattServices_2|GetGattServices]] except this only returns [[#GattService]] entries where various checks pass with u16 fields.


The param for the output u8 is unused by the sysmodule, hence the output is always 0. However, a sdknso func which calls the nn::btm::* func for this expects this u8 to be set.
The param for the output u8 is unused by the sysmodule, hence the output is always 0. However, a sdknso func which calls the nn::btm::* func for this expects this u8 to be set.