Skip to content

Commit

Permalink
Added experimental mac support, testing needed. Should not break anyt…
Browse files Browse the repository at this point in the history
…hing on other platforms.
  • Loading branch information
marcusw committed Jan 14, 2010
1 parent 5036aa3 commit a341e2a
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 1 deletion.
5 changes: 4 additions & 1 deletion nxt/bluesock.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

import bluetooth
try:
import bluetooth
except ImportError:
import lightblueglue as bluetooth
import os
from .brick import Brick

Expand Down
53 changes: 53 additions & 0 deletions nxt/lightblueglue.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# bluetooth.py module -- Glue code from NXT_Python to Lightblue, allowing
# NXT_Python to run on Mac without modification. Supports subset of
# PyBluez/bluetooth.py used by NXT_Python.
#
# Copyright (C) 2007 Simon D. Levy
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

import lightblue

RFCOMM=11

def discover_devices(lookup_names=False): # parameter is ignored
pairs = []
d = lightblue.finddevices()
for p in d:
h = p[0]
n = p[1]
pairs.append((h, n))
return pairs

class BluetoothSocket:

def __init__(self, proto = RFCOMM, _sock=None):
if _sock is None:
_sock = lightblue.socket(proto)
self._sock = _sock
self._proto = proto

def connect(self, addrport):
addr, port = addrport
self._sock.connect( (addr, port ))

def send(self, data):
return self._sock.send( data )

def recv(self, numbytes):
return self._sock.recv( numbytes )

def close(self):
return self._sock.close()

class BluetoothError(IOError):
pass

0 comments on commit a341e2a

Please sign in to comment.