BTM services: Difference between revisions
No edit summary |
|||
(21 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
This has max_sessions 6. IPC is handled by 2 threads shared with all services. | This has max_sessions 6. IPC is handled by 2 threads shared with all services. | ||
With BLE connections, the remote device may receive ATT_READ_BY_GROUP_TYPE_REQ before the BLE connection-complete HCI event. One workaround for this is manually sending the response with HCI, after the connection is ready. | |||
The output bool from all of these btm* service get-event cmds indicates whether the Event was successfully returned, user-processes will Abort when this is 0. | The output bool from all of these btm* service get-event cmds indicates whether the Event was successfully returned, user-processes will Abort when this is 0. | ||
Line 40: | Line 40: | ||
| 12 || [[#IncreaseDeviceInfoOrder]] | | 12 || [[#IncreaseDeviceInfoOrder]] | ||
|- | |- | ||
| 13 || [[#LlrNotify]] | | 13 || [9.0.0+] TriggerConnection ([1.0.0-8.1.1] [[#LlrNotify]]) | ||
|- | |- | ||
| 14 || [[#EnableRadio]] | | 14 || [[#EnableRadio]] | ||
Line 52: | Line 52: | ||
| 18 || [2.0.0+] [[#AcquireAwakeReqEvent]] | | 18 || [2.0.0+] [[#AcquireAwakeReqEvent]] | ||
|- | |- | ||
| 19 || [4.0.0 | | 19 || [9.0.0+] AcquireConnectionTriggerEvent ([4.0.0-8.1.1] [[#AcquireLlrStateEvent]]) | ||
|- | |- | ||
| 20 || [4.0.0 | | 20 || [9.0.0+] IsConnectionTriggered ([4.0.0-8.1.1] [[#IsLlrStarted]]) | ||
|- | |- | ||
| 21 || [4.0.0+] [[#EnableSlotSaving]] | | 21 || [4.0.0+] [[#EnableSlotSaving]] | ||
Line 134: | Line 134: | ||
| 59 ([5.0.0-5.0.2] 42) || [5.0.0+] [[#SetAppletResourceUserId]] | | 59 ([5.0.0-5.0.2] 42) || [5.0.0+] [[#SetAppletResourceUserId]] | ||
|- | |- | ||
| 60 || [8.0.0+] | | 60 || [8.0.0+] [[#AcquireBleConnectionParameterUpdateEvent]] | ||
|- | |- | ||
| 61 || [8.0.0+] | | 61 || [8.0.0+] [[#SetCeLength]] | ||
|- | |- | ||
| 62 || [9.0.0+] | | 62 || [9.0.0+] [[#EnsureSlotExpansion]] | ||
|- | |- | ||
| 63 || [9.0.0+] | | 63 || [9.0.0+] [[#IsSlotExpansionEnsured]] | ||
|- | |- | ||
| 64 || [10.0.0+] | | 64 || [10.0.0+] [[#CancelConnectionTrigger]] | ||
|- | |||
| 65 || [13.0.0+] GetConnectionCapacity | |||
|- | |||
| 66 || [13.0.0+] GetWlanMode | |||
|- | |||
| 67 || [13.0.0+] IsSlotSavingEnabled | |||
|- | |||
| 68 || [13.0.0+] IsSlotSavingForPairingEnabled | |||
|- | |||
| 69 || [13.0.0+] AcquireAudioDeviceConnectionEvent | |||
|- | |||
| 70 || [13.0.0+] GetConnectedAudioDevices | |||
|- | |||
| 71 || [13.0.0+] SetAudioSourceVolume | |||
|- | |||
| 72 || [13.0.0+] GetAudioSourceVolume | |||
|- | |||
| 73 || [13.0.0+] RequestAudioDeviceConnectionRejection | |||
|- | |||
| 74 || [13.0.0+] CancelAudioDeviceConnectionRejection | |||
|- | |||
| 75 || [13.0.0+] GetPairedAudioDevices | |||
|- | |||
| 76 || [13.1.0+] SetWlanModeWithOption | |||
|- | |||
| 100 || [13.0.0+] AcquireConnectionDisallowedEvent | |||
|- | |||
| 101 || [13.0.0+] GetUsecaseViolationFactor | |||
|- | |||
| 110 || [13.0.0+] GetShortenedDeviceInfo | |||
|- | |||
| 111 || [13.0.0+] AcquirePairingCountUpdateEvent | |||
|- | |||
| 112 || [14.0.0-14.1.2] | |||
|- | |||
| 113 || [14.0.0-14.1.2] | |||
|- | |||
| 114 || [14.0.0+] IsFirstAudioControlConnection | |||
|- | |||
| 115 || [14.0.0+] GetShortenedDeviceCondition | |||
|- | |||
| 116 || [15.0.0+] SetAudioSinkVolume | |||
|- | |||
| 117 || [15.0.0+] GetAudioSinkVolume | |||
|} | |} | ||
== GetState == | == GetState == | ||
No input | No input. Returns an output [[#BtmState]]. | ||
== GetHostDeviceProperty == | == GetHostDeviceProperty == | ||
No input | No input. Returns an output [[#HostDeviceProperty]]. | ||
[13.0.0+] Takes a type-0x1A output buffer containing a [[#HostDeviceProperty]]. No output. | |||
This gets the previously initialized [[#HostDeviceProperty]]. | This gets the previously initialized [[#HostDeviceProperty]]. | ||
== AcquireDeviceConditionEvent == | == AcquireDeviceConditionEvent == | ||
No input | No input. Returns an output Event handle with EventClearMode=1. | ||
[3.0.0+] Now returns an additional output bool. | [3.0.0+] Now returns an additional output bool. | ||
== GetDeviceCondition == | == GetDeviceCondition == | ||
Takes a type-0x1A output buffer containing a | Takes a type-0x1A output buffer containing a [[#DeviceConditionList]]. No output. | ||
[13.0.0+] Takes an input u32 [[#Profile]], a type-0xA output buffer containing an array of [[#DeviceCondition]], returns a s32 for total output entries. When [[#Profile]] is non-zero, entries are only returned with a matching [[#Profile]]. | |||
== SetBurstMode == | == SetBurstMode == | ||
Takes an input [[#BdAddress|BdAddress]] and a bool | Takes an input [[#BdAddress|BdAddress]] and a bool. No output. | ||
== SetSlotMode == | == SetSlotMode == | ||
Takes a type-0x19 input buffer containing a [[#DeviceSlotModeList]] | Takes a type-0x19 input buffer containing a [[#DeviceSlotModeList]]. No output. | ||
Sends a request which is then handled as follows: | Sends a request which is then handled as follows: | ||
Line 190: | Line 238: | ||
== SetBluetoothMode == | == SetBluetoothMode == | ||
Takes an input [[#BluetoothMode]] | Takes an input [[#BluetoothMode]]. No output. | ||
== SetWlanMode == | == SetWlanMode == | ||
Takes an input [[#WlanMode]] | Takes an input [[#WlanMode]]. No output. | ||
== AcquireDeviceInfoEvent == | == AcquireDeviceInfoEvent == | ||
No input | No input. Returns an output Event handle with EventClearMode=1. | ||
[3.0.0+] Now returns an additional output bool. | [3.0.0+] Now returns an additional output bool. | ||
== GetDeviceInfo == | == GetDeviceInfo == | ||
Takes a type-0x1A output buffer containing a [[#DeviceInfoList]]. | Takes a type-0x1A output buffer containing a [[#DeviceInfoList]]. No output. | ||
[13.0.0+] Takes an input u32 [[#Profile]], a type-0xA output buffer containing an array of [[#DeviceInfo]], returns a s32 for total output entries. When [[#Profile]] is non-zero, entries are only returned with a matching [[#Profile]]. | |||
== AddDeviceInfo == | == AddDeviceInfo == | ||
Takes an input [[#DeviceInfo]], no output. | Takes an input [[#DeviceInfo]]. No output. | ||
[13.0.0+] Takes a type-0x19 input buffer containing a [[#DeviceInfo]], no output. | |||
== RemoveDeviceInfo == | == RemoveDeviceInfo == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== IncreaseDeviceInfoOrder == | == IncreaseDeviceInfoOrder == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== LlrNotify == | == LlrNotify == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
[9.0.0+] Takes an input [[#BdAddress|BdAddress]] and a s32, no output. | [9.0.0+] Takes an input [[#BdAddress|BdAddress]] and a s32, no output. | ||
Line 224: | Line 276: | ||
== HidDisconnect == | == HidDisconnect == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== HidSetRetransmissionMode == | == HidSetRetransmissionMode == | ||
Takes an input [[#BdAddress|BdAddress]] and a type-0x19 input buffer containing a [[#ZeroRetransmissionList]] | Takes an input [[#BdAddress|BdAddress]] and a type-0x19 input buffer containing a [[#ZeroRetransmissionList]]. No output. | ||
== AcquireAwakeReqEvent == | == AcquireAwakeReqEvent == | ||
No input | No input. Returns an output Event handle with EventClearMode=1. | ||
[3.0.0+] Now returns an additional output bool. | [3.0.0+] Now returns an additional output bool. | ||
== AcquireLlrStateEvent == | == AcquireLlrStateEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== IsLlrStarted == | == IsLlrStarted == | ||
No input | No input. Returns an output bool. | ||
== EnableSlotSaving == | == EnableSlotSaving == | ||
Takes an input bool | Takes an input bool. No output. | ||
== ProtectDeviceInfo == | == ProtectDeviceInfo == | ||
Takes an input [[#BdAddress|BdAddress]] and a bool | Takes an input [[#BdAddress|BdAddress]] and a bool. No output. | ||
== AcquireBleScanEvent == | == AcquireBleScanEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== GetBleScanParameterGeneral == | == GetBleScanParameterGeneral == | ||
Takes an input u16 ParameterId | Takes an input u16 ParameterId. Returns a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. | ||
The u16 must be value 0x1 or 0xFFFF. | The u16 must be value 0x1 or 0xFFFF. | ||
[[HID_services|hid]] uses value 0x1 for Palma. | |||
The output BleAdvertisePacketParameter starting at +0x2 contains (CompanyId is 0x0553 for Nintendo for both of these): | |||
* ParameterId 0x1: <code>000100000100</code> | |||
* ParameterId 0xFFFF: <code>ADDE00EFBE00</code> | |||
== GetBleScanParameterSmartDevice == | == GetBleScanParameterSmartDevice == | ||
Takes an input u16 ParameterId | Takes an input u16 ParameterId. Returns a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]]. | ||
The u16 must be value 0x2. The first 4-bytes of output is always 0 since it's not set. | The u16 must be value 0x2. The first 4-bytes of output is always 0 since it's not set. | ||
== StartBleScanForGeneral == | == StartBleScanForGeneral == | ||
Takes a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], | Takes a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. No output. | ||
This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input BleAdvertisePacketParameter. | |||
This also uses [[Bluetooth_Driver_services#SetBleScanParameter|SetBleScanParameter]]. | |||
== StopBleScanForGeneral == | == StopBleScanForGeneral == | ||
Line 266: | Line 328: | ||
== GetBleScanResultsForGeneral == | == GetBleScanResultsForGeneral == | ||
Takes a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]] | Takes a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]]. Returns an output u8 total_out. | ||
The max array entries is 10. | The max array entries is 10. | ||
== StartBleScanForPaired == | == StartBleScanForPaired == | ||
Takes a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], | Takes a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. No output. | ||
This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input BleAdvertisePacketParameter. | |||
This also uses [[Bluetooth_Driver_services#SetBleScanParameter|SetBleScanParameter]]. | |||
== StopBleScanForPaired == | == StopBleScanForPaired == | ||
Line 277: | Line 343: | ||
== StartBleScanForSmartDevice == | == StartBleScanForSmartDevice == | ||
Takes a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], | Takes a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]]. No output. | ||
This eventually uses [[Bluetooth_Driver_services#AddBleScanFilterCondition|AddBleScanFilterCondition]], where the the passed BleAdvertiseFilter is generated from the input GattAttributeUuid. | |||
This also uses [[Bluetooth_Driver_services#SetBleScanParameter|SetBleScanParameter]]. | |||
The [[Bluetooth_Driver_services#BleAdvertiseFilter|BleAdvertiseFilter]] is generated as follows: CondType = 7(ServiceUuid128), CondDataSize = 0x11. CondData: {128bit UUID copied from the [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]] (size field ignored), then an u8 with value 0x0 (unused)}. MaskSize = 0x10, Mask = {all 0xFF}. | |||
== StopBleScanForSmartDevice == | == StopBleScanForSmartDevice == | ||
Line 283: | Line 355: | ||
== GetBleScanResultsForSmartDevice == | == GetBleScanResultsForSmartDevice == | ||
Takes a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]] | Takes a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]]. Returns an output u8 total_out. | ||
The max array entries is 10. | The max array entries is 10. | ||
== AcquireBleConnectionEvent == | == AcquireBleConnectionEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== BleConnect == | == BleConnect == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
An error is thrown if the [[#BdAddress|BdAddress]] is already connected (listed in the [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] from [[#BleGetConnectionState]]). An error is thrown if 4 [[#BleGetConnectionState|devices]] are already connected. | An error is thrown if the [[#BdAddress|BdAddress]] is already connected (listed in the [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] from [[#BleGetConnectionState]]). An error is thrown if 4 [[#BleGetConnectionState|devices]] are already connected. | ||
== BleOverrideConnection == | == BleOverrideConnection == | ||
Takes an input u32 | Takes an input u32 ConnectionHandle. No output. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== BleDisconnect == | == BleDisconnect == | ||
Takes an input u32 ConnectionHandle | Takes an input u32 ConnectionHandle. No output. | ||
The u32 must match a ConnectionHandle in a [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] from [[#BleGetConnectionState]]. [5.1.0+] 0xFFFFFFFF is invalid. | The u32 must match a ConnectionHandle in a [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] from [[#BleGetConnectionState]]. [5.1.0+] 0xFFFFFFFF is invalid. | ||
== BleGetConnectionState == | == BleGetConnectionState == | ||
Takes a type-0xA output buffer containing an array of [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]] | Takes a type-0xA output buffer containing an array of [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]]. Returns an output u8 total_out. | ||
Other cmds which use this internally use arraycount=4. | Other cmds which use this internally use arraycount=4. | ||
Line 314: | Line 386: | ||
== AcquireBlePairingEvent == | == AcquireBlePairingEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== BlePairDevice == | == BlePairDevice == | ||
Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32 | Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an input u32 ConnectionHandle. No output. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== BleUnpairDeviceOnBoth == | == BleUnpairDeviceOnBoth == | ||
Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] an input u32 ConnectionHandle. No output. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== BleUnpairDevice == | == BleUnpairDevice == | ||
Takes an input [[#BdAddress|BdAddress]] and a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes an input [[#BdAddress|BdAddress]] and a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. No output. | ||
== BleGetPairedAddresses == | == BleGetPairedAddresses == | ||
Takes a type-0xA output buffer containing an array of [[#BdAddress|BdAddress]], a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes a type-0xA output buffer containing an array of [[#BdAddress|BdAddress]], a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. Returns an output u8 total_out. | ||
The max array entries is 10. | The max array entries is 10. | ||
== AcquireBleServiceDiscoveryEvent == | == AcquireBleServiceDiscoveryEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== GetGattServices == | == GetGattServices == | ||
Takes a type-0x6 output buffer containing an array of [[#GattService]] | Takes a type-0x6 output buffer containing an array of [[#GattService]] and an input u32 ConnectionHandle. Returns an output u8 total_out. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | ||
== GetGattService == | == GetGattService == | ||
Takes a type-0x1A output buffer containing a [[#GattService]], an u32 | Takes a type-0x1A output buffer containing a [[#GattService]], an input u32 ConnectionHandle and a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]]. Returns an output bool. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The output bool indicates whether a [[#GattService]] was returned. | The u32 is the same as the param for [[#BleDisconnect]]. The output bool indicates whether a [[#GattService]] was returned. | ||
Line 350: | Line 422: | ||
== GetGattIncludedServices == | == GetGattIncludedServices == | ||
Takes a type-0x6 output buffer containing an array of [[#GattService]], an u16 ServiceHandle | Takes a type-0x6 output buffer containing an array of [[#GattService]], an u16 ServiceHandle and an input u32 ConnectionHandle. Returns an output u8. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | ||
Line 359: | Line 431: | ||
== GetBelongingService == | == GetBelongingService == | ||
Takes a type-0x1A output buffer containing a [[#GattService]], an u16 AttributeHandle | Takes a type-0x1A output buffer containing a [[#GattService]], an u16 AttributeHandle and an input u32 ConnectionHandle. Returns an output bool. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The output bool indicates whether a [[#GattService]] was returned. | The u32 is the same as the param for [[#BleDisconnect]]. The output bool indicates whether a [[#GattService]] was returned. | ||
Line 366: | Line 438: | ||
== GetGattCharacteristics == | == GetGattCharacteristics == | ||
Takes a type-0x6 output buffer containing an array of [[#GattCharacteristic]], an u16 ServiceHandle | Takes a type-0x6 output buffer containing an array of [[#GattCharacteristic]], an u16 ServiceHandle and an input u32 ConnectionHandle. Returns an output u8 total_out. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | ||
Line 373: | Line 445: | ||
== GetGattDescriptors == | == GetGattDescriptors == | ||
Takes a type-0x6 output buffer containing an array of [[#GattDescriptor]], an u16 CharHandle | Takes a type-0x6 output buffer containing an array of [[#GattDescriptor]], an u16 CharHandle and an input u32 ConnectionHandle. Returns an output u8 total_out. | ||
The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | The u32 is the same as the param for [[#BleDisconnect]]. The max array entries is 100. | ||
Line 380: | Line 452: | ||
== AcquireBleMtuConfigEvent == | == AcquireBleMtuConfigEvent == | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
== ConfigureBleMtu == | == ConfigureBleMtu == | ||
Takes an u16 mtu | Takes an u16 mtu and an input u32 ConnectionHandle. No output. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== GetBleMtu == | == GetBleMtu == | ||
Takes an u32 | Takes an input u32 ConnectionHandle. Returns an output u16 mtu. | ||
The u32 is the same as the param for [[#BleDisconnect]]. | The u32 is the same as the param for [[#BleDisconnect]]. | ||
== RegisterBleGattDataPath == | == RegisterBleGattDataPath == | ||
Takes a [[#BleDataPath]] | Takes a [[#BleDataPath]]. No output. | ||
== UnregisterBleGattDataPath == | == UnregisterBleGattDataPath == | ||
Takes a [[#BleDataPath]] | Takes a [[#BleDataPath]]. No output. | ||
== RegisterAppletResourceUserId == | == RegisterAppletResourceUserId == | ||
Takes an input u32 and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes an input u32 and an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
== UnregisterAppletResourceUserId == | == UnregisterAppletResourceUserId == | ||
Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
== SetAppletResourceUserId == | == SetAppletResourceUserId == | ||
Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes an input [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
== | == AcquireBleConnectionParameterUpdateEvent == | ||
No input | No input. Returns an output Event handle with EventClearMode=1. | ||
== | == SetCeLength == | ||
Takes | Takes an input [[#DeviceCeLengthList|DeviceCeLengthList]]. No output. | ||
Sends a request which is then handled as follows: | Sends a request which is then handled as follows: | ||
* Calls a func for getting the data from the input struct etc for passing to another func, that func is the same one called by [[#SetSlotMode]]. | * Calls a func for getting the data from the input struct etc for passing to another func, that func is the same one called by [[#SetSlotMode]]. | ||
== EnsureSlotExpansion == | |||
Takes an input bool. No output. | |||
Takes an input bool | |||
Sends a request which is handled as follows: writes the flag into state if needed. | Sends a request which is handled as follows: writes the flag into state if needed. | ||
== | == IsSlotExpansionEnsured == | ||
No input | No input. Returns an output bool. | ||
This gets the flag used by [[# | This gets the flag used by [[#EnsureSlotExpansion]]. | ||
== | == CancelConnectionTrigger == | ||
No input/output. | No input/output. | ||
Line 476: | Line 518: | ||
| 2 || [[#CancelDiscovery]] | | 2 || [[#CancelDiscovery]] | ||
|- | |- | ||
| 3 || [[#GetDeviceProperty]] | | 3 || [12.0.0+] IsDiscoveryEnabled ([1.0.0-11.0.1] [[#GetDeviceProperty]]) | ||
|- | |- | ||
| 4 || [[#CreateBond]] | | 4 || [[#CreateBond]] | ||
Line 495: | Line 537: | ||
|- | |- | ||
| 12 || [5.1.0+] [[#GetBleConnectionParameterRequest]] | | 12 || [5.1.0+] [[#GetBleConnectionParameterRequest]] | ||
|- | |||
| 13 || [12.0.0+] GetDiscoveredDevice | |||
|- | |||
| 14 || [15.0.0+] SleepAwakeLoopTest | |||
|- | |||
| 15 || [15.0.0+] SleepTest | |||
|- | |||
| 16 || [15.0.0+] MinimumAwakeTest | |||
|- | |||
| 17 || [15.0.0+] ForceEnableBtm | |||
|} | |} | ||
== AcquireDiscoveryEvent == | == AcquireDiscoveryEvent == | ||
No input | No input. Returns output an Event handle with EventClearMode=1. | ||
[3.0.0+] Now returns an additional output bool. | [3.0.0+] Now returns an additional output bool. | ||
Line 509: | Line 561: | ||
== GetDeviceProperty == | == GetDeviceProperty == | ||
Takes a type-0x1A output buffer containing a [[#DevicePropertyList]]. | Takes a type-0x1A output buffer containing a [[#DevicePropertyList]]. No output. | ||
== CreateBond == | == CreateBond == | ||
Takes an input [[#BdAddress|BdAddress]], | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
[13.0.0+] Now takes a type-0xA output buffer, returns a total of 4-bytes of output. | |||
== CancelBond == | == CancelBond == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== SetTsiMode == | == SetTsiMode == | ||
Takes an input [[#BdAddress|BdAddress]] and a [[#TsiMode]] | Takes an input [[#BdAddress|BdAddress]] and a [[#TsiMode]]. No output. | ||
Sends a request which is handled as follows: uses [[Bluetooth_Driver_services#SetTsi|SetTsi]] directly with the specified params. | Sends a request which is handled as follows: uses [[Bluetooth_Driver_services#SetTsi|SetTsi]] directly with the specified params. | ||
== GeneralTest == | == GeneralTest == | ||
Takes an input s32 | Takes an input s32. No output. | ||
== HidConnect == | == HidConnect == | ||
Takes an input [[#BdAddress|BdAddress]] | Takes an input [[#BdAddress|BdAddress]]. No output. | ||
== GeneralGet == | == GeneralGet == | ||
Takes an input u32 and a type-0x1A output buffer containing a 0x11-byte struct. | Takes an input u32 and a type-0x1A output buffer containing a 0x11-byte struct. No output. | ||
== GetGattClientDisconnectionReason == | == GetGattClientDisconnectionReason == | ||
Takes an input [[#BdAddress|BdAddress]] and an u32 | Takes an input [[#BdAddress|BdAddress]] and an u32. Returns an output bool and u16. | ||
The bool indicates whether the cmd is successful. | The bool indicates whether the cmd is successful. | ||
== GetBleConnectionParameter == | == GetBleConnectionParameter == | ||
Takes an input u32 | Takes an input u32. Returns an output bool and 3 u16s. | ||
The bool indicates whether the cmd is successful, the output u16s are only set when this bool is set. | The bool indicates whether the cmd is successful, the output u16s are only set when this bool is set. | ||
== GetBleConnectionParameterRequest == | == GetBleConnectionParameterRequest == | ||
Takes an input u32 | Takes an input u32. Returns an output bool and 4 u16s. | ||
The bool indicates whether the cmd is successful, the output u16s are only set when this bool is set. | The bool indicates whether the cmd is successful, the output u16s are only set when this bool is set. | ||
Line 559: | Line 613: | ||
== GetCore == | == GetCore == | ||
No input | No input. Returns an output [[#IBtmSystemCore]]. | ||
== IBtmSystemCore == | == IBtmSystemCore == | ||
Line 580: | Line 634: | ||
| 5 || [[#DisableRadio]] | | 5 || [[#DisableRadio]] | ||
|- | |- | ||
| 6 || [[# | | 6 || [[#IsRadioEnabled]] | ||
|- | |- | ||
| 7 || [3.0.0+] [[#AcquireRadioEvent]] | | 7 || [3.0.0+] [[#AcquireRadioEvent]] | ||
Line 587: | Line 641: | ||
|- | |- | ||
| 9 || [3.0.0+] [[#IsGamepadPairingStarted]] | | 9 || [3.0.0+] [[#IsGamepadPairingStarted]] | ||
|- | |||
| 10 || [13.0.0+] StartAudioDeviceDiscovery | |||
|- | |||
| 11 || [13.0.0+] StopAudioDeviceDiscovery | |||
|- | |||
| 12 || [13.0.0+] IsDiscoveryingAudioDevice | |||
|- | |||
| 13 || [13.0.0+] GetDiscoveredAudioDevice | |||
|- | |||
| 14 || [13.0.0+] AcquireAudioDeviceConnectionEvent | |||
|- | |||
| 15 || [13.0.0+] ConnectAudioDevice | |||
|- | |||
| 16 || [13.0.0+] IsConnectingAudioDevice | |||
|- | |||
| 17 || [13.0.0+] GetConnectedAudioDevices | |||
|- | |||
| 18 || [13.0.0+] DisconnectAudioDevice | |||
|- | |||
| 19 || [13.0.0+] AcquirePairedAudioDeviceInfoChangedEvent | |||
|- | |||
| 20 || [13.0.0+] GetPairedAudioDevices | |||
|- | |||
| 21 || [13.0.0+] RemoveAudioDevicePairing | |||
|- | |||
| 22 || [13.0.0+] RequestAudioDeviceConnectionRejection | |||
|- | |||
| 23 || [13.0.0+] CancelAudioDeviceConnectionRejection | |||
|} | |} | ||
Line 599: | Line 681: | ||
=== GetPairedGamepadCount === | === GetPairedGamepadCount === | ||
No input | No input. Returns an output u8. | ||
=== EnableRadio === | === EnableRadio === | ||
Line 607: | Line 689: | ||
No input/output. | No input/output. | ||
=== | === IsRadioEnabled === | ||
No input | No input. Returns an output bool. | ||
=== AcquireRadioEvent === | === AcquireRadioEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
=== AcquireGamepadPairingEvent === | === AcquireGamepadPairingEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
=== IsGamepadPairingStarted === | === IsGamepadPairingStarted === | ||
No input | No input. Returns an output bool. | ||
= btm:u = | = btm:u = | ||
Line 634: | Line 716: | ||
== GetCore == | == GetCore == | ||
No input | No input. Returns an output [[#IBtmUserCore]]. | ||
== IBtmUserCore == | == IBtmUserCore == | ||
Line 645: | Line 727: | ||
| 0 || [[#AcquireBleScanEvent_2|AcquireBleScanEvent]] | | 0 || [[#AcquireBleScanEvent_2|AcquireBleScanEvent]] | ||
|- | |- | ||
| 1 || [[#GetBleScanFilterParameter]] | | 1 || [[#GetBleScanFilterParameter|GetBleScanFilterParameter]] | ||
|- | |- | ||
| 2 || [[#GetBleScanFilterParameter2]] | | 2 || [[#GetBleScanFilterParameter2|GetBleScanFilterParameter2]] | ||
|- | |- | ||
| 3 || [[#StartBleScanForGeneral_2|StartBleScanForGeneral]] | | 3 || [[#StartBleScanForGeneral_2|StartBleScanForGeneral]] | ||
Line 679: | Line 761: | ||
| 23 || [[#BleUnPairDevice_2|BleUnPairDevice]] | | 23 || [[#BleUnPairDevice_2|BleUnPairDevice]] | ||
|- | |- | ||
| 24 || [[#BleUnPairDevice2]] | | 24 || [[#BleUnPairDevice2|BleUnPairDevice2]] | ||
|- | |- | ||
| 25 || [[#BleGetPairedDevices]] | | 25 || [[#BleGetPairedDevices|BleGetPairedDevices]] | ||
|- | |- | ||
| 26 || [[#AcquireBleServiceDiscoveryEvent_2|AcquireBleServiceDiscoveryEvent]] | | 26 || [[#AcquireBleServiceDiscoveryEvent_2|AcquireBleServiceDiscoveryEvent]] | ||
Line 691: | Line 773: | ||
| 29 || [[#GetGattIncludedServices_2|GetGattIncludedServices]] | | 29 || [[#GetGattIncludedServices_2|GetGattIncludedServices]] | ||
|- | |- | ||
| 30 || [[#GetBelongingGattService]] | | 30 || [[#GetBelongingGattService|GetBelongingGattService]] | ||
|- | |- | ||
| 31 || [[#GetGattCharacteristics_2|GetGattCharacteristics]] | | 31 || [[#GetGattCharacteristics_2|GetGattCharacteristics]] | ||
Line 709: | Line 791: | ||
=== AcquireBleScanEvent === | === AcquireBleScanEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBleScanEvent|btm]] cmd. | This is similar to the [[#AcquireBleScanEvent|btm]] cmd. | ||
=== GetBleScanFilterParameter === | === GetBleScanFilterParameter === | ||
Takes an input u16 | Takes an input u16. Returns a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. | ||
This is the same as [[#GetBleScanParameterGeneral]]. | This is the same as [[#GetBleScanParameterGeneral]]. | ||
=== GetBleScanFilterParameter2 === | === GetBleScanFilterParameter2 === | ||
Takes an input u16 | Takes an input u16. Returns a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]]. | ||
This is the same as [[#GetBleScanParameterSmartDevice]]. | This is the same as [[#GetBleScanParameterSmartDevice]]. | ||
=== StartBleScanForGeneral === | === StartBleScanForGeneral === | ||
Takes a PID, a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#StartBleScanForGeneral|btm]] cmd. | This is similar to the [[#StartBleScanForGeneral|btm]] cmd. | ||
Line 734: | Line 816: | ||
=== GetBleScanResultsForGeneral === | === GetBleScanResultsForGeneral === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#GetBleScanResultsForGeneral|btm]] cmd. | This is similar to the [[#GetBleScanResultsForGeneral|btm]] cmd. | ||
=== StartBleScanForPaired === | === StartBleScanForPaired === | ||
Takes a PID, a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#StartBleScanForPaired|btm]] cmd. | This is similar to the [[#StartBleScanForPaired|btm]] cmd. | ||
Line 749: | Line 831: | ||
=== StartBleScanForSmartDevice === | === StartBleScanForSmartDevice === | ||
Takes a PID, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#StartBleScanForSmartDevice|btm]] cmd. | This is similar to the [[#StartBleScanForSmartDevice|btm]] cmd. | ||
Line 759: | Line 841: | ||
=== GetBleScanResultsForSmartDevice === | === GetBleScanResultsForSmartDevice === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[Bluetooth_Driver_services#BleScanResult|BleScanResult]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#GetBleScanResultsForSmartDevice|btm]] cmd. | This is similar to the [[#GetBleScanResultsForSmartDevice|btm]] cmd. | ||
=== AcquireBleConnectionEvent === | === AcquireBleConnectionEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBleConnectionEvent|btm]] cmd. | This is similar to the [[#AcquireBleConnectionEvent|btm]] cmd. | ||
=== BleConnect === | === BleConnect === | ||
Takes a PID, an [[#BdAddress|BdAddress]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, an [[#BdAddress|BdAddress]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#BleConnect|btm]] cmd. | This is similar to the [[#BleConnect|btm]] cmd. | ||
=== BleDisconnect === | === BleDisconnect === | ||
Takes an input u32 | Takes an input u32. No output. | ||
This is similar to the [[#BleDisconnect|btm]] cmd. | This is similar to the [[#BleDisconnect|btm]] cmd. | ||
=== BleGetConnectionState === | === BleGetConnectionState === | ||
Takes a PID, a type-0xA output buffer containing an array of [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0xA output buffer containing an array of [[Bluetooth_Driver_services#BleConnectionInfo|BleConnectionInfo]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#BleGetConnectionState|btm]] cmd. | This is similar to the [[#BleGetConnectionState|btm]] cmd. | ||
=== AcquireBlePairingEvent === | === AcquireBlePairingEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBlePairingEvent|btm]] cmd. | This is similar to the [[#AcquireBlePairingEvent|btm]] cmd. | ||
=== BlePairDevice === | === BlePairDevice === | ||
Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32 | Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32. No output. | ||
This is similar to the [[#BlePairDevice|btm]] cmd. | This is similar to the [[#BlePairDevice|btm]] cmd. | ||
=== BleUnPairDevice === | === BleUnPairDevice === | ||
Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32 | Takes an input [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] and an u32. No output. | ||
This is similar to the [[#BleUnpairDeviceOnBoth|btm]] cmd. | This is similar to the [[#BleUnpairDeviceOnBoth|btm]] cmd. | ||
=== BleUnPairDevice2 === | === BleUnPairDevice2 === | ||
Takes an input [[#BdAddress|BdAddress]] and a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes an input [[#BdAddress|BdAddress]] and a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. No output. | ||
This is similar to the [[#BleUnPairDevice|btm]] cmd. | This is similar to the [[#BleUnPairDevice|btm]] cmd. | ||
=== BleGetPairedDevices === | === BleGetPairedDevices === | ||
Takes a type-0xA output buffer containing an array of [[#BdAddress|BdAddress]], a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]] | Takes a type-0xA output buffer containing an array of [[#BdAddress|BdAddress]], a [[Bluetooth_Driver_services#BleAdvertisePacketParameter|BleAdvertisePacketParameter]]. Returns an output u8 total_out. | ||
This is the same as the [[#BleGetPairedAddresses|btm]] cmd. | This is the same as the [[#BleGetPairedAddresses|btm]] cmd. | ||
=== AcquireBleServiceDiscoveryEvent === | === AcquireBleServiceDiscoveryEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBleServiceDiscoveryEvent|btm]] cmd. | This is similar to the [[#AcquireBleServiceDiscoveryEvent|btm]] cmd. | ||
Line 816: | Line 898: | ||
=== GetGattServices === | === GetGattServices === | ||
Takes a PID, a type-0x6 output buffer containing an array of [[#GattService]], an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x6 output buffer containing an array of [[#GattService]], an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u8 total_out. | ||
This is similar to the [[#GetGattServices|btm]] cmd. | This is similar to the [[#GetGattServices|btm]] cmd. | ||
=== GetGattService === | === GetGattService === | ||
Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u32, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u32, a [[Bluetooth_Driver_services#GattAttributeUuid|GattAttributeUuid]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output bool. | ||
This is similar to the [[#GetGattService|btm]] cmd. | This is similar to the [[#GetGattService|btm]] cmd. | ||
=== 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]] | 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. | ||
This is similar to the [[#GetGattIncludedServices|btm]] cmd. | This is similar to the [[#GetGattIncludedServices|btm]] cmd. | ||
Line 833: | Line 915: | ||
=== GetBelongingGattService === | === GetBelongingGattService === | ||
Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a type-0x1A output buffer containing a [[#GattService]], an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output bool. | ||
This is similar to the [[#GetBelongingService|btm]] cmd. | This is similar to the [[#GetBelongingService|btm]] cmd. | ||
=== 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]] | 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. | ||
This is similar to the [[#GetGattCharacteristics|btm]] cmd. | This is similar to the [[#GetGattCharacteristics|btm]] cmd. | ||
=== 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]] | 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. | ||
This is similar to the [[#GetGattDescriptors|btm]] cmd. | This is similar to the [[#GetGattDescriptors|btm]] cmd. | ||
=== AcquireBleMtuConfigEvent === | === AcquireBleMtuConfigEvent === | ||
No input | No input. Returns an output bool and an Event handle with EventClearMode=1. | ||
This is similar to the [[#AcquireBleMtuConfigEvent|btm]] cmd. | This is similar to the [[#AcquireBleMtuConfigEvent|btm]] cmd. | ||
=== ConfigureBleMtu === | === ConfigureBleMtu === | ||
Takes a PID, an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, an u16, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#ConfigureBleMtu|btm]] cmd. | This is similar to the [[#ConfigureBleMtu|btm]] cmd. | ||
Line 860: | Line 942: | ||
=== GetBleMtu === | === GetBleMtu === | ||
Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, an u32, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. Returns an output u16. | ||
This is similar to the [[#GetBleMtu|btm]] cmd. | This is similar to the [[#GetBleMtu|btm]] cmd. | ||
=== RegisterBleGattDataPath === | === RegisterBleGattDataPath === | ||
Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#RegisterBleGattDataPath|btm]] cmd. | This is similar to the [[#RegisterBleGattDataPath|btm]] cmd. | ||
=== UnregisterBleGattDataPath === | === UnregisterBleGattDataPath === | ||
Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]] | Takes a PID, a [[#BleDataPath]], an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]]. No output. | ||
This is similar to the [[#UnregisterBleGattDataPath|btm]] cmd. | This is similar to the [[#UnregisterBleGattDataPath|btm]] cmd. | ||
Line 980: | Line 1,062: | ||
|- | |- | ||
| 2 || 6 | | 2 || 6 | ||
|- | |||
| 3 || Active | |||
|} | |||
= SniffMode = | |||
This is "nn::btm::SniffMode". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || 5ms | |||
|- | |||
| 1 || 10ms | |||
|- | |||
| 2 || 15ms | |||
|- | |- | ||
| 3 || Active | | 3 || Active | ||
Line 994: | Line 1,092: | ||
|- | |- | ||
| 1 || Hid | | 1 || Hid | ||
|- | |||
| 2 || [13.0.0+] Audio | |||
|} | |} | ||
Line 1,008: | Line 1,108: | ||
|- | |- | ||
| 0x2 || 0x2 || Pid | | 0x2 || 0x2 || Pid | ||
|} | |||
= HidDeviceCondition = | |||
This is "nn::btm::HidDeviceCondition". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x4 || [[#SniffMode|SniffMode]] | |||
|- | |||
| 0x4 || 0x4 || [[#SlotMode|SlotMode]] | |||
|- | |||
| 0x8 || 0x1 || IsBurstMode | |||
|- | |||
| 0x9 || 0x11 || [[#ZeroRetransmissionList|ZeroRetransmissionList]] | |||
|- | |||
| 0x1A || 0x2 || Vid | |||
|- | |||
| 0x1C || 0x2 || Pid | |||
|} | |} | ||
= HostDeviceProperty = | = HostDeviceProperty = | ||
This is "nn::btm::HostDeviceProperty". This is a 0x2A-byte struct. | This is "nn::btm::HostDeviceProperty". This is a 0x2A-byte struct. | ||
[13.0.0+] This is a 0x103-byte struct. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,026: | Line 1,150: | ||
|- | |- | ||
| 0x29 || 0x1 || FeatureSet | | 0x29 || 0x1 || FeatureSet | ||
|- | |||
| 0x2A || 0xD9 || [13.0.0+] | |||
|} | |} | ||
= DeviceSlotMode = | = DeviceSlotMode = | ||
This is "nn::btm::DeviceSlotMode" | This is "nn::btm::DeviceSlotMode". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,058: | Line 1,184: | ||
|- | |- | ||
| 0x4 || 0xC * 8 || Array of [[#DeviceSlotMode|DeviceSlotMode]] | | 0x4 || 0xC * 8 || Array of [[#DeviceSlotMode|DeviceSlotMode]] | ||
|} | |||
= DeviceCondition = | |||
This is "nn::btm::DeviceCondition". This is a 0x6C-byte struct. | |||
[13.0.0+] This is a 0x148-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x6 || [[#BdAddress|BdAddress]] | |||
|- | |||
| 0x6 || 0x2 || Reserved | |||
|- | |||
| 0x8 || 0x4 || [[#Profile|Profile]] | |||
|- | |||
| 0xC || 0x20 || [[#BdName|BdName]] | |||
|- | |||
| 0x2C || 0x20 || Empty (Profile = None) or [[#HidDeviceCondition|HidDeviceCondition]] (Profile = Hid) | |||
|- | |||
| 0x4C || 0x20 || Reserved | |||
|- | |||
| 0x6C || 0xDC || [13.0.0+] | |||
|} | |||
= DeviceConditionList = | |||
This is "nn::btm::DeviceConditionList". This is a 0x36C-byte struct. | |||
[13.0.0+] This is a 0xA4C-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x4 || [[#BluetoothMode|BluetoothMode]] | |||
|- | |||
| 0x4 || 0x4 || [[#WlanMode|WlanMode]] | |||
|- | |||
| 0x8 || 0x1 || IsSlotSavingForPairing | |||
|- | |||
| 0x9 || 0x1 || DeviceCount | |||
|- | |||
| 0xA || 0x2 || Reserved | |||
|- | |||
| 0xC || 0x148 * 8 ([1.0.0-12.1.0] 0x6C * 8) || Array of [[#DeviceCondition|DeviceCondition]] | |||
|} | |} | ||
= DeviceInfo = | = DeviceInfo = | ||
This is "nn::btm::DeviceInfo". This is a 0x60-byte struct. | This is "nn::btm::DeviceInfo". This is a 0x60-byte struct. | ||
[13.0.0+] This is a 0x13C-byte struct. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,084: | Line 1,262: | ||
|- | |- | ||
| 0x44 || 0x1C || Reserved | | 0x44 || 0x1C || Reserved | ||
|- | |||
| 0x60 || 0xDC || [13.0.0+] | |||
|} | |} | ||
= DeviceInfoList = | = DeviceInfoList = | ||
This is "nn::btm::DeviceInfoList". This is a 0x3C4-byte struct. | This is "nn::btm::DeviceInfoList". This is a 0x3C4-byte struct. | ||
[13.0.0+] This is a 0xC5C-byte struct. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,099: | Line 1,281: | ||
| 0x1 || 0x3 || Reserved | | 0x1 || 0x3 || Reserved | ||
|- | |- | ||
| 0x4 || | | 0x4 || 0x13C * 10 ([1.0.0-12.1.0] 0x60 * 10) || Array of [[#DeviceInfo|DeviceInfo]] | ||
|} | |} | ||
Line 1,130: | Line 1,312: | ||
|- | |- | ||
| 0x1 || 0x29 * 15 || Array of [[#DeviceProperty|DeviceProperty]] | | 0x1 || 0x29 * 15 || Array of [[#DeviceProperty|DeviceProperty]] | ||
|} | |||
= DeviceCeLength = | |||
This is "nn::btm::DeviceCeLength". This is a 0x10-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x6 || [[#BdAddress|BdAddress]] | |||
|- | |||
| 0x6 || 0x6 || Reserved | |||
|- | |||
| 0xC || 0x1 || CeLength (used for [[Bluetooth_Driver_services#BleConnectionParameter|BleConnectionParameter]]) | |||
|- | |||
| 0xD || 0x3 || Reserved | |||
|} | |||
= DeviceCeLengthList = | |||
This is "nn::btm::DeviceCeLengthList". This is a 0x44-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x10 * 4 || Array of [[#DeviceCeLength|DeviceCeLength]] | |||
|- | |||
| 0x40 || 0x4 || DeviceCount | |||
|} | |} | ||