python

python,第1张

一、python的包的API怎么用

1、依赖包的版本与python的版本要匹配
下载python的国内源:https://mirrors.huaweicloud.com/python/
2、官网:https://docs.python.org/zh-cn/3.9/看自带的文档,搜索 “python 库名”,找到官网(有 github 地址的也算),如果有,看上面的说明,如果没有,参见
3、利用 Python 的帮助系统,安装的第三方库也是可以通过 help 获取的。不过鉴于它没官网 doc,估计其中的 docstring 也不会太详尽,所以不如直接跳到
4、看源码
5、可用网站:
1)https://pybluez.readthedocs.io/en/latest/index.html

2)…

二、例如如何使用包pybluez(蓝牙)

参考:https://blog.csdn.net/weixin_50396804/article/details/109823229

1、如何连接成功
import bluetooth
import sys
import time

name='小米手机10pro'                  #需连接的设备名字
nearby_devices = bluetooth.discover_devices(lookup_names=True)
print(nearby_devices)                #附近所有可连的蓝牙设备

addr=None
for device in nearby_devices:        #遍历查看nearby_devices列表中有无需连接的设备小米手机10pro,有就打印出来
    if name==device[1]:
        addr = device[0]
        print("device found!",name," address is: ",addr)
        break
if addr==None:                      #nearby_devices列表中没有需连接的设备小米手机10pro
    print("device not exist")

services = bluetooth.find_service(address=addr)        #find_service用于查找可用的蓝牙服务。搜索结果将是一个列表
print(services)
for svc in services:                                   #svc依次表示services中的一个元素,遍历完所有元素循环结束
    print("Service Name: %s"    % svc["name"])
    print("    Host:        %s" % svc["host"])
    print("    Description: %s" % svc["description"])
    print("    Provided By: %s" % svc["provider"])
    print("    Protocol:    %s" % svc["protocol"])
    print("    channel/PSM: %s" % svc["port"])
    print("    svc classes: %s "% svc["service-classes"])
    print("    profiles:    %s "% svc["profiles"])
    print("    service id:  %s "% svc["service-id"])	#打印蓝牙设备的各种属性

sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)      #代表蓝牙连接的一端的蓝牙套接字。套接字将使用的协议RFCOMM
sock.connect((addr, 2))             #将套接字绑定到本地地址和端口。
print("连接成功,端口:")
i=0
while i<255:                        #当 while<i<255>为 True 时运行【语句块】,【语句块】运行结束后,再次进入 <条件表达式>进行 判断,如果 <条件表达式>结果为 True 则再次运行【语句块】, 以此循环直到 <条件表达式> 结果为 False 结束循环。
    try:
        sock.connect((addr, i))
        print("连接成功,端口:",i)
        break
    except Exception as e:
        print("端口:",i,"连接失败",e)
        i=i+1							#遍历端口号,进行连接
2、连接与进入通讯循环
import time
import sys
import bluetooth

#uuid = "98B97136-36A2-11EA-8467-484D7E99A198"
nearby_devices = bluetooth.discover_devices(lookup_names=True)
print(nearby_devices)
uuid = "00001101-0000-1000-8000-00805f9b34fb"
service_matches = bluetooth.find_service( uuid = uuid )  # match匹配
if len(service_matches) == 0:
    print("couldn't find the FooBar service")
    sys.exit(0)

first_match = service_matches[0]
print(first_match)
port = first_match["port"]
name = first_match["name"]
host = first_match["host"]

print("connecting to \"%s\" on %s" % (name, host))
sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((host, port))
print("连接成功")



while True:								#进入循环,不然通讯会自动关闭
	sock.send("12345".encode('utf-8'))
	sock.send("hello".encode('utf-8'))
	data=sock.recv(1024)				#1024为数据长度
	print("received:",data)
	time.sleep(5)
蓝牙协议栈bluez移植

看看:https://blog.csdn.net/gatieme/article/details/48751743

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/942098.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-17
下一篇 2022-05-17

发表评论

登录后才能评论

评论列表(0条)

保存