linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: david <gangchen@mobilesoft.com.cn>
To: bluez-devel <bluez-devel@lists.sourceforge.net>
Subject: [Bluez-devel] Re: ttyS0 problem
Date: Tue, 11 Oct 2005 15:05:53 +0800	[thread overview]
Message-ID: <1129014353.2346.36.camel@localhost.localdomain> (raw)
In-Reply-To: <1129012750.2346.33.camel@localhost.localdomain>

Hi marcel,

=D4=DA 2005-10-11=B6=FE=B5=C4 14:39 +0800=A3=ACdavid=D0=B4=B5=C0=A3=BA
> Hi marcel,
>=20
> =D4=DA 2005-10-11=B6=FE=B5=C4 14:03 +0800=A3=ACdavid=D0=B4=B5=C0=A3=BA
> >  Hi David,
>=20
> >  > I want to write some commands to the uart(ttyS0), but it fails.
>  >  > The steps are as follows:
>  >  > =20
>  >  > 1. hciattach ttyS0 texas
>  >  > 2. Open ttyS0 device again and get a fd, init ttyS0 with speed,
>  >  > flow_ctl and so on,then write a command(0x30) to the fd but return
>  >  > 0; That is nothing is written to ttyS0.
>  >  > =20
> > marcel write,=20
> >  > > What commands do you wanna send?
> >  > The command is HCI_GO_TO_SLEEP_IND(0x30) which is only one byte. It =
is a
> >  > vendor specific command used to ask the BT device to go to sleep. If=
 BT
> >  > device receives the command, maybe it would response
> >  > HCILL_GO_TO_SLEEP_ACK(0x31) command to the host.
> > =20
> >  do you have the specification of these vendor commands? Is this comman=
d
> >  according to the HCI specification or is it an extension of the H:4
> >  transport protocol?
> > =20
> >  > > after step 1, you  must use the HCI raw socket to send commands
> >  >=20
> >  > Is this means we cannot write command to ttyS0 directly through writ=
e()
> >  > function?
> > =20
> >  After calling hciattach the kernel takes over the serial port via the
> >  line discipline and the reads and writes are useless.
> > =20
> >  Regards
> > =20
> >  Marcel
>=20
>=20
>=20
> Now, I can write command(0x30) to ttyS0 driectly after hciattach tty0
> texas(assume step 1);
> The function is as follows(assume step 2):
>=20
> static int write_cmd_to_ttyS0()
>=20
> {
>                 int fdd;
>                 int len;
>                 char cmd[5];
>                 int temp;
>                 int dd;
>    =20
>                 fdd =3D open("/dev/ttyS0", O_RDWR | O_NOCTTY);
>                 if (fdd < 0) {
>                         printf("Can't open serial port, fd =3D %d\n",fdd)=
;
>                         return -1;
>        		  }
>                 else
>                         printf("open serial ok, fd =3D %d\n", fdd);
>              =20
> 		  temp =3D 0;
>                 if (ioctl(fdd, TIOCSETD, &temp) < 0) {
>                         perror("Can't set line discipline");
>                         return -1;
>                   }
>=20
>                 cmd[0] =3D 0x30;//HCILL_GO_TO_SLEEP_IND
>=20
>                 len =3D write(fdd, cmd, 1);
>                 printf("write %d byte\n", len);
>                 len =3D read(fdd, cmd, 1);
>                 printf("read %d byte cmd[0] =3D %d\n", len, cmd[0]);
>=20
>                 temp =3D N_HCI;
>                 if (ioctl(fdd, TIOCSETD, &temp) < 0) {
>                         perror("Can't set line discipline");
>                         return -1;
>                 }
>                 if (ioctl(fdd, HCIUARTSETPROTO, 0) < 0) {
>                         perror("Can't set device");
>                         return -1;
>                 }
>  }            =20
>=20
> After step 2,  step3 and step 4 run successfully.=20
>=20
> step 3: hciconfig hci0 up
> step 4: hcitool scan
>=20
> If I change the steps as follows, an error occures in step 4, the error
> is "Device is not available". Do you know why? How can I step 4 can run
> successfully after step 3?
>=20
> step 1: hciattach ttyS0 texas
> Step 2: hciconfig hci0 up
> step 3: write_cmd_to_ttyS0()
> step 4: hcitool scan
>=20
> /*** cmd_scan() ****/
>    if (dev_id < 0) {
>                 dev_id =3D hci_get_route(NULL);
>                 if (dev_id < 0) {
>                         perror("Device is not available");
>                         exit(1);
>                 }
>         }
> /**********************/
>=20
>=20
>=20
>=20
> Regards,
>=20
> David
>=20


I find hci0 is down after step 3. why?

hciconfig -a


hci0:   Type: UART
        BD Address: 00:00:00:00:00:00 ACL MTU: 0:0  SCO MTU: 0:0
        DOWN
        RX bytes:5 acl:0 sco:0 events:0 errors:1
        TX bytes:0 acl:0 sco:0 commands:0 errors:0
        Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Packet type: DM1 DH1 HV1
        Link policy:
        Link mode: SLAVE ACCEPT



Regards,

David



-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

  reply	other threads:[~2005-10-11  7:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1129010637.2346.1.camel@localhost.localdomain>
2005-10-11  6:39 ` [Bluez-devel] ttyS0 problem david
2005-10-11  7:05   ` david [this message]
     [not found] <1128920934.2417.21.camel@localhost.localdomain>
2005-10-10  6:27 ` [Bluez-devel] " david

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1129014353.2346.36.camel@localhost.localdomain \
    --to=gangchen@mobilesoft.com.cn \
    --cc=bluez-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).