[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [6310i/bluetooth] no go ?
From: |
Florian Lohoff |
Subject: |
Re: [6310i/bluetooth] no go ? |
Date: |
Sun, 30 Mar 2003 23:56:56 +0200 |
User-agent: |
Mutt/1.3.28i |
On Fri, Mar 28, 2003 at 06:16:26PM +0100, Pawel Kot wrote:
> At the moment you can use 6310(i) over Bluetooth only with AT model.
> There's needed some magic control sequence to enable FBUS mode. But
> unfortunately we don't know (yet) this sequence.
>
> So try again with 'model = AT'.
Ok - after unpacking the nokia cell suite and searching for the relevant
file (MediaWrapper3S.dll) and looking into it it seems there is
dsr flipping needed:
----------schnipp------------
MediaWrapper: CBluetooth::CommEventThread() Starting...
MediaWrapper: CBluetooth::CommEventThread() DSR OFF->ON
MediaWrapper: CBluetooth::CommEventThread() DSR ON->OFF
MediaWrapper: CBluetooth::CommEventThread() Phonet Message in COMM buffer
MediaWrapper: CBluetooth::CommEventThread() EXIT!
MediaWrapper: CBluetooth::OnMsgIn() GetLastError returned %d
---------------schnapp-------
As most of the debugging messages seem to occur in the chronologic order
the events happen this seems the cell suite needs to deal with DSR.
Now i did this:
--- common/device.c 6 Mar 2003 21:23:56 -0000 1.30
+++ common/device.c 30 Mar 2003 19:15:36 -0000
@@ -128,11 +128,10 @@
switch (state->device.type) {
case GN_CT_Serial:
case GN_CT_Infrared:
+ case GN_CT_Bluetooth:
serial_setdtrrts(state->device.fd, dtr, rts, state);
break;
case GN_CT_Irda:
- break;
- case GN_CT_Bluetooth:
break;
case GN_CT_Tekram:
break;
Which seemed to be the correct thing todo - Now strace shows that the
relevant ioctl calls return
[...]
socket(0x1f /* PF_??? */, SOCK_STREAM, 3) = 5
bind(5, {sin_family=0x1f /* AF_??? */, {sa_family=31,
sa_data="address@hidden"}, 10) = 0
connect(5, {sin_family=0x1f /* AF_??? */, {sa_family=31,
sa_data="\305I\267\356\2\0\2\0\0\0\37\0\0\0"}, 10) = 0
write(2, "Serial device: setting RTS to lo"..., 49) = 49
ioctl(5, 0x5417, [TIOCM_DTR]) = -1 EINVAL (Invalid argument)
ioctl(5, 0x5417, [TIOCM_RTS]) = -1 EINVAL (Invalid argument)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0}) = 0
write(2, "Serial device: setting RTS to hi"..., 51) = 51
ioctl(5, 0x5416, [TIOCM_DTR]) = -1 EINVAL (Invalid argument)
ioctl(5, 0x5416, [TIOCM_RTS]) = -1 EINVAL (Invalid argument)
[...]
Now - looking at the kernel source the ioctl for a socket gets directed
net/bluetooth/rfcomm/sock.c:rfcomm_sock_ioctl ->
net/bluetooth/rfcomm/dev.c:rfcomm_dev_ioctl
Which does not implement anything like the serial ioctls - So using a
socket and sending possble required dsr changes will not be possible.
Using a rfcomm tty implements the ioctls - but using configured
/dev/rfcomm's to different channels does not show any better result.
Next idea was to use "snoopy" for my internal usb<>bluetooth adapter
to capture all traffic (rfcomm in usb) but the problem is that
the Nokia Suite does not work on my Vaio under XP. ;(
Flo
--
Florian Lohoff address@hidden +49-5201-669912
Heisenberg may have been here.
pgpOHRhrALnyP.pgp
Description: PGP signature