2007-03-30 03:18:01

by Loreno Oliveira

[permalink] [raw]
Subject: [Bluez-users] problem reading rssi

Hi,

I am having some headache for reading the rssi of a remote device. The code
bellow insists in returning 0 to the "rssi" variable when I try to read the
rssi of a connected Nokia 770. If I run the same code for a connected
desktop, then a non zero value is returned. For complicating even more, if I
run "hcitool clkoff <addr>" when connected to the 770, then a non zero value
is also returned.

struct hci_conn_info_req* cr;
bdaddr_t bdaddr;
int8_t rssi;

char* addr = device->client->getClientAddressAsString();
int sockId = device->dongle->getSocketId();

str2ba( addr, &bdaddr );

cr = (hci_conn_info_req*)malloc(sizeof(*cr) + sizeof(struct
hci_conn_info));
if( !cr ) {
perror( "Can't allocate memory" );
exit( 1 );
}

bacpy(&cr->bdaddr, &bdaddr);
cr->type = ACL_LINK;
if( ioctl( sockId, HCIGETCONNINFO, (unsigned long) cr ) < 0 ) {
perror("Get connection info failed");
exit(1);
}

if( hci_read_rssi(sockId, htobs(cr->conn_info->handle), &rssi, 1000) < 0
) {
perror("Read RSSI failed");
exit(1);
}

printf("RSSI return value: %d\n", rssi);

free(cr);
return (int)rssi;

Does anyone have some idea about what is going wrong here?

Loreno


Attachments:
(No filename) (1.24 kB)
(No filename) (1.93 kB)
(No filename) (345.00 B)
(No filename) (164.00 B)
Download all attachments

2007-03-31 16:28:20

by Loreno Oliveira

[permalink] [raw]
Subject: Re: [Bluez-users] problem reading rssi

Thanks for answer Marcel.

However, i think this is not the case. In some test I have made, I put two
scripts to run at the same time. The first one used hcitool for getting the
RSSI, the second one used my program to get the RSSI. Looking to the prints
on the terminal window, my program returned zero for the RSSI value while
hcitool returned a non zero value...

I am quite confused with this result. The code I am using for getting the
rssi is the same as the code hcitool uses. As far as a saw, the whole code
necessary for measuring rssi through hcitool is within the "cmd_rssi"
function. Is that right or there is some state outside cmd_rssi that impacts
in the correctness of the measurement?

Thanks again,

Loreno

On 3/31/07, Marcel Holtmann <[email protected]> wrote:
>
> Hi Loreno,
>
> > I am having some headache for reading the rssi of a remote device. The
> > code bellow insists in returning 0 to the "rssi" variable when I try
> > to read the rssi of a connected Nokia 770. If I run the same code for
> > a connected desktop, then a non zero value is returned. For
> > complicating even more, if I run "hcitool clkoff <addr>" when
> > connected to the 770, then a non zero value is also returned.
>
> it depends on the local adapter you use and the Bluetooth chip in the
> remote device. Some devices don't report the correct RSSI value. It
> seems they always return 0.
>
> Regards
>
> Marcel
>
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Bluez-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bluez-users
>


Attachments:
(No filename) (1.91 kB)
(No filename) (2.53 kB)
(No filename) (345.00 B)
(No filename) (164.00 B)
Download all attachments

2007-03-31 13:48:55

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [Bluez-users] problem reading rssi

Hi Loreno,

> I am having some headache for reading the rssi of a remote device. The
> code bellow insists in returning 0 to the "rssi" variable when I try
> to read the rssi of a connected Nokia 770. If I run the same code for
> a connected desktop, then a non zero value is returned. For
> complicating even more, if I run "hcitool clkoff <addr>" when
> connected to the 770, then a non zero value is also returned.

it depends on the local adapter you use and the Bluetooth chip in the
remote device. Some devices don't report the correct RSSI value. It
seems they always return 0.

Regards

Marcel



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users