2006-04-10 15:03:02

by Sir Graham (Terra)

[permalink] [raw]
Subject: [Bluez-devel] Selection of Local module....

Hi,

I need to use two bluetooth devices in the same computer with BlueZ.

How can I select (with socket) the device local that I like make a conexion?


If I make a simple conexion... Can I select what of my local modules (HCI0 or HCI1) makes this conexion?


#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/rfcomm.h>

int main(int argc, char **argv)
{
struct sockaddr_rc addr = { 0 };
int s, status;
char dest[18] = "01:23:45:67:89:AB";

// allocate a socket
s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

// set the connection parameters (who to connect to)
addr.rc_family = AF_BLUETOOTH;
addr.rc_channel = (uint8_t) 1;
str2ba( dest, &addr.rc_bdaddr );

// connect to server
status = connect(s, (struct sockaddr *)&addr, sizeof(addr));

// send a message
if( status == 0 ) {
status = write(s, "hello!", 6);
}

if( status < 0 ) perror("uh oh");

close(s);
return 0;
}

Can I select what of my local modules (HCI0 or HCI1) makes this conexion?

Where can I select (in the example) what local module use? ??????

Regards,
Sir Graham.





2006-04-10 17:37:57

by Albert Huang

[permalink] [raw]
Subject: Re: [Bluez-devel] Selection of Local module....

bind() to the address and channel of the local adapter you want to use
before the call to connect()

-albert

On 4/10/06, Sir Graham (Terra) <[email protected]> wrote:
>
> *Hi,*
> **
> *I need to use two bluetooth devices in the same computer with BlueZ.*
> **
> *How can I select (with socket) the device local that I like make a
> conexion?*
>
>
> *If I make a simple conexion... Can I select what of my local modules
> (HCI0 or HCI1) makes this conexion?*
>
>
> #include <stdio.h>
> #include <unistd.h>
> #include <sys/socket.h>
> #include <bluetooth/bluetooth.h>
> #include <bluetooth/rfcomm.h>
>
> int main(int argc, char **argv)
> {
> struct sockaddr_rc addr = { 0 };
> int s, status;
> char dest[18] = "01:23:45:67:89:AB";
>
> // allocate a socket
> s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
>
> // set the connection parameters (who to connect to)
> addr.rc_family = AF_BLUETOOTH;
> addr.rc_channel = (uint8_t) 1;
> str2ba( dest, &addr.rc_bdaddr );
>
> // connect to server
> status = connect(s, (struct sockaddr *)&addr, sizeof(addr));
>
> // send a message
> if( status == 0 ) {
> status = write(s, "hello!", 6);
> }
>
> if( status < 0 ) perror("uh oh");
>
> close(s);
> return 0;
> }
>
> *Can I select what of my local modules (HCI0 or HCI1) makes this
> conexion? *
>
> *Where can I select (in the example) what local module use? ??????*
> **
> *Regards,*
> *Sir Graham.*
> **
>
>
>
>


Attachments:
(No filename) (1.46 kB)
(No filename) (3.54 kB)
Download all attachments