首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义全局名称“蓝牙”

未定义全局名称“蓝牙”
EN

Stack Overflow用户
提问于 2015-06-10 13:41:16
回答 2查看 1.3K关注 0票数 0

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

未定义全局名称“蓝牙”

根据我的个人电脑,板是通过蓝牙连接的。我不知道有什么问题,你能帮帮我吗?Pd:我在使用Mac。

这是代码的一部分,可能会出现以下问题:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-10 14:04:26

希望这会有所帮助:http://lightblue.sourceforge.net/

这是python的蓝牙特性的API

票数 0
EN

Stack Overflow用户

发布于 2015-06-10 14:09:47

通常情况下,如果有问题,最好让导入失败,所以我会删除try..except,只做一个正常的导入。

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

代码语言:javascript
复制
try:
    import json
except ImportError:
    import simplejson as json
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30758126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档