Changes

Jump to navigation Jump to search
no edit summary
Line 215: Line 215:  
|-
 
|-
 
| 100 || [12.0.0+] [[#IsBluetoothEnabled]]
 
| 100 || [12.0.0+] [[#IsBluetoothEnabled]]
 +
|-
 +
| 101 || [15.0.0+] ForceEnableBluetooth
 +
|-
 +
| 102 || [15.0.0+] EnableBluetoothStub
 
|-
 
|-
 
| 128 || [12.0.0+] [[#AcquireAudioEvent]]
 
| 128 || [12.0.0+] [[#AcquireAudioEvent]]
Line 248: Line 252:  
| 143 || [12.0.0+] [[#GetAudioControlInputState]]
 
| 143 || [12.0.0+] [[#GetAudioControlInputState]]
 
|-
 
|-
| 144 || [12.0.0+] [[#AcquireAudioConnectionStateChangedEvent]]
+
| 144 || [12.0.0-13.2.1] [[#AcquireAudioConnectionStateChangedEvent]]
 
|-
 
|-
| 145 || [12.0.0+] [[#GetConnectedAudioDevice]]
+
| 145 || [12.0.0-13.2.1] [[#GetConnectedAudioDevice]]
 
|-
 
|-
 
| 146 || [13.0.0+] [[#CloseAudioControlInput]]
 
| 146 || [13.0.0+] [[#CloseAudioControlInput]]
Line 259: Line 263:  
|-
 
|-
 
| 149 || [13.0.0+] [[#SendAudioControlSetAbsoluteVolumeCommand]]
 
| 149 || [13.0.0+] [[#SendAudioControlSetAbsoluteVolumeCommand]]
 +
|-
 +
| 150 || [14.0.0+] AcquireAudioSinkVolumeLocallyChangedEvent
 +
|-
 +
| 151 || [14.0.0+] AcquireAudioSinkVolumeUpdateRequestCompletedEvent
 +
|-
 +
| 152 || [14.0.0+] GetAudioSinkVolume
 +
|-
 +
| 153 || [14.0.0+] RequestUpdateAudioSinkVolume
 +
|-
 +
| 154 || [14.0.0+] IsAudioSinkVolumeSupported
 +
|-
 +
| 155 || [15.0.0+] IsAudioSinkVolumeSupported2
 
|-
 
|-
 
| 256 || [5.0.0+] [[#IsManufacturingMode]]
 
| 256 || [5.0.0+] [[#IsManufacturingMode]]
Line 329: Line 345:  
[12.0.0+] The Enable vfunc called above for Audio does the following:
 
[12.0.0+] The Enable vfunc called above for Audio does the following:
 
* Calls a func which does the following:
 
* Calls a func which does the following:
** Uses BSA to enable AV. Besides the callback, the only field in the passed struct which is set is <code>features</code>. This is ORRed to set bit0 for "remote control target", which with [13.0.0+] is only done if [[System_Settings|system-setting]] <code>bluetooth_debug!is_av_rc_tg</code> is set to true.
+
** Uses BSA to enable AV. Besides the callback, the only field in the passed struct which is set is <code>features</code>. This is ORRed to set bit0 for "remote control target", which with [13.0.0+] is only done if [[System_Settings|system-setting]] <code>bluetooth_debug!is_av_rc_tg</code> is set to true. With [14.0.0+] this is also ORRed with value 0xA (bit1/bit3) when [[System_Settings|system-setting]] <code>bluetooth_debug!is_av_rc_ct</code> is set to true (which is the case for [14.0.0+]).
 
** Error handling + state setup is done.
 
** Error handling + state setup is done.
 
** Uses BSA to register AV twice, with the default input struct.
 
** Uses BSA to register AV twice, with the default input struct.
Line 795: Line 811:     
== ConnectGattServer ==
 
== ConnectGattServer ==
Takes an input u8, an [[#Address]], a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
+
Takes an input u8 client_if, an [[#Address]], a bool, an [[Applet_Manager_services#AppletResourceUserId|AppletResourceUserId]], no output.
    
This is used by [[BTM_services|btm]].
 
This is used by [[BTM_services|btm]].
 +
 +
The input bool and AppletResourceUserId are unused.
 +
 +
The is_direct field passed to BSA is value 1.
    
== CancelConnectGattServer ==
 
== CancelConnectGattServer ==
Line 948: Line 968:  
== SetBleScanParameter ==
 
== SetBleScanParameter ==
 
Takes two input u16s, no output.
 
Takes two input u16s, no output.
 +
 +
The first u16 is scan_interval, the second u16 is scan_window.
    
This is used by [[BTM_services|btm]].
 
This is used by [[BTM_services|btm]].
Line 1,848: Line 1,870:  
| 0x0 || 0x1 || FilterId
 
| 0x0 || 0x1 || FilterId
 
|-
 
|-
| 0x1 || 0x1 || Size of CondData. Only used with CondType Manu.
+
| 0x1 || 0x1 || CondDataSize. Only used with CondType Manu.
 
|-
 
|-
 
| 0x2 || 0x1 || CondType
 
| 0x2 || 0x1 || CondType
Line 1,856: Line 1,878:  
| 0x20 || 0x1D || Mask. Only used with CondType Manu. +0 = u16 CompanyIdMask, then {pattern mask}.
 
| 0x20 || 0x1D || Mask. Only used with CondType Manu. +0 = u16 CompanyIdMask, then {pattern mask}.
 
|-
 
|-
| 0x3D || 0x1 || Size of Mask. Only used with CondType Manu.
+
| 0x3D || 0x1 || MaskSize. Only used with CondType Manu.
 
|}
 
|}
   Line 1,874: Line 1,896:  
| 255 || || Manu. CondData: u16 CompanyId, then {pattern data}.
 
| 255 || || Manu. CondData: u16 CompanyId, then {pattern data}.
 
|}
 
|}
 +
 +
To pass filtering, the BLE advert data should be: data & Mask == CondData (following the type field in the advert entry with the matching type).
    
= BleAdvertisePacketParameter =
 
= BleAdvertisePacketParameter =
 
This is "nn::bluetooth::BleAdvertisePacketParameter". This is a 8-byte struct with 1-byte alignment.
 
This is "nn::bluetooth::BleAdvertisePacketParameter". This is a 8-byte struct with 1-byte alignment.
 +
 +
[[BTM_services#StartBleScanForGeneral|StartBleScanForGeneral]] generates a [[#BleAdvertiseFilter]] from this. CondType = Manu, CondDataSize = 0xA. CondData: +0 = u16 CompanyId, u8 +2 = 0x1, +3 = {data copied from PatternData, then an u8 with value 0x0}. MaskSize = 0x9, Mask = {all 0xFF}.
 +
 +
[[BTM_services#StartBleScanForPaired|StartBleScanForPaired]] generates a [[#BleAdvertiseFilter]] from this, similar to the above. CondType = Manu, CondDataSize = 0x11. CondData: +0 = u16 CompanyId, u8 +2 = 0x1, +3 = {data copied from PatternData, then an u8 with value 0x0, then {6-byte system btaddr}}. MaskSize = 0x10, Mask = {all 0xFF except u8 +0x9 which is 0x0}.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0 || 0x2 || CompanyId
 +
|-
 +
| 0x2 || 0x6 || PatternData
 +
|}
    
= BleScanResult =
 
= BleScanResult =
Line 1,891: Line 1,930:  
| 0x1 || 0x6 || [[#Address]]
 
| 0x1 || 0x6 || [[#Address]]
 
|-
 
|-
| 0x8 || || Array of entries where each entry is 0x1F-bytes. hid compares +0 with 0xFF and +0x1 with the cached output from [[#BTM_services#GetBleScanParameterGeneral|GetBleScanParameterGeneral]] (entry+0x3 is skipped over).
+
| 0x7 || || Array of entries where each entry is 0x1F-bytes. hid compares +1 with 0xFF and +0x2 with the cached output from [[#BTM_services#GetBleScanParameterGeneral|GetBleScanParameterGeneral]] (entry+0x4 is skipped over).
 
|-
 
|-
 
| 0x140 || 0x4 || s32 Total entries in the array at 0x8.
 
| 0x140 || 0x4 || s32 Total entries in the array at 0x8.
Line 2,253: Line 2,292:  
| CYW4356A3_001.004.009.0092.0095
 
| CYW4356A3_001.004.009.0092.0095
 
|-
 
|-
| [12.0.0-13.1.0]
+
| [12.0.0-14.1.2]
 
| BSA0106_01.60.00_
 
| BSA0106_01.60.00_
 
| Hayward_T3_RC_20210224
 
| Hayward_T3_RC_20210224
 
| CYW4356A3_001.004.009.0092.0095
 
| CYW4356A3_001.004.009.0092.0095
 +
|-
 +
| [15.0.0-18.0.0]
 +
| BSA0106_01.60.00_
 +
| Hayward_T3_RC_20210224
 +
| BCM4356A3 UART 37.4 MHz wlbga_bu
 
|}
 
|}
    
<code>bsa_sv_tm_read_version_excback</code> copies bsa_version_string and concats with bsa_version_info_string to generate <code>tBSA_TM_READ_VERSION.bsa_server_version</code>.
 
<code>bsa_sv_tm_read_version_excback</code> copies bsa_version_string and concats with bsa_version_info_string to generate <code>tBSA_TM_READ_VERSION.bsa_server_version</code>.
 +
 +
* [15.0.0]: In the HCI memwrite data, only config data was changed, no code changes.
    
[[Category:Services]]
 
[[Category:Services]]

Navigation menu