Python 全球名称';蓝牙&x27;没有定义

Python 全球名称';蓝牙&x27;没有定义,python,bluetooth,connect,Python,Bluetooth,Connect,我正在使用bitalino板,我想用python打印数据,但当我运行正确的代码时,它会向我显示消息 未定义全局名称“bluetooth” 根据我的电脑,主板通过蓝牙连接。我不知道是什么问题,你能帮我吗? 我正在使用MacOSX 这是代码的一部分,问题可能是: try: import bluetooth from bluetooth import discover_devices except ImportError: pass import serial from ser

我正在使用bitalino板,我想用python打印数据,但当我运行正确的代码时,它会向我显示消息

未定义全局名称“bluetooth”

根据我的电脑,主板通过蓝牙连接。我不知道是什么问题,你能帮我吗? 我正在使用MacOSX

这是代码的一部分,问题可能是:

try:
    import bluetooth
    from bluetooth import discover_devices
except ImportError:
    pass
import serial
from serial.tools import list_ports
import time
import math
import numpy



class BITalino(object):

    def __init__(self):
        """
        BITalino class: interface to the BITalino hardware.

        """
        self.socket = None
        self.analogChannels = []
        self.number_bytes = None
        self.macAddress = None
        self.serial = False

    def find(self, serial=False):
        """
        Search for bluetooth devices nearby

        Output: tuple with name and mac address of each device found
        """

        try:
            if serial:
                nearby_devices = list(port[0] for port in list_ports.comports() if 'bitalino' or 'COM' in port[0])
            else:
                nearby_devices = discover_devices(lookup_names=True)
            return nearby_devices
        except:
            return -1

    def open(self, macAddress=None, SamplingRate=1000):
        """
        Connect to bluetooth device with the mac address provided. 
        Configure the sampling Rate. 

        Kwargs:

            macAddress (string): MAC address of the bluetooth device
            SamplingRate(int): Sampling frequency (Hz); values available: 1000, 100, 10 and 1

        Output: True or -1 (error)
        """

        Setup = True
        while Setup:
            if macAddress != None:
                try:
                    if ":" in macAddress and len(macAddress) == 17:
                        self.socket = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
                        self.socket.connect((macAddress, 1))
                    else:
                        self.socket = serial.Serial(macAddress, 115200)
                        self.serial = True
                    time.sleep(2)

                    # Configure sampling rate
                    if SamplingRate == 1000:
                        variableToSend = 0x03
                    elif SamplingRate == 100:
                        variableToSend = 0x02
                    elif SamplingRate == 10:
                        variableToSend = 0x01
                    elif SamplingRate == 1:
                        variableToSend = 0x00
                    else:
                        self.socket.close()
                        raise TypeError,  "The Sampling Rate %s cannot be set in BITalino. Choose 1000, 100, 10 or 1." % SamplingRate
                        return -1

                    variableToSend = int((variableToSend<<6)|0x03)
                    self.write(variableToSend)
                    Setup = False

                except Exception, e:
                    print e
                    return -1
            else:
                raise TypeError, "A MAC address or serial port is needed to connect"
                return -1
        else:
            self.macAddress = macAddress
            return True
试试看:
导入蓝牙
从蓝牙导入查找设备
除恐怖外:
通过
导入序列号
从serial.tools导入列表\u端口
导入时间
输入数学
进口numpy
类BITalino(对象):
定义初始化(自):
"""
BITalino类:与BITalino硬件的接口。
"""
self.socket=None
self.analog通道=[]
self.number\u字节=无
self.macAddress=None
self.serial=False
def查找(自身,串行=错误):
"""
搜索附近的蓝牙设备
输出:具有找到的每个设备的名称和mac地址的元组
"""
尝试:
如果是串行的:
附近的\u设备=列表(如果端口[0]中的'bitalino'或'COM',则列表中的端口的端口[0]为\u ports.comports())
其他:
附近的\u设备=发现\u设备(查找\u名称=真)
返回附近的设备
除:
返回-1
def打开(自我,macAddress=None,SamplingRate=1000):
"""
使用提供的mac地址连接到蓝牙设备。
配置采样率。
夸尔格:
macAddress(字符串):蓝牙设备的MAC地址
采样率(int):采样频率(Hz);可用值:1000、100、10和1
输出:真或-1(错误)
"""
设置=真
安装时:
如果macAddress!=无:
尝试:
如果macAddress和len中的“:”(macAddress)==17:
self.socket=bluetooth.BluetoothSocket(bluetooth.RFCOMM)
self.socket.connect((macAddress,1))
其他:
self.socket=serial.serial(macAddress,115200)
self.serial=True
时间。睡眠(2)
#配置采样率
如果采样率==1000:
variableToSend=0x03
elif采样率==100:
variableToSend=0x02
elif采样率==10:
variableToSend=0x01
elif SamplingRate==1:
variableToSend=0x00
其他:
self.socket.close()
raise TypeError,“无法在BITalino中设置采样率%s。请选择1000、100、10或1。”%SamplingRate
返回-1
variableToSend=int((variableToSend希望这将有助于:


这是一个用于python蓝牙功能的API

如果出现问题,通常最好让导入失败,因此我会删除
try

如果您对要使用的库漠不关心,则在导入中使用它的唯一原因是:

try:
    import json
except ImportError:
    import simplejson as json

那么,如果导入蓝牙失败,代码应该如何工作呢?你在其周围放置了一个
try。。。