Return-Path: MIME-Version: 1.0 In-Reply-To: References: <20170408071834.GA12144@x1c> <20170422052644.GA31652@x1c> From: Barry Byford <31baz66@gmail.com> Date: Tue, 25 Apr 2017 22:48:32 +0100 Message-ID: Subject: Re: Serial Port connection with DBus API To: Bluez mailing list Content-Type: multipart/mixed; boundary=94eb2c0bc3e26525ba054e04af8e Sender: linux-bluetooth-owner@vger.kernel.org List-ID: --94eb2c0bc3e26525ba054e04af8e Content-Type: text/plain; charset=UTF-8 I don't feel I'm making progress on this so I've attached the output from btmon in the hope that someone has the time to cast an eye over it. The values that are received into NewConnection are: object device = /org/bluez/hci0/dev_64_BC_0C_F6_22_F8 fd = 0 dict fd_properties = {} if I do a os.isatty(fd) then I get returned True if I do a os.ttyname(fd) then I get returned /dev/pts/0 That device is the terminal I'm running the Python code in and not the serial port. I feel like I'm missing something obvious but I can't spot it so any suggestions would be welcome. Thanks, Barry On 22 April 2017 at 21:46, Barry Byford <31baz66@gmail.com> wrote: > On 22 April 2017 at 06:26, Johan Hedberg wrote: >> Hi Barry, >> >> On Fri, Apr 21, 2017, Barry Byford wrote: >>> >> > 'Channel': GLib.Variant('i', 1), >> ... >>> However I'm now seeing this error appear in btmon when I try to bind >>> to the RFCOMM socket: >>> >>> = bluetoothd: RFCOMM server failed for SerialPort: rfcomm_bind: >>> Address already in use (98) >> >> I think that means that you already have some other service listening on >> RFCOMM channel 1. Try using some other channel, or identify and stop the >> other service that's using channel 1. > > Turns out it was me that was creating the other service. :-( > > Depending which order I bind to the socket or RegisterProfile, depends > if I get the error in Bluetoothd or sockets. > > I can register the Serial Port profile successfully which allows me to > connect from the (Bluedot) Android app and I can see information being > sent to my Linux board in btmon. However I don't seem to be able to > get at that information in my script. > > Looking at this a bit more, maybe the socket connection should be > created from the 'fd' parameter passed to NewConnection. However when > I try to get the socket with this: > > def NewConnection(self, path, fd, properties): > self.server_sock = socket.fromfd(fd, socket.AF_BLUETOOTH, socket.SOCK_STREAM, > socket.BTPROTO_RFCOMM) > data = self.server_sock.recv(1024) > > It gives the following: > > Exception while handling org.bluez.Profile1.NewConnection() > Traceback (most recent call last): > File "/usr/local/lib/python3.5/dist-packages/pydbus/registration.py", > line 81, in call_method > result = method(*parameters, **kwargs) > File "BTclassic.py", line 67, in NewConnection > data = self.server_sock.recv(1024) > OSError: [Errno 88] Socket operation on non-socket > > I had been following test/test-hfp as the basic structure but that > doesn't seem to be working for me. > > Not sure where to go next with this --94eb2c0bc3e26525ba054e04af8e Content-Type: application/octet-stream; name="btmon.log" Content-Disposition: attachment; filename="btmon.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j1y22ody0 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 ABgDGAMAAAIA --94eb2c0bc3e26525ba054e04af8e--