| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- BlueZ D-Bus LE Advertising API Description
- ******************************************
- Advertising packets are structured data which is broadcast on the LE Advertising
- channels and available for all devices in range. Because of the limited space
- available in LE Advertising packets (31 bytes), each packet's contents must be
- carefully controlled.
- BlueZ acts as a store for the Advertisement Data which is meant to be sent.
- It constructs the correct Advertisement Data from the structured
- data and configured the kernel to send the correct advertisement.
- Advertisement Data objects are registered freely and then referenced by BlueZ
- when constructing the data sent to the kernel.
- LE Advertisement Data hierarchy
- ===============================
- Specifies the Advertisement Data to be broadcast and some advertising
- parameters. Properties which are not present will not be included in the
- data. Required advertisement data types will always be included.
- All UUIDs are 128-bit versions in the API, and 16 or 32-bit
- versions of the same UUID will be used in the advertising data as appropriate.
- Service org.bluez
- Interface org.bluez.LEAdvertisement1
- Object path freely definable
- Methods void Release() [noreply]
- This method gets called when the service daemon
- removes the Advertisement. A client can use it to do
- cleanup tasks. There is no need to call
- UnregisterAdvertisement because when this method gets
- called it has already been unregistered.
- Properties string Type
- Determines the type of advertising packet requested.
- Possible values: "broadcast" or "peripheral"
- array{string} ServiceUUIDs
- List of UUIDs to include in the "Service UUID" field of
- the Advertising Data.
- dict ManufacturerData
- Manufactuer Data fields to include in
- the Advertising Data. Keys are the Manufacturer ID
- to associate with the data.
- array{string} SolicitUUIDs
- Array of UUIDs to include in "Service Solicitation"
- Advertisement Data.
- dict ServiceData
- Service Data elements to include. The keys are the
- UUID to associate with the data.
- dict Data [Experimental]
- Advertising Type to include in the Advertising
- Data. Key is the advertising type and value is the
- data as byte array.
- Note: Types already handled by other properties shall
- not be used.
- Possible values:
- <type> <byte array>
- ...
- Example:
- <Transport Discovery> <Organization Flags...>
- 0x26 0x01 0x01...
- bool Discoverable [Experimental]
- Advertise as general discoverable. When present this
- will override adapter Discoverable property.
- Note: This property shall not be set when Type is set
- to broadcast.
- uint16 DiscoverableTimeout [Experimental]
- The discoverable timeout in seconds. A value of zero
- means that the timeout is disabled and it will stay in
- discoverable/limited mode forever.
- Note: This property shall not be set when Type is set
- to broadcast.
- array{string} Includes
- List of features to be included in the advertising
- packet.
- Possible values: as found on
- LEAdvertisingManager.SupportedIncludes
- string LocalName
- Local name to be used in the advertising report. If the
- string is too big to fit into the packet it will be
- truncated.
- If this property is available 'local-name' cannot be
- present in the Includes.
- uint16 Appearance
- Appearance to be used in the advertising report.
- Possible values: as found on GAP Service.
- uint16_t Duration
- Duration of the advertisement in seconds. If there are
- other applications advertising no duration is set the
- default is 2 seconds.
- uint16_t Timeout
- Timeout of the advertisement in seconds. This defines
- the lifetime of the advertisement.
- string SecondaryChannel [Experimental]
- Secondary channel to be used. Primary channel is
- always set to "1M" except when "Coded" is set.
- Possible value: "1M" (default)
- "2M"
- "Coded"
- uint32 MinInterval [Experimental]
- Minimum advertising interval to be used by the
- advertising set, in milliseconds. Acceptable values
- are in the range [20ms, 10,485s]. If the provided
- MinInterval is larger than the provided MaxInterval,
- the registration will return failure.
- uint32 MaxInterval [Experimental]
- Maximum advertising interval to be used by the
- advertising set, in milliseconds. Acceptable values
- are in the range [20ms, 10,485s]. If the provided
- MinInterval is larger than the provided MaxInterval,
- the registration will return failure.
- int16 TxPower [Experimental]
- Requested transmission power of this advertising set.
- The provided value is used only if the "CanSetTxPower"
- feature is enabled on the Advertising Manager. The
- provided value must be in range [-127 to +20], where
- units are in dBm.
- LE Advertising Manager hierarchy
- ================================
- The Advertising Manager allows external applications to register Advertisement
- Data which should be broadcast to devices. Advertisement Data elements must
- follow the API for LE Advertisement Data described above.
- Service org.bluez
- Interface org.bluez.LEAdvertisingManager1
- Object path /org/bluez/{hci0,hci1,...}
- Methods RegisterAdvertisement(object advertisement, dict options)
- Registers an advertisement object to be sent over the LE
- Advertising channel. The service must be exported
- under interface LEAdvertisement1.
- InvalidArguments error indicates that the object has
- invalid or conflicting properties.
- InvalidLength error indicates that the data
- provided generates a data packet which is too long.
- The properties of this object are parsed when it is
- registered, and any changes are ignored.
- If the same object is registered twice it will result in
- an AlreadyExists error.
- If the maximum number of advertisement instances is
- reached it will result in NotPermitted error.
- Possible errors: org.bluez.Error.InvalidArguments
- org.bluez.Error.AlreadyExists
- org.bluez.Error.InvalidLength
- org.bluez.Error.NotPermitted
- UnregisterAdvertisement(object advertisement)
- This unregisters an advertisement that has been
- previously registered. The object path parameter must
- match the same value that has been used on registration.
- Possible errors: org.bluez.Error.InvalidArguments
- org.bluez.Error.DoesNotExist
- Properties byte ActiveInstances
- Number of active advertising instances.
- byte SupportedInstances
- Number of available advertising instances.
- array{string} SupportedIncludes
- List of supported system includes.
- Possible values: "tx-power"
- "appearance"
- "local-name"
- array{string} SupportedSecondaryChannels [Experimental]
- List of supported Secondary channels. Secondary
- channels can be used to advertise with the
- corresponding PHY.
- Possible values: "1M"
- "2M"
- "Coded"
- dict SupportedCapabilities [Experimental]
- Enumerates Advertising-related controller capabilities
- useful to the client.
- Possible Values:
- byte MaxAdvLen
- Max advertising data length
- byte MaxScnRspLen
- Max advertising scan response length
- int16 MinTxPower
- Min advertising tx power (dBm)
- int16 MaxTxPower
- Max advertising tx power (dBm)
- array{string} SupportedFeatures [readonly,optional,Experimental]
- List of supported platform features. If no features
- are available on the platform, the SupportedFeatures
- array will be empty.
- Possible values: "CanSetTxPower"
- Indicates whether platform can
- specify tx power on each
- advertising instance.
- "HardwareOffload"
- Indicates whether multiple
- advertising will be offloaded
- to the controller.
|