* [Bluez-devel] read data from one device to another over rfcomm
@ 2005-07-14 9:31 Naved Aziz
2005-07-17 13:28 ` Marcel Holtmann
0 siblings, 1 reply; 2+ messages in thread
From: Naved Aziz @ 2005-07-14 9:31 UTC (permalink / raw)
To: bluez-devel
Hi,
I am developing some applications using BlueZ. The
developer board is Axis Developer 82+.
The following is the code for one of the functions.
Basically, there are two axis boards, one is acting as
a server, the other, a client. Upon establising a
connection with the server, the client receives a menu
that shows the actions it can take: run a command on
the other server, receive a file from the server, send
a file to the server.
This is the code for the client after connecting to
the server:
while (1)
{
memset (optn_buff, 0, 3 );
printf ("What do you want to do (type in
the option number)? Press CTRL-C for hang-up\n");
printf ("\t(1) Run a command\n");
printf ("\t(2) Transfer a file from here to
there\n");
printf ("\t(3) Transfer a file from there to
here\n");
gets(optn); // get
option
optn_int = atoi(optn);
if (optn_int < 1 || optn_int > 3)
{
printf ("Choose the option that's
given\n\n");
continue;
}
optn_str = sprintf(optn_buff, "%d", optn_int);
// convert optn to string
chk_write = write (sk, optn_buff, optn_str);
// send optn to server
switch (optn_int)
{
case 1:
rcmdc (sk); //
run command on server
break;
case 2:
snd (sk); //
send file from here
break;
case 3:
rec (sk); //
receive file from there
break;
}
}
optn_buff is an array of unsigned char type, of size
3. It sends the choice made by the client to the
server.
The following is the code from the server:
while (1)
{
memset (optn_buff, 0, 3 );
chk_read = read (sk, optn_buff, 1);
// read option chosen by the client
optn = atoi(optn_buff);
// convert buffer data to int
switch (optn)
{
case 1:
rcmds (sk); //
run command on server
break;
case 2:
rec (sk); //
receive file
break;
case 3:
snd (sk); //
send file
break;
}
}
After connection is made, the server waits to receive
the instruction to be executed as requested by the
client.
The problem I am facing is with the read statements:
The devices do not read what's being sent to them.
The queer thing is, if I use the same code to connect
and play with a phone, the read statements execute. I
have been able to send and receive data (using read
and write as above) with a number of phones. So, the
boards can't read when they are being written to, but
the phones can read when they're being written to.
Has anyone faced problems of this sort? Please spare
a minute of your time for me if you have.
Thanks and sincerely,
Naved
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Bluez-devel] read data from one device to another over rfcomm
2005-07-14 9:31 [Bluez-devel] read data from one device to another over rfcomm Naved Aziz
@ 2005-07-17 13:28 ` Marcel Holtmann
0 siblings, 0 replies; 2+ messages in thread
From: Marcel Holtmann @ 2005-07-17 13:28 UTC (permalink / raw)
To: bluez-devel
Hi Naved,
> I am developing some applications using BlueZ. The
> developer board is Axis Developer 82+.
>
> The following is the code for one of the functions.
> Basically, there are two axis boards, one is acting as
> a server, the other, a client. Upon establising a
> connection with the server, the client receives a menu
> that shows the actions it can take: run a command on
> the other server, receive a file from the server, send
> a file to the server.
>
> This is the code for the client after connecting to
> the server:
>
> while (1)
> {
> memset (optn_buff, 0, 3 );
>
> printf ("What do you want to do (type in
> the option number)? Press CTRL-C for hang-up\n");
> printf ("\t(1) Run a command\n");
> printf ("\t(2) Transfer a file from here to
> there\n");
> printf ("\t(3) Transfer a file from there to
> here\n");
>
> gets(optn); // get
> option
>
> optn_int = atoi(optn);
>
> if (optn_int < 1 || optn_int > 3)
> {
> printf ("Choose the option that's
> given\n\n");
> continue;
> }
>
> optn_str = sprintf(optn_buff, "%d", optn_int);
> // convert optn to string
> chk_write = write (sk, optn_buff, optn_str);
> // send optn to server
>
> switch (optn_int)
> {
> case 1:
> rcmdc (sk); //
> run command on server
> break;
> case 2:
> snd (sk); //
> send file from here
> break;
> case 3:
> rec (sk); //
> receive file from there
> break;
> }
> }
>
> optn_buff is an array of unsigned char type, of size
> 3. It sends the choice made by the client to the
> server.
>
> The following is the code from the server:
>
> while (1)
> {
> memset (optn_buff, 0, 3 );
>
> chk_read = read (sk, optn_buff, 1);
> // read option chosen by the client
> optn = atoi(optn_buff);
> // convert buffer data to int
>
> switch (optn)
> {
> case 1:
> rcmds (sk); //
> run command on server
> break;
> case 2:
> rec (sk); //
> receive file
> break;
> case 3:
> snd (sk); //
> send file
> break;
> }
> }
>
> After connection is made, the server waits to receive
> the instruction to be executed as requested by the
> client.
>
> The problem I am facing is with the read statements:
> The devices do not read what's being sent to them.
> The queer thing is, if I use the same code to connect
> and play with a phone, the read statements execute. I
> have been able to send and receive data (using read
> and write as above) with a number of phones. So, the
> boards can't read when they are being written to, but
> the phones can read when they're being written to.
you must have a bug somewhere, because the RFCOMM is a real duplex
stream and it is working perfect. Do you use the latest kernel? Do you
checked with "hcidump -X -V" what happens on each side?
Regards
Marcel
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2005-07-17 13:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-14 9:31 [Bluez-devel] read data from one device to another over rfcomm Naved Aziz
2005-07-17 13:28 ` Marcel Holtmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox