Python 全球名称';蓝牙&x27;没有定义
我正在使用bitalino板,我想用python打印数据,但当我运行正确的代码时,它会向我显示消息 未定义全局名称“bluetooth” 根据我的电脑,主板通过蓝牙连接。我不知道是什么问题,你能帮我吗? 我正在使用MacOSX 这是代码的一部分,问题可能是: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
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。。。