Re: HDP proposed API(0.5)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 17, 2010 at 11:54, José Antonio Santos Cadenas
<jcaden@xxxxxxxxxxxx> wrote:
> Hope the last one :)
>
> ----------------------------
>
> BlueZ D-Bus Health API description
> **********************************
>
>        Santiago Carot-Nemesio <sancane@xxxxxxxxx>
>        José Antonio Santos-Cadenas <santoscadenas@xxxxxxxxx>
>        Elvis Pfützenreuter <epx@xxxxxxxxxxx>
>
> Health Device Profile hierarchy
> ===============================
>
> Service         org.bluez
> Interface       org.bluez.HealthAdapter
> Object path     [variable prefix]/{hci0,hci1,...}
>
> Methods         object CreateInstance(object path, dict config)
>
>                        Returns the path for the new HealthInstance object.
>                        The path parameter is the path of the remote object
>                        with the callbacks to notify events (see
>                        org.bluez.HealthAgent at the end of this document)
>                        This petition starts an mcap instance and also register
>                        in the SDP if is needed
>                        Dict is defined as bellow:
>                        { "data_spec" : The data_spec is the data exchange
>                                        specification (see section 5.2.10 of
>                                        the specification document)
>                                        possible values:
>                                                0x00 = reserved,
>                                                0x01 [IEEE 11073-20601],
>                                                0x02..0xff reserved,
>                                        (optional)
>                          "end_points" : [{ (optional)
>                                "mdepid" : uint8, (optional)
>                                "role" : ("source" or "sink"), (mandatory)
>                                "specs" :[{ (mandatory)
>                                        "data_type" : uint16, (mandatory)
>                                        "description" : string, (optional)
>                                }]
>                          }]
>                        }
>
>                        if "data_spec" is not set, no SDP record will be
>                        registered, so all the other data in the dictionary
>                        will be ignored
>
>                        Instance will be closed by the call or implicitly when
>                        the programs leaves the bus.
>
>                        Possible errors: org.bluez.Error.InvalidArguments
>
>                void CloseInstance(object path)
>
>                        Closes the HDP instance identified by the object path.
>                        Also instance will be closed if the process that started
>                        leaves the bus. If there is a SDP record associated to
>                        this instance it will be removed.
>
>                        Possible errors: org.bluez.Error.InvalidArguments
>                                        org.bluez.Error.NotFound
>
> --------------------------------------------------------------------------------
>
> Service         org.bluez
> Interface       org.bluez.HealthDevice
> Object path     [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
>
> Methods         array GetHealthInstances()
>
>                        Gets the information of the remote instances present
>                        in this device and published on its SDP record. The
>                        returned data follows this format.
>
>                        [{"id": "an instance identification as string",
>                         "data_spec" : data spec,
>                         "end_points":
>                                ["mdepid": uint8,
>                                 "role"  : "source" or "sink" ,
>                                 "specs" : [{
>                                        "dtype"       : uint16,
>                                        "description" : string, (optional)
>                                 }]
>                                ]
>                        }];
>
> --------------------------------------------------------------------------------
>
> Service         org.bluez
> Interface       org.bluez.HealthInstance
> Object path     [variable prefix]/{hci0,hci1,...}/{hdp0,hdp1,...}
>
>                object Connect(remote_instance_id)
>
>                        Connects with the remote instance and returns its object
>                        path. To get the session ids on a remote device, you
>                        must run the GetHealthInstances in the HealthDevice
>                        object.
>
>                        Possible errors: org.bluez.Error.InvalidArguments
>                                        org.bluez.Error.HealthError
>
>                void Disconnect(object device, boolean cache)
>
>                        Disconnect from the remote device. If chahe is false,
>                        state will also be deleted. Otherwise, the state will be
>                        kept for allowing future reconnections until the adapter
>                        is removed.
>
>                        Possible errors: org.bluez.Error.InvalidArguments
>                                        org.bluez.Error.NotFound
>                                        org.bluez.Error.HealthError
>
> --------------------------------------------------------------------------------
>
> Service         org.bluez
> Interface       org.bluez.HealthLink
> Object path     [variable prefix]/{hci0,hci1,...}/{hdp0,hdp1,...}/rem_inst_id
>
>                boolean Echo(array{byte})
>
>                        Sends an echo petition to the remote intance. Returns
>                        True if response matches with the buffer sent. If some
>                        error is detected False value is returned and the
>                        associated MCL is closed.
>
>                uint16 OpenDataChannel(byte mdepid, byte config)
>
>                        Creates a new data channel with the indicated config
>                        to the remote MCAP Data End Point (MDEP).
>                        The configuration should indicate the channel quality of
>                        service. In the current version of HDP, valid values are
>                        0x01 for reliable channels and 0x02 for streaming data
>                        channel.
>
>                        Returns the data channel id.
>
>                        Possible errors: org.bluez.Error.InvalidArguments
>                                        org.bluez.Error.HealthError
>
>                array GetDataChannelFileDescriptor(uint16 mdlid)
>

Wouldn't be better to pass the fd through the LinkConnected call on
Agent? Doing it here allows any process to get the fds.

>                        Gets a file descriptor where data can be read or
>                        written for receive or sent by the data channel.
>                        Returns an array of file descriptors one for write
>                        and other for read.
>
>                        Possible errors: org.bluez.Error.InvalidArguments
>                                        org.bluez.Error.NotFound
>                                        org.bluez.Error.HealthError
>
>                void DeleteDataChannel(uint16 mdlid)
>
>                        Deletes a data channel so it will not be available for
>                        use.
>
>                        Possible errors: org.bluez.Error.InvalidArguments
>                                        org.bluez.Error.NotFound
>                                        org.bluez.Error.HealthError
>
>                void DeleteAllDataChannels()
>
>                        Deletes all data channels so it will not be available
>                        for use. Typically this function is called when the
>                        connection with the remote device will be closed
>                        permanently
>
>                        Possible errors: org.bluez.Error.HealthError
>
>                dict GetDataChannelStatus()
>
>                        Return a dictionary with all the data channels that
>                        can be used to send data right now. The dictionary
>                        is formed like follows:
>                        {
>                                "reliable": [mdlid_r1, mdlid_r2, ...],
>                                "streaming" : [mdlid_s1, mdlid_s2, ...]
>                        }
>
>                        The fist reliable data channel will always be the first
>                        data channel in reliable array.
>
> HealthAgent hierarchy
> ==================
>
> (this object is implemented by the HDP client an receives notifications)
>
> Service         unique name
> Interface       org.bluez.HealthAgent
> Object path     freely definable
>
>                void LinkConnected(object path)
>
>                        This method is called whenever a new connection
>                        has been established over the control channel of the
>                        current HDP instance. The object path paremeter contains
>                        the object path of the created HealthLink.
>
>                void LinkDisconnected(object path)
>
>                        This method is called when a remote device is
>                        disconnected definitively. Any future reconnections
>                        will fail. Also all data channels associated to this
>                        device will be closed.
>
>                void CreatedDataChannel(object path, uint16 mdlid, byte conf)
>
>                        This method is called when a new data channel is created
>                        The path contains the object path of the HealthLink
>                        where the new connection is created, the mdlid is the
>                        data channel identificator and conf is the que quality
>                        of service of the data channel (0x01 reliable, 0x02
>                        streaming).
>
>                void DeletedDataChannel(object path, uint16 mdlid)
>
>                        This method is called when a data channel is closed.
>                        After this call the data channel will not be valid and
>                        can be reused for future created data channels.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



-- 
João Paulo Rechi Vita
http://jprvita.wordpress.com/
��.n��������+%������w��{.n�����{����^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�m


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux