发现是偶然事件,正确的做法可能要修改bluez里面服务的注册方式,把ble的服务发现注册到sdp。具体做法不清楚。但是肯定要修改源码。

工欲善其事,必先利其器

使用未知的工具,现在一个良好的平台上走通了整条道路.

然后建设新的道路的时候,心如明镜... ...

未来不再迷茫.

废话不多说,首先买一块raspberry Pi.

raspberry Pi.是可以在上面编译程序的东西.

软件十分完善.

以pi而不是以root运行

在家目录运行

sudo bluetoothd -n -d --compat --plugin=time --experimental

在test的目录下.执行

./example-gatt-server

在家目录运行

sudo hciconfig hci0 up

在家目录运行

sudo hciconfig hci0 leadv

测试的androidapp

https://pan.baidu.com/s/1c1ZD80g

解决 Failed to obtain handles for "Service Changed" characteristic

-E 应该能解决问题

https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=f558fca8d64e3795b0654a90d343af1dd1d8b33c

可能有帮助

https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/1490349

https://bbs.archlinux.org/viewtopic.php?id=195886&p=2

sudo bluetoothd -E -d --noplugin=sap,network --experimental --compat -n

sudo bluetoothd -E -d --noplugin=sap --experimental --compat -n

抱歉有问题... ...

12-12更新

问题初步解决.

是手机的问题.或者说是android手机的问题.

用同事的iPhone手机测试没有问题.python 调用的GATT服务都出来了.

测试过程. rpi3b 通过 bluetoothctl 连接 OPENWRT 的bluetooth ble服务

首先在 openwrt 上

第一步:bluetoothd -n -d --compat --experimental -------- -n -d 好像是和调试信息相关的参数. --compat 适合 sdptool 相关的参数 否则会报一个错误. --experimental 是 bluez 的ble相关一定要加入的参数.而且在编译

bluez的时候参数也要参考README写下 experimental 的相关参数.

第二步:bluetoothctl

2.1步:power on

2.2步:agent on

2.3步:default-agent

2.4步:list ----------显示自己的系统下挂在的设备.

2.5步:advertise on -------启用ble 模式猜想

2.6步:``

第三步: 进入bluez目录test目录python example-gatt-server

rpi3B步骤

第一步: bluetoothctl

1.1步: connect EC:3D:FD:3E:30:91

1.2步:list-attributes ------ 显示所有的GATT服务.

1.3步:select-attribute 0000180f-0000-1000-8000-00805f9b34fb

1.4步:select-attribute /org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service0022/char0023

1.5步:read

初步完结撒花... ...

一般问题解析

Failed to connect: org.bluez.Error.InProgress

这个问题,应该是作为连接机器,因为运行着程序关闭这个程序就可以了.

rpi3b显示的所有的服务信息

[NEW] Primary Service
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service0006
00001801-0000-1000-8000-00805f9b34fb
Generic Attribute Profile
[NEW] Characteristic
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service0006/char0007
00002a05-0000-1000-8000-00805f9b34fb
Service Changed
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service0006/char0007/desc0009
00002902-0000-1000-8000-00805f9b34fb
Client Characteristic Configuration
[NEW] Primary Service
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a
12345678-1234-5678-1234-56789abcdef0
Vendor specific
[NEW] Characteristic
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char000b
12345678-1234-5678-1234-56789abcdef5
Vendor specific
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char000b/desc000d
00002900-0000-1000-8000-00805f9b34fb
Characteristic Extended Properties
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char000b/desc000e
00002901-0000-1000-8000-00805f9b34fb
Characteristic User Description
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char000b/desc000f
12345678-1234-5678-1234-56789abcdef6
Vendor specific
[NEW] Characteristic
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char0010
12345678-1234-5678-1234-56789abcdef3
Vendor specific
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char0010/desc0012
00002900-0000-1000-8000-00805f9b34fb
Characteristic Extended Properties
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char0010/desc0013
12345678-1234-5678-1234-56789abcdef4
Vendor specific
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char0010/desc0014
00002901-0000-1000-8000-00805f9b34fb
Characteristic User Description
[NEW] Characteristic
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char0015
12345678-1234-5678-1234-56789abcdef1
Vendor specific
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char0015/desc0017
00002900-0000-1000-8000-00805f9b34fb
Characteristic Extended Properties
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char0015/desc0018
00002901-0000-1000-8000-00805f9b34fb
Characteristic User Description
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service000a/char0015/desc0019
12345678-1234-5678-1234-56789abcdef2
Vendor specific
[NEW] Primary Service
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service001a
0000180d-0000-1000-8000-00805f9b34fb
Heart Rate
[NEW] Characteristic
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service001a/char001b
00002a38-0000-1000-8000-00805f9b34fb
Body Sensor Location
[NEW] Characteristic
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service001a/char001d
00002a37-0000-1000-8000-00805f9b34fb
Heart Rate Measurement
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service001a/char001d/desc001f
00002902-0000-1000-8000-00805f9b34fb
Client Characteristic Configuration
[NEW] Characteristic
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service001a/char0020
00002a39-0000-1000-8000-00805f9b34fb
Heart Rate Control Point
[NEW] Primary Service
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service0022
0000180f-0000-1000-8000-00805f9b34fb
Battery Service
[NEW] Characteristic
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service0022/char0023
00002a19-0000-1000-8000-00805f9b34fb
Battery Level
[NEW] Descriptor
/org/bluez/hci0/dev_EC_3D_FD_3E_30_91/service0022/char0023/desc0025
00002902-0000-1000-8000-00805f9b34fb
Client Characteristic Configuration

ble python 成功的例子 创建GATT服务 BLUEZ 5.47的更多相关文章

  1. 使用Topshelf创建Windows服务

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  2. 使用BPEL创建Web服务组合

    http://www.cnblogs.com/ahhuiyang/archive/2012/12/18/2824131.html 为简单起见,本例的Web服务组合只调用一个Web Service AP ...

  3. C#创建Windows服务入门图解(VS2010)

    C#创建Windows服务入门图解(VS2010) Windows服务大家都知道,比如Audio.Theme都是大家比较熟悉的服务,他们可以设为自动启动的,并且在注册表的开机自启动项里是没有痕迹的.所 ...

  4. Topshelf创建Windows服务

    使用Topshelf创建Windows服务 概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps ...

  5. 创建ssh 服务的镜像

    $ sudo docker run -ti ubuntu:14.04 /bin/bash #首先,使用我们最熟悉的 「-ti」参数来创建一个容器. root@fc1936ea8ceb:/# sshd ...

  6. 【第三方插件】使用Topshelf创建Windows服务

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  7. 使用Topshelf创建Windows服务[转载]

    概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的 ...

  8. python thrift 实现 单端口多服务的过程

    Thrift 是一种接口描述语言和二进制通信协议.以前也没接触过,最近有个项目需要建立自动化测试,这个项目之间的微服务都是通过 Thrift 进行通信的,然后写自动化脚本之前研究了一下. 需要定义一个 ...

  9. 用C#创建Windows服务(Windows Services)

    用C#创建Windows服务(Windows Services) 学习:  第一步:创建服务框架 创建一个新的 Windows 服务项目,可以从Visual C# 工程中选取 Windows 服务(W ...

  10. Dubbo_创建Dubbo服务并在ZooKeeper注册,然后通过Jar包执行

    一.安装ZooKeeper(略) 二.创建Dubbo服务  1.DemoService 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

随机推荐

  1. 🎀Java线程池创建

    简介 Java 手动创建线程池 代码 package com.zk.app.utils; import com.google.common.util.concurrent.ThreadFactoryB ...

  2. Java 中的 CMS 和 G1 垃圾收集器如何维持并发的正确性?

    Java 中的 CMS 和 G1 垃圾收集器如何维持并发的正确性? CMS(Concurrent Mark-Sweep)和 G1(Garbage-First)垃圾收集器是两种低延迟的垃圾回收器,它们通 ...

  3. 你了解 Java 的逃逸分析吗?

    Java 的逃逸分析 1. 定义 逃逸分析(Escape Analysis)是 JVM 的一种优化技术,用于分析对象的作用域,从而决定对象的分配方式或优化手段. 主要目的是判断一个对象是否会逃离当前方 ...

  4. Python3 queue

    1.创建一个容器 2.把1-10放入容器 3.输出的时候先判断容器是否为空 4.依次从容器中取出 用法: Queue.qsize() 返回队列的大小 Queue.empty() 如果队列为空,返回Tr ...

  5. 揭秘AI自动化框架Browser-use(四):Browser-use记忆模块技术解析

    一.从一次失败的景点采集说起 在 AI 自动化任务中,记忆模块是实现复杂任务处理的关键组件.Browser-use 项目通过引入记忆模块,解决了 LLM 在连续性任务中的无状态性问题,使代理能够维持上 ...

  6. toRefs 与 toRef 的详解

    一.引言在 Vue 3 的响应式系统里,toRefs 和 toRef 是两个实用的工具函数,它们在处理响应式数据时发挥着重要作用.合理运用这两个函数,可以让我们在操作响应式对象和数组时更加灵活,避免一 ...

  7. Vue 3 双向绑定 API defineModel 解析

    defineModel defineModel是 Vue 3.4 正式加入的 API 了.它可以简化组件间双向绑定的操作,在自定义表单类组件中非常有用. 以前的自定义双向绑定 defineModel可 ...

  8. 使用TVMC进行模型的编译与优化

    TVMC介绍 TVMC,是TVM的命令行驱动程序,TVMC是一种通过命令行界面公开TVM功能的工具,例如uto-tuning/compiling/profiling和通过命令行接口运行模型 在完成本节 ...

  9. pandas.read_csv() 报错 OSError: Initializing from file failed

    pandas.read_csv() 报错 OSError: Initializing from file failed,一般由两种情况引起:一种是函数参数为路径而非文件名称,另一种是函数参数带有中文. ...

  10. wso2~部署~v4.2.0-alpha本地构建

    让我先查看一下v4.2.0-alpha分支的构建相关信息: Search files... 让我继续查看构建说明文档: Search files... 让我查看一下项目根目录下的文件: Ran too ...