Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 May 2008 17:52:26 +0200 (CEST)
From:      freebsd-bluetooth@oldach.net (Helge Oldach)
To:        maksim.yevmenkin@gmail.com (Maksim Yevmenkin)
Cc:        freebsd-bluetooth@freebsd.org, rizzo@iet.unipi.it
Subject:   Re: any reason to require -t dev in rfcomm_sppd -S ?
Message-ID:  <200805131552.m4DFqQOW031043@sep.oldach.net>
In-Reply-To: <bb4a86c70804211151l76230f1ek32a9c51b644a983e@mail.gmail.com> from Maksim Yevmenkin at "21 Apr 2008 11:51:55"

next in thread | previous in thread | raw e-mail | index | archive | help
Maksim Yevmenkin wrote on Mon, 21 Apr 2008 20:51:55 +0200 (CEST):
> On Thu, Apr 17, 2008 at 11:06 AM, Luigi Rizzo <rizzo@iet.unipi.it> wrote:
> >
> > On Thu, Apr 17, 2008 at 10:39:16AM -0700, Maksim Yevmenkin wrote:
> >  > On Thu, Apr 17, 2008 at 4:56 AM, Luigi Rizzo <rizzo@iet.unipi.it> wrote:
> >  > > hi, is there any compelling reason to require
> >  > >  the '-t device' option in rfcomm_sppd when used in server mode ?
> >  >
> >  > technically, no. just need to be careful who is going to setup tty
> >  > properly, for example make it 'raw' as rfcomm_sppd(1) does with pty.
> >  > rfcomm_sppd(1) already can be used inside ppp(8), i.e. one can do
> >  > something like
> >  >
> >  > set device '!/usr/bin/rfcomm_sppd -a mobile -c sp'
> >  >
> >  > in /etc/ppp.conf and it will work just fine. rfcomm_sppd(1) does not
> >  > do anything to tty when running using stdin/stdout in client mode. the
> >  > assumption here is that whatever calls rfcomm_sppd(1) will setup
> >  > tty/fd properly.
> >  >
> >  > >  I tried to disable the one-line that checks it in the code, and
> >  > >  things seem to work - and this makes the program very convenient
> >  > >  to use in a pipeline, e.g.  to receive data from a remote bluetooth
> >  > >  device.
> >  >
> >  > right. can you please provide usage example? i certainly would not
> >  > object to making the change you are requesting.
> >
> >  sure - i need to listen to a portable ElectroCardioGram (ECG) device
> >  which talks to the external world through bluetooth. The device
> >  must have some kind of modem inside - its console port says it is
> >  issuing commands such as
> >
> >         AT+ZV SPPConnect XXX
> >         ...
> >
> >  where XXX is the (manually configured) address of the bluetooth
> >  dongle on the PC. On the FreeBSD side, running
> >  "rfcom_sppd -a YYY" (without the -S option, YYY is the ECG address)
> >  sometimes connects, but most of the times doesnt.
> >
> >  With a patched rfcomm_sppp i can just do
> >
> >         rfcomm_sppd -S -a YYY | my_data_logger
> >
> >  rather than having to manually select an available tty/pty pair
> >
> >  Don't know how many devices behave in this way, but a
> >  search for "AT+ZV SPPConnect" gives several matches with
> >  documentation for embedded hardware.
> 
> ok, please try the attached patch and see if it works for you. i
> basically removed the check for tty name in server mode, bind to
> "wildcard" channel instead of generating one based on pid (if channel
> was not specified) and fixed a possible problem with service
> registration in server mode (i.e. always register serial port
> service).

Your patch applies cleanly, but I just get

# rfcomm_sppd -S
rfcomm_sppd: Could not get socket name
# 

It seems that getsockbyname fails. What is the reason for that anyway?

BTW, Luigi's pipe application is interesting, but what about true
two-way communcation? For instance, I would like to have something like

# rfcomm_sppd -S -c sp -a myPalm -x "coldsync -t serial -s -md"

...meaning: Upon receipt of a SP connection request from myPalm we would
fork coldsync to synchronize the Palm (just like USB or serial sync, but
now bluetooth).

This could even go into /etc/ttys, forking a fresh rfcomm_sppd after the
request terminates.

I'm currently doing this in two separate steps, first starting
rfcomm_sppd with some arbitrary pty, then coldsync talking to that pty.
So yes, this definitely works.

Regards,
Helge



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805131552.m4DFqQOW031043>