linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] DeviceClassic1 and DeviceSmart1 interfaces
@ 2016-03-04 15:53 Szymon Janc
  2016-03-04 15:53 ` [RFC] doc: Add " Szymon Janc
  0 siblings, 1 reply; 6+ messages in thread
From: Szymon Janc @ 2016-03-04 15:53 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

Hi,

Current Device1 interface doesn't handle dualmode devices very well and
doesn't provide information if remote supports LE, BR/EDR or both.
There is a problem with bond information, connected transport, supported
technologies etc.

Instead of duplicating properties which would require LE, BR/EDR and
(as currently) mixed variants I propose having two separates interfaces
DeviceSmart1 and DeviceClassic1 which would represent supported transports.

Thanks to this applications can easily track if remote device is LE or not
which is important eg with discovery where different apps can do different
type of discovery or when it want to use profile only over specific
transport.

Eventually those new interfaces would deprecate Device1 interface.

Comments are welcome.


Szymon Janc (1):
  doc: Add DeviceClassic1 and DeviceSmart1 interfaces

 doc/device-classic-api.txt | 203 +++++++++++++++++++++++++++++++++++++++++++++
 doc/device-smart-api.txt   | 164 ++++++++++++++++++++++++++++++++++++
 2 files changed, 367 insertions(+)
 create mode 100644 doc/device-classic-api.txt
 create mode 100644 doc/device-smart-api.txt

-- 
2.6.2


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [RFC] doc: Add DeviceClassic1 and DeviceSmart1 interfaces
  2016-03-04 15:53 [RFC] DeviceClassic1 and DeviceSmart1 interfaces Szymon Janc
@ 2016-03-04 15:53 ` Szymon Janc
  2016-03-04 16:29   ` Luiz Augusto von Dentz
  2016-03-04 17:32   ` Marcel Holtmann
  0 siblings, 2 replies; 6+ messages in thread
From: Szymon Janc @ 2016-03-04 15:53 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Szymon Janc

This interfaces will provide per tranport capabilities of remote
devices. Eventually leading to deprecation of Device1 interface.
---
 doc/device-classic-api.txt | 203 +++++++++++++++++++++++++++++++++++++++++++++
 doc/device-smart-api.txt   | 164 ++++++++++++++++++++++++++++++++++++
 2 files changed, 367 insertions(+)
 create mode 100644 doc/device-classic-api.txt
 create mode 100644 doc/device-smart-api.txt

diff --git a/doc/device-classic-api.txt b/doc/device-classic-api.txt
new file mode 100644
index 0000000..c76ba5f
--- /dev/null
+++ b/doc/device-classic-api.txt
@@ -0,0 +1,203 @@
+BlueZ D-Bus Classic Device API description
+*****************************************
+
+
+Device hierarchy
+================
+
+Service		org.bluez
+Interface	org.bluez.DeviceClassic1 [Experimental]
+Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods		void Connect()
+
+			This is a generic method to connect any profiles
+			the remote device supports that can be connected
+			to and have been flagged as auto-connectable on
+			our side. If only subset of profiles is already
+			connected it will try to connect currently disconnected
+			ones.
+
+			If at least one profile was connected successfully this
+			method will indicate success.
+
+			Possible errors: org.bluez.Error.NotReady
+					 org.bluez.Error.Failed
+					 org.bluez.Error.InProgress
+					 org.bluez.Error.AlreadyConnected
+
+		void Disconnect()
+
+			This method gracefully disconnects all connected
+			profiles and then terminates low-level BR/EDR ACL
+			connection.
+
+			ACL connection will be terminated even if some profiles
+			were not disconnected properly e.g. due to misbehaving
+			device.
+
+			This method can be also used to cancel a preceding
+			Connect call before a reply to it has been received.
+
+			Possible errors: org.bluez.Error.NotConnected
+
+		void ConnectProfile(string uuid)
+
+			This method connects a specific profile of this
+			device. The UUID provided is the remote service
+			UUID for the profile.
+
+			Possible errors: org.bluez.Error.Failed
+					 org.bluez.Error.InProgress
+					 org.bluez.Error.InvalidArguments
+					 org.bluez.Error.NotAvailable
+					 org.bluez.Error.NotReady
+
+		void DisconnectProfile(string uuid)
+
+			This method disconnects a specific profile of
+			this device. The profile needs to be registered
+			client profile.
+
+			There is no connection tracking for a profile, so
+			as long as the profile is registered this will always
+			succeed.
+
+			Possible errors: org.bluez.Error.Failed
+					 org.bluez.Error.InProgress
+					 org.bluez.Error.InvalidArguments
+					 org.bluez.Error.NotSupported
+
+		void Pair()
+
+			This method will connect to the remote device,
+			initiate pairing and then retrieve all SDP records.
+
+			If the application has registered its own agent,
+			then that specific agent will be used. Otherwise
+			it will use the default agent.
+
+			Only for applications like a pairing wizard it
+			would make sense to have its own agent. In almost
+			all other cases the default agent will handle
+			this just fine.
+
+			In case there is no application agent and also
+			no default agent present, this method will fail.
+
+			Possible errors: org.bluez.Error.InvalidArguments
+					 org.bluez.Error.Failed
+					 org.bluez.Error.AlreadyExists
+					 org.bluez.Error.AuthenticationCanceled
+					 org.bluez.Error.AuthenticationFailed
+					 org.bluez.Error.AuthenticationRejected
+					 org.bluez.Error.AuthenticationTimeout
+					 org.bluez.Error.ConnectionAttemptFailed
+
+		void CancelPairing()
+
+			This method can be used to cancel a pairing
+			operation initiated by the Pair method.
+
+			Possible errors: org.bluez.Error.DoesNotExist
+					 org.bluez.Error.Failed
+
+Properties	string Address [readonly]
+
+			The Bluetooth device address of the remote device.
+
+		string Name [readonly, optional]
+
+			The Bluetooth remote name. This value can not be
+			changed. Use the Alias property instead.
+
+			This value is only present for completeness. It is
+			better to always use the Alias property when
+			displaying the devices name.
+
+			If the Alias property is unset, it will reflect
+			this value which makes it more convenient.
+
+		string Icon [readonly, optional]
+
+			Proposed icon name according to the freedesktop.org
+			icon naming specification.
+
+		uint32 Class [readonly, optional]
+
+			The Bluetooth class of device of the remote device.
+
+		array{string} UUIDs [readonly, optional]
+
+			List of 128-bit UUIDs that represents the available
+			remote services.
+
+		boolean Paired [readonly]
+
+			Indicates if the remote device is paired.
+
+		boolean Connected [readonly]
+
+			Indicates if the remote device is currently connected.
+
+		boolean Trusted [readwrite]
+
+			Indicates if the remote is seen as trusted. This
+			setting can be changed by the application.
+
+		boolean Blocked [readwrite]
+
+			If set to true any incoming connections from the
+			device will be immediately rejected. Any device
+			drivers will also be removed and no new ones will
+			be probed as long as the device is blocked.
+
+		string Alias [readwrite]
+
+			The name alias for the remote device. The alias can
+			be used to have a different friendly name for the
+			remote device.
+
+			In case no alias is set, it will return the remote
+			device name. Setting an empty string as alias will
+			convert it back to the remote device name.
+
+			When resetting the alias with an empty string, the
+			property will default back to the remote name.
+
+		object Adapter [readonly]
+
+			The object path of the adapter the device belongs to.
+
+		boolean LegacyPairing [readonly]
+
+			Set to true if the device only supports the pre-2.1
+			pairing mechanism. This property is useful during
+			device discovery to anticipate whether legacy or
+			simple pairing will occur if pairing is initiated.
+
+			Note that this property can exhibit false-positives
+			in the case of Bluetooth 2.1 (or newer) devices that
+			have disabled Extended Inquiry Response support.
+
+		string Modalias [readonly, optional]
+
+			Remote Device ID information in modalias format
+			used by the kernel and udev.
+
+		int16 RSSI [readonly, optional]
+
+			Received Signal Strength Indicator of the remote
+			device (inquiry).
+
+		int16 TxPower [readonly, optional, experimental]
+
+			Advertised transmitted power level (inquiry).
+
+		array{object} GattServices [readonly, optional]
+
+			List of GATT service object paths. Each referenced
+			object exports the org.bluez.GattService1 interface and
+			represents a remote GATT service. This property will be
+			updated once all remote GATT services of this device
+			have been discovered and exported over D-Bus.
diff --git a/doc/device-smart-api.txt b/doc/device-smart-api.txt
new file mode 100644
index 0000000..ce4849d
--- /dev/null
+++ b/doc/device-smart-api.txt
@@ -0,0 +1,164 @@
+BlueZ D-Bus Smart Device API description
+****************************************
+
+
+Device hierarchy
+================
+
+Service		org.bluez
+Interface	org.bluez.DeviceSmart1 [Experimental]
+Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
+
+Methods		void Connect()
+
+			This is a generic method to connect low-level LE ACL
+			and then (if needed) retrieve all GATT primary services.
+
+			Possible errors: org.bluez.Error.NotReady
+					 org.bluez.Error.Failed
+					 org.bluez.Error.InProgress
+					 org.bluez.Error.AlreadyConnected
+
+		void Disconnect()
+
+			This method terminates low-level LE ACL connection.
+
+			This method can be also used to cancel a preceding
+			Connect call before a reply to it has been received.
+
+			Possible errors: org.bluez.Error.NotConnected
+
+		void Pair()
+
+			This method will connect to the remote device,
+			initiate pairing and then retrieve all GATT primary
+			services.
+
+			If the application has registered its own agent,
+			then that specific agent will be used. Otherwise
+			it will use the default agent.
+
+			Only for applications like a pairing wizard it
+			would make sense to have its own agent. In almost
+			all other cases the default agent will handle
+			this just fine.
+
+			In case there is no application agent and also
+			no default agent present, this method will fail.
+
+			Possible errors: org.bluez.Error.InvalidArguments
+					 org.bluez.Error.Failed
+					 org.bluez.Error.AlreadyExists
+					 org.bluez.Error.AuthenticationCanceled
+					 org.bluez.Error.AuthenticationFailed
+					 org.bluez.Error.AuthenticationRejected
+					 org.bluez.Error.AuthenticationTimeout
+					 org.bluez.Error.ConnectionAttemptFailed
+
+		void CancelPairing()
+
+			This method can be used to cancel a pairing
+			operation initiated by the Pair method.
+
+			Possible errors: org.bluez.Error.DoesNotExist
+					 org.bluez.Error.Failed
+
+Properties	string Address [readonly]
+
+			The Bluetooth device address of the remote device.
+
+		string Name [readonly, optional]
+
+			The Bluetooth remote name. This value can not be
+			changed. Use the Alias property instead.
+
+			This value is only present for completeness. It is
+			better to always use the Alias property when
+			displaying the devices name.
+
+			If the Alias property is unset, it will reflect
+			this value which makes it more convenient.
+
+		string Icon [readonly, optional]
+
+			Proposed icon name according to the freedesktop.org
+			icon naming specification.
+
+		uint16 Appearance [readonly, optional]
+
+			External appearance of device, as found on GAP service.
+
+		array{string} UUIDs [readonly, optional]
+
+			List of 128-bit UUIDs that represents the available
+			remote services.
+
+		boolean Paired [readonly]
+
+			Indicates if the remote device is paired.
+
+		boolean Connected [readonly]
+
+			Indicates if the remote device is currently connected.
+
+		boolean Trusted [readwrite]
+
+			Indicates if the remote is seen as trusted. This
+			setting can be changed by the application.
+
+		boolean Blocked [readwrite]
+
+			If set to true any incoming connections from the
+			device will be immediately rejected. Any device
+			drivers will also be removed and no new ones will
+			be probed as long as the device is blocked.
+
+		string Alias [readwrite]
+
+			The name alias for the remote device. The alias can
+			be used to have a different friendly name for the
+			remote device.
+
+			In case no alias is set, it will return the remote
+			device name. Setting an empty string as alias will
+			convert it back to the remote device name.
+
+			When resetting the alias with an empty string, the
+			property will default back to the remote name.
+
+		object Adapter [readonly]
+
+			The object path of the adapter the device belongs to.
+
+		string Modalias [readonly, optional]
+
+			Remote Device Information information in modalias format
+			used by the kernel and udev.
+
+		int16 RSSI [readonly, optional]
+
+			Received Signal Strength Indicator of the remote
+			device (advertising).
+
+		int16 TxPower [readonly, optional, experimental]
+
+			Advertised transmitted power level (advertising).
+
+		dict ManufacturerData [readonly, optional]
+
+			Manufacturer specific advertisement data. Keys are
+			16 bits Manufacturer ID followed by its byte array
+			value.
+
+		dict ServiceData [readonly, optional]
+
+			Service advertisement data. Keys are the UUIDs in
+			string format followed by its byte array value.
+
+		array{object} GattServices [readonly, optional]
+
+			List of GATT service object paths. Each referenced
+			object exports the org.bluez.GattService1 interface and
+			represents a remote GATT service. This property will be
+			updated once all remote GATT services of this device
+			have been discovered and exported over D-Bus.
-- 
2.6.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [RFC] doc: Add DeviceClassic1 and DeviceSmart1 interfaces
  2016-03-04 15:53 ` [RFC] doc: Add " Szymon Janc
@ 2016-03-04 16:29   ` Luiz Augusto von Dentz
  2016-03-04 17:32   ` Marcel Holtmann
  1 sibling, 0 replies; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2016-03-04 16:29 UTC (permalink / raw)
  To: Szymon Janc; +Cc: linux-bluetooth@vger.kernel.org

Hi Szymon,

On Fri, Mar 4, 2016 at 5:53 PM, Szymon Janc <szymon.janc@codecoup.pl> wrote:
> This interfaces will provide per tranport capabilities of remote
> devices. Eventually leading to deprecation of Device1 interface.
> ---
>  doc/device-classic-api.txt | 203 +++++++++++++++++++++++++++++++++++++++++++++
>  doc/device-smart-api.txt   | 164 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 367 insertions(+)
>  create mode 100644 doc/device-classic-api.txt
>  create mode 100644 doc/device-smart-api.txt
>
> diff --git a/doc/device-classic-api.txt b/doc/device-classic-api.txt
> new file mode 100644
> index 0000000..c76ba5f
> --- /dev/null
> +++ b/doc/device-classic-api.txt
> @@ -0,0 +1,203 @@
> +BlueZ D-Bus Classic Device API description
> +*****************************************
> +
> +
> +Device hierarchy
> +================
> +
> +Service                org.bluez
> +Interface      org.bluez.DeviceClassic1 [Experimental]
> +Object path    [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
> +
> +Methods                void Connect()
> +
> +                       This is a generic method to connect any profiles
> +                       the remote device supports that can be connected
> +                       to and have been flagged as auto-connectable on
> +                       our side. If only subset of profiles is already
> +                       connected it will try to connect currently disconnected
> +                       ones.
> +
> +                       If at least one profile was connected successfully this
> +                       method will indicate success.
> +
> +                       Possible errors: org.bluez.Error.NotReady
> +                                        org.bluez.Error.Failed
> +                                        org.bluez.Error.InProgress
> +                                        org.bluez.Error.AlreadyConnected
> +
> +               void Disconnect()
> +
> +                       This method gracefully disconnects all connected
> +                       profiles and then terminates low-level BR/EDR ACL
> +                       connection.
> +
> +                       ACL connection will be terminated even if some profiles
> +                       were not disconnected properly e.g. due to misbehaving
> +                       device.
> +
> +                       This method can be also used to cancel a preceding
> +                       Connect call before a reply to it has been received.
> +
> +                       Possible errors: org.bluez.Error.NotConnected
> +
> +               void ConnectProfile(string uuid)
> +
> +                       This method connects a specific profile of this
> +                       device. The UUID provided is the remote service
> +                       UUID for the profile.
> +
> +                       Possible errors: org.bluez.Error.Failed
> +                                        org.bluez.Error.InProgress
> +                                        org.bluez.Error.InvalidArguments
> +                                        org.bluez.Error.NotAvailable
> +                                        org.bluez.Error.NotReady
> +
> +               void DisconnectProfile(string uuid)
> +
> +                       This method disconnects a specific profile of
> +                       this device. The profile needs to be registered
> +                       client profile.
> +
> +                       There is no connection tracking for a profile, so
> +                       as long as the profile is registered this will always
> +                       succeed.
> +
> +                       Possible errors: org.bluez.Error.Failed
> +                                        org.bluez.Error.InProgress
> +                                        org.bluez.Error.InvalidArguments
> +                                        org.bluez.Error.NotSupported
> +
> +               void Pair()
> +
> +                       This method will connect to the remote device,
> +                       initiate pairing and then retrieve all SDP records.
> +
> +                       If the application has registered its own agent,
> +                       then that specific agent will be used. Otherwise
> +                       it will use the default agent.
> +
> +                       Only for applications like a pairing wizard it
> +                       would make sense to have its own agent. In almost
> +                       all other cases the default agent will handle
> +                       this just fine.
> +
> +                       In case there is no application agent and also
> +                       no default agent present, this method will fail.
> +
> +                       Possible errors: org.bluez.Error.InvalidArguments
> +                                        org.bluez.Error.Failed
> +                                        org.bluez.Error.AlreadyExists
> +                                        org.bluez.Error.AuthenticationCanceled
> +                                        org.bluez.Error.AuthenticationFailed
> +                                        org.bluez.Error.AuthenticationRejected
> +                                        org.bluez.Error.AuthenticationTimeout
> +                                        org.bluez.Error.ConnectionAttemptFailed
> +
> +               void CancelPairing()
> +
> +                       This method can be used to cancel a pairing
> +                       operation initiated by the Pair method.
> +
> +                       Possible errors: org.bluez.Error.DoesNotExist
> +                                        org.bluez.Error.Failed
> +
> +Properties     string Address [readonly]
> +
> +                       The Bluetooth device address of the remote device.
> +
> +               string Name [readonly, optional]
> +
> +                       The Bluetooth remote name. This value can not be
> +                       changed. Use the Alias property instead.
> +
> +                       This value is only present for completeness. It is
> +                       better to always use the Alias property when
> +                       displaying the devices name.
> +
> +                       If the Alias property is unset, it will reflect
> +                       this value which makes it more convenient.
> +
> +               string Icon [readonly, optional]
> +
> +                       Proposed icon name according to the freedesktop.org
> +                       icon naming specification.
> +
> +               uint32 Class [readonly, optional]
> +
> +                       The Bluetooth class of device of the remote device.
> +
> +               array{string} UUIDs [readonly, optional]
> +
> +                       List of 128-bit UUIDs that represents the available
> +                       remote services.
> +
> +               boolean Paired [readonly]
> +
> +                       Indicates if the remote device is paired.
> +
> +               boolean Connected [readonly]
> +
> +                       Indicates if the remote device is currently connected.
> +
> +               boolean Trusted [readwrite]
> +
> +                       Indicates if the remote is seen as trusted. This
> +                       setting can be changed by the application.
> +
> +               boolean Blocked [readwrite]
> +
> +                       If set to true any incoming connections from the
> +                       device will be immediately rejected. Any device
> +                       drivers will also be removed and no new ones will
> +                       be probed as long as the device is blocked.
> +
> +               string Alias [readwrite]
> +
> +                       The name alias for the remote device. The alias can
> +                       be used to have a different friendly name for the
> +                       remote device.
> +
> +                       In case no alias is set, it will return the remote
> +                       device name. Setting an empty string as alias will
> +                       convert it back to the remote device name.
> +
> +                       When resetting the alias with an empty string, the
> +                       property will default back to the remote name.
> +
> +               object Adapter [readonly]
> +
> +                       The object path of the adapter the device belongs to.
> +
> +               boolean LegacyPairing [readonly]
> +
> +                       Set to true if the device only supports the pre-2.1
> +                       pairing mechanism. This property is useful during
> +                       device discovery to anticipate whether legacy or
> +                       simple pairing will occur if pairing is initiated.
> +
> +                       Note that this property can exhibit false-positives
> +                       in the case of Bluetooth 2.1 (or newer) devices that
> +                       have disabled Extended Inquiry Response support.
> +
> +               string Modalias [readonly, optional]
> +
> +                       Remote Device ID information in modalias format
> +                       used by the kernel and udev.
> +
> +               int16 RSSI [readonly, optional]
> +
> +                       Received Signal Strength Indicator of the remote
> +                       device (inquiry).
> +
> +               int16 TxPower [readonly, optional, experimental]
> +
> +                       Advertised transmitted power level (inquiry).
> +
> +               array{object} GattServices [readonly, optional]
> +
> +                       List of GATT service object paths. Each referenced
> +                       object exports the org.bluez.GattService1 interface and
> +                       represents a remote GATT service. This property will be
> +                       updated once all remote GATT services of this device
> +                       have been discovered and exported over D-Bus.
> diff --git a/doc/device-smart-api.txt b/doc/device-smart-api.txt
> new file mode 100644
> index 0000000..ce4849d
> --- /dev/null
> +++ b/doc/device-smart-api.txt
> @@ -0,0 +1,164 @@
> +BlueZ D-Bus Smart Device API description
> +****************************************
> +
> +
> +Device hierarchy
> +================
> +
> +Service                org.bluez
> +Interface      org.bluez.DeviceSmart1 [Experimental]
> +Object path    [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
> +
> +Methods                void Connect()
> +
> +                       This is a generic method to connect low-level LE ACL
> +                       and then (if needed) retrieve all GATT primary services.
> +
> +                       Possible errors: org.bluez.Error.NotReady
> +                                        org.bluez.Error.Failed
> +                                        org.bluez.Error.InProgress
> +                                        org.bluez.Error.AlreadyConnected
> +
> +               void Disconnect()
> +
> +                       This method terminates low-level LE ACL connection.
> +
> +                       This method can be also used to cancel a preceding
> +                       Connect call before a reply to it has been received.
> +
> +                       Possible errors: org.bluez.Error.NotConnected
> +
> +               void Pair()
> +
> +                       This method will connect to the remote device,
> +                       initiate pairing and then retrieve all GATT primary
> +                       services.
> +
> +                       If the application has registered its own agent,
> +                       then that specific agent will be used. Otherwise
> +                       it will use the default agent.
> +
> +                       Only for applications like a pairing wizard it
> +                       would make sense to have its own agent. In almost
> +                       all other cases the default agent will handle
> +                       this just fine.
> +
> +                       In case there is no application agent and also
> +                       no default agent present, this method will fail.
> +
> +                       Possible errors: org.bluez.Error.InvalidArguments
> +                                        org.bluez.Error.Failed
> +                                        org.bluez.Error.AlreadyExists
> +                                        org.bluez.Error.AuthenticationCanceled
> +                                        org.bluez.Error.AuthenticationFailed
> +                                        org.bluez.Error.AuthenticationRejected
> +                                        org.bluez.Error.AuthenticationTimeout
> +                                        org.bluez.Error.ConnectionAttemptFailed
> +
> +               void CancelPairing()
> +
> +                       This method can be used to cancel a pairing
> +                       operation initiated by the Pair method.
> +
> +                       Possible errors: org.bluez.Error.DoesNotExist
> +                                        org.bluez.Error.Failed
> +
> +Properties     string Address [readonly]
> +
> +                       The Bluetooth device address of the remote device.
> +
> +               string Name [readonly, optional]
> +
> +                       The Bluetooth remote name. This value can not be
> +                       changed. Use the Alias property instead.
> +
> +                       This value is only present for completeness. It is
> +                       better to always use the Alias property when
> +                       displaying the devices name.
> +
> +                       If the Alias property is unset, it will reflect
> +                       this value which makes it more convenient.
> +
> +               string Icon [readonly, optional]
> +
> +                       Proposed icon name according to the freedesktop.org
> +                       icon naming specification.
> +
> +               uint16 Appearance [readonly, optional]
> +
> +                       External appearance of device, as found on GAP service.
> +
> +               array{string} UUIDs [readonly, optional]
> +
> +                       List of 128-bit UUIDs that represents the available
> +                       remote services.
> +
> +               boolean Paired [readonly]
> +
> +                       Indicates if the remote device is paired.
> +
> +               boolean Connected [readonly]
> +
> +                       Indicates if the remote device is currently connected.
> +
> +               boolean Trusted [readwrite]
> +
> +                       Indicates if the remote is seen as trusted. This
> +                       setting can be changed by the application.
> +
> +               boolean Blocked [readwrite]
> +
> +                       If set to true any incoming connections from the
> +                       device will be immediately rejected. Any device
> +                       drivers will also be removed and no new ones will
> +                       be probed as long as the device is blocked.
> +
> +               string Alias [readwrite]
> +
> +                       The name alias for the remote device. The alias can
> +                       be used to have a different friendly name for the
> +                       remote device.
> +
> +                       In case no alias is set, it will return the remote
> +                       device name. Setting an empty string as alias will
> +                       convert it back to the remote device name.
> +
> +                       When resetting the alias with an empty string, the
> +                       property will default back to the remote name.
> +
> +               object Adapter [readonly]
> +
> +                       The object path of the adapter the device belongs to.
> +
> +               string Modalias [readonly, optional]
> +
> +                       Remote Device Information information in modalias format
> +                       used by the kernel and udev.
> +
> +               int16 RSSI [readonly, optional]
> +
> +                       Received Signal Strength Indicator of the remote
> +                       device (advertising).
> +
> +               int16 TxPower [readonly, optional, experimental]
> +
> +                       Advertised transmitted power level (advertising).
> +
> +               dict ManufacturerData [readonly, optional]
> +
> +                       Manufacturer specific advertisement data. Keys are
> +                       16 bits Manufacturer ID followed by its byte array
> +                       value.
> +
> +               dict ServiceData [readonly, optional]
> +
> +                       Service advertisement data. Keys are the UUIDs in
> +                       string format followed by its byte array value.

We were actually thinking in having the Advertisement Data somewhere
else (e.g. Beacon1) since it may not be connectable thus it doesn't
give the impression that it is a peripheral.

> +               array{object} GattServices [readonly, optional]
> +
> +                       List of GATT service object paths. Each referenced
> +                       object exports the org.bluez.GattService1 interface and
> +                       represents a remote GATT service. This property will be
> +                       updated once all remote GATT services of this device
> +                       have been discovered and exported over D-Bus.
> --
> 2.6.2

Overall this probably make sense, it is much clearer that it is in
fact 2 different technologies behind the same address so the Name,
etc, maybe complete different. That being said we will probably have
to do some changes to the storage to cope with this.

-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC] doc: Add DeviceClassic1 and DeviceSmart1 interfaces
  2016-03-04 15:53 ` [RFC] doc: Add " Szymon Janc
  2016-03-04 16:29   ` Luiz Augusto von Dentz
@ 2016-03-04 17:32   ` Marcel Holtmann
  2016-03-06 14:34     ` Luiz Augusto von Dentz
  1 sibling, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2016-03-04 17:32 UTC (permalink / raw)
  To: Szymon Janc; +Cc: linux-bluetooth

Hi Szymon,

> This interfaces will provide per tranport capabilities of remote
> devices. Eventually leading to deprecation of Device1 interface.

so I not like the naming DeviceClassic1 and DeviceSmart1 at all. Nobody uses these terms widely that they are easily recognizable and can be associated. I also do not want to follow Bluetooth SIG marketing and logo terms. They might change and then we are stuck with it.

Regards

Marcel


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC] doc: Add DeviceClassic1 and DeviceSmart1 interfaces
  2016-03-04 17:32   ` Marcel Holtmann
@ 2016-03-06 14:34     ` Luiz Augusto von Dentz
  2016-03-11  9:56       ` Szymon Janc
  0 siblings, 1 reply; 6+ messages in thread
From: Luiz Augusto von Dentz @ 2016-03-06 14:34 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: Szymon Janc, linux-bluetooth@vger.kernel.org

Hi Marcel,

On Fri, Mar 4, 2016 at 7:32 PM, Marcel Holtmann <marcel@holtmann.org> wrote=
:
> Hi Szymon,
>
>> This interfaces will provide per tranport capabilities of remote
>> devices. Eventually leading to deprecation of Device1 interface.
>
> so I not like the naming DeviceClassic1 and DeviceSmart1 at all. Nobody u=
ses these terms widely that they are easily recognizable and can be associa=
ted. I also do not want to follow Bluetooth SIG marketing and logo terms. T=
hey might change and then we are stuck with it.

IMO they are better than LE and BR/EDR, but perhaps you have something
better in mind. Btw, this does bring the question if we should do
something similar to the Adapter interface, although there are a
little less conflicts because there more LE specific interfaces.

--=20
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RFC] doc: Add DeviceClassic1 and DeviceSmart1 interfaces
  2016-03-06 14:34     ` Luiz Augusto von Dentz
@ 2016-03-11  9:56       ` Szymon Janc
  0 siblings, 0 replies; 6+ messages in thread
From: Szymon Janc @ 2016-03-11  9:56 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: Marcel Holtmann, linux-bluetooth@vger.kernel.org

Hi Marcel, Luiz,

On Sunday 06 March 2016 16:34:53 Luiz Augusto von Dentz wrote:
> Hi Marcel,
> 
> On Fri, Mar 4, 2016 at 7:32 PM, Marcel Holtmann <marcel@holtmann.org> wrote:
> > Hi Szymon,
> > 
> >> This interfaces will provide per tranport capabilities of remote
> >> devices. Eventually leading to deprecation of Device1 interface.
> > 
> > so I not like the naming DeviceClassic1 and DeviceSmart1 at all. Nobody
> > uses these terms widely that they are easily recognizable and can be
> > associated. I also do not want to follow Bluetooth SIG marketing and logo
> > terms. They might change and then we are stuck with it.
> IMO they are better than LE and BR/EDR, but perhaps you have something
> better in mind. Btw, this does bring the question if we should do
> something similar to the Adapter interface, although there are a
> little less conflicts because there more LE specific interfaces.

DeviceLE1 and DeviceBR{EDR}1 ?

Or maybe Device2 (that would be BREDR only) and DeviceLE1 ? 

-- 
pozdrawiam
Szymon Janc

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-11  9:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-04 15:53 [RFC] DeviceClassic1 and DeviceSmart1 interfaces Szymon Janc
2016-03-04 15:53 ` [RFC] doc: Add " Szymon Janc
2016-03-04 16:29   ` Luiz Augusto von Dentz
2016-03-04 17:32   ` Marcel Holtmann
2016-03-06 14:34     ` Luiz Augusto von Dentz
2016-03-11  9:56       ` Szymon Janc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).