BTM services: Difference between revisions
No edit summary |
|||
Line 452: | Line 452: | ||
=== GetGattIncludedServices === | === GetGattIncludedServices === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8. | Takes a PID, a type-0x6 output buffer containing an array of [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8. | ||
The u32 is handled the same as [[#BleDisconnect]]. The max array entries is 100. | |||
Same as [[#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. | ||
Line 457: | Line 461: | ||
=== GetBelongingGattService === | === GetBelongingGattService === | ||
Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8 total_out. | Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8 total_out. | ||
The u32 is handled the same as [[#BleDisconnect]]. | |||
This is similar to [[#GetGattIncludedServices]] except this only returns 1 [[#GattService]]. | |||
=== GetGattCharacteristics === | === GetGattCharacteristics === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[#GattCharacteristic]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8 total_out. | Takes a PID, a type-0x6 output buffer containing an array of [[#GattCharacteristic]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8 total_out. | ||
The u32 is handled the same as [[#BleDisconnect]]. The max array entries is 100. | |||
The u16 controls which [[#GattCharacteristic]] entries to return. | |||
=== GetGattDescriptors === | === GetGattDescriptors === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[#GattDescriptor]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8 total_out. | Takes a PID, a type-0x6 output buffer containing an array of [[#GattDescriptor]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u8 total_out. | ||
The u32 is handled the same as [[#BleDisconnect]]. The max array entries is 100. | |||
The u16 controls which [[#GattDescriptor]] entries to return. | |||
=== AcquireBleMtuConfigEvent === | === AcquireBleMtuConfigEvent === | ||
Line 471: | Line 487: | ||
=== ConfigureBleMtu === | === ConfigureBleMtu === | ||
Takes a PID, an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output. | Takes a PID, an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output. | ||
The u32 is handled the same as [[#BleDisconnect]]. | |||
sdknso will Abort if the user-specified u16 is <0x18 or >0x200. | sdknso will Abort if the user-specified u16 is <0x18 or >0x200. | ||
Line 476: | Line 494: | ||
=== GetBleMtu === | === GetBleMtu === | ||
Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u16. | Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], returns an output u16. | ||
The u32 is handled the same as [[#BleDisconnect]]. | |||
=== RegisterBleGattDataPath === | === RegisterBleGattDataPath === | ||
Line 485: | Line 505: | ||
= GattService = | = GattService = | ||
This is "nn::btm::user::GattService". This is a 0x24-byte struct. | This is "nn::btm::user::GattService". This is a 0x24-byte struct. | ||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x4 || | |||
|- | |||
| 0x4 || 0x14 || [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]] | |||
|- | |||
| 0x18 || 0x2 || | |||
|- | |||
| 0x1A || 0x4 || | |||
|- | |||
| 0x1E || 0x2 || | |||
|- | |||
| 0x20 || 0x1 || | |||
|- | |||
| 0x21 || 0x3 || Padding | |||
|} | |||
= GattCharacteristic = | = GattCharacteristic = |