2007-05-26 10:21:39

by Pierre-Yves Paulus

[permalink] [raw]
Subject: [Bluez-devel] New Serial DBus API - how to choose dongle used?

Hello,

Since bluez-utils v3.10, the new Serial API is included, and the
previous RFCOMM API has been removed. The first semms to functionnaly
replace the latter.

If I'm right, some calls previously done in the RFCOMM hierarchy now
have to be done in the Serial one. For some of them, changes look like this:

RFCOMM: String Connect(String address, String service);
Serial: String ConnectService(String address, String pattern);

RFCOMM: String ConnectByChannel(String address, byte channel);
Serial: No equivalent so far

RFCOMM: void Disconnect(String device);
Serial: void DisconnectService(String device);

RFCOMM: void CancelConnect(String address, String service);
Serial: void CancelConnectService(String address, String pattern);

Apart for the missing "ConnectByChannel", it seems looks indeed very
similar.

But there is somethig different: object path for RFCOMM was
/org/bluez/{hci0,hci1,...} (eg. one RFCOMM object for each physical
Adapter). But according to the doc, object path for Serial is
/org/bluez/serial (eg, IIUC one single Manager).

So, my question: how do I choose which dongle to use to perform the
connection with the new implementation, in case several are connected to
the system?

Thanks,
Best Regards.

Pierre-Yves Paulus


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel


2007-05-26 17:41:19

by Pierre-Yves Paulus

[permalink] [raw]
Subject: Re: [Bluez-devel] New Serial DBus API - how to choose dongle used?

Hi Marcel,

>> RFCOMM: String ConnectByChannel(String address, byte channel);
>> Serial: No equivalent so far
>
> simply use ConnectService(<bdaddr>, channel). The pattern matching works
> the that if you give a decimal number that it connects to the specified
> channel.

Nice!

>> So, my question: how do I choose which dongle to use to perform the
>> connection with the new implementation, in case several are connected to
>> the system?
>
> We don't support this. At least not yet. At some point, we might have
> additional methods that let you choose a source address. However that is
> not our priority at the moment.

Ouch, bad luck for me. I hope I'll have time to see if I can add this
functionnality myself, as I definitely need it. Don't know however if I
don't lack the ability and knowledge, as I never worked inside BlueZ
source. How would you rate the difficulty of the work involved to
implement such a behaviour?

At the moment, the current "no choice" implementation simply always use
hci0?


Best Regards,
Pierre-Yves

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

2007-05-26 11:01:29

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-devel] New Serial DBus API - how to choose dongle used?

Hi Pierre-Yves,

> Since bluez-utils v3.10, the new Serial API is included, and the
> previous RFCOMM API has been removed. The first semms to functionnaly
> replace the latter.
>
> If I'm right, some calls previously done in the RFCOMM hierarchy now
> have to be done in the Serial one. For some of them, changes look like this:
>
> RFCOMM: String Connect(String address, String service);
> Serial: String ConnectService(String address, String pattern);
>
> RFCOMM: String ConnectByChannel(String address, byte channel);
> Serial: No equivalent so far

simply use ConnectService(<bdaddr>, channel). The pattern matching works
the that if you give a decimal number that it connects to the specified
channel.

> RFCOMM: void Disconnect(String device);
> Serial: void DisconnectService(String device);
>
> RFCOMM: void CancelConnect(String address, String service);
> Serial: void CancelConnectService(String address, String pattern);
>
> Apart for the missing "ConnectByChannel", it seems looks indeed very
> similar.

It is fully compatible.

> But there is somethig different: object path for RFCOMM was
> /org/bluez/{hci0,hci1,...} (eg. one RFCOMM object for each physical
> Adapter). But according to the doc, object path for Serial is
> /org/bluez/serial (eg, IIUC one single Manager).
>
> So, my question: how do I choose which dongle to use to perform the
> connection with the new implementation, in case several are connected to
> the system?

We don't support this. At least not yet. At some point, we might have
additional methods that let you choose a source address. However that is
not our priority at the moment.

Regards

Marcel



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel