问题标签 [gattlib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 无法安装`gattlib`
我正在尝试gattlib
在 Python 中安装以使用它的一些蓝牙工具。
操作系统是 ubuntu 18.04.4 LTS。
我现在已经尝试了以下方法(例如这里):
这给出了(我的 Python 是 3.6.9):
另外,我试过:
这使:
尽管 libboost-python 和 libboost-thread 在第一次尝试中成功安装(见上文),并python3
返回Python 3.6.9
.
显示:
这与我得到的结果完全相同(按照这个问题的说明):
我知道在运行它之前对安装文件进行必要的调整,因为如果我理解正确,python 版本在其中被错误地硬编码。
我尝试过的其他事情并没有帮助:
c - 如何为 kotlin native 创建 void* 指针
我正在尝试使用本机库将现有的 c 代码转换为 kotlin。到目前为止,我成功地开始了,但被用于访问结构或对象的指针所困扰。像这样在c中:
但是如何将这些指针保存在 kotlin 中?像这样的尝试:
结果是
我读过: kotlin inerop
任何提示表示赞赏。
gatt - 您可以使用 GATT 配置服务来配置 Kontakt BeaconPro Eddystone-UID 值吗?
是否可以编写一个 linux 应用程序来更新配置为广播 Eddystone-UID 数据包的 Kontakt BeaconPro 上的命名空间和实例 ID?我使用 Gattlib 扫描 Eddystone 设备并发现它们的服务,但似乎不存在配置服务(服务 UUID a3c87500-8ed3-4bdf-8a39-a01bebede295)每个https://github.com/google/ eddystone/tree/master/配置服务。
您可以在 Kontakt Android 应用程序中配置这些值,但我猜他们正在使用自定义服务进行配置?有人在这里有经验吗?
bluetooth - Ble 外围断开处理程序在 gattlib c 库中不起作用
我尝试了不同的更改,但我不知道为什么当 BLE 外围设备断开连接时,中央没有得到确认或处理程序没有调用。
我修改了 gattlib 发现示例以断开处理程序。我的代码
在 100 秒睡眠部分,我正在断开外围设备但我没有收到 disconnectionHandler 调用。我是否在 gettlib 库中犯了任何基本错误或任何错误?我用 btmon 日志检查断开连接打印即将到来,但它对 gattlib 库或我的应用程序并不丰富。
btmod 日志:
我正在使用 2020 年 7 月 21 日表示 gattlib 库的最新提交。
bluetooth-lowenergy - 使用 Gattlib 包写入而不响应 BLE 设备-RN4871
我正在尝试通过 RN4871 BLE 从微芯片(http://ww1.microchip.com/downloads/en/DeviceDoc/50002466B.pdf)控制 LED,并且我想提供简短的脉冲(低于 10 毫秒)。
为此,我从https://github.com/labapart/gattlib为 C 安装了 gattlib 包
首先,在我的 RN4871 方面,我使用 Write 属性定义了一个特征(使用从客户端到服务器的确认写入特征值)并使用库中的 read_write.c 示例工作得很好。
但是,由于我想进行快速通信以提供 LED 的短脉冲,因此我必须使用无响应功能的写入。在我的 BLE 设备端,我只创建了一个具有“无响应写入”属性的特征,并将数字输出与 UUID 句柄相关联。
对于脚本:
现在,当我使用库中的示例(nordic_UART)进行无响应写入时,它会失败。我删除了 notify 和 rx 的部分。我只使用 tx uuid。
我的问题更多的是基本层面,我是否遵循正确的方向来配置我的 BLE 设备以进行无响应写入?我应该添加其他特征(如通知)吗?或者问题是我如何管理 gattlib 包示例?
bluetooth - 如何为 GATT 服务应用经过身份验证的加密
我正在使用 Bluez5.60 库在 Raspberry Pi 3B+ 板上工作。
我使用O'Reilly:GATT(服务和特性)和蓝牙低功耗 GATT 安全级别作为设计 GATT 服务 UUID 的参考。
我的 GATT 服务 UUID 字符串如下。“00001111-0000-1000-8000-00805f9b34fb”
请你帮我知道,
如何在 UUID 字符串中设置句柄值 (0x030D) 来为我的 GATT 服务启用经过身份验证的加密?
bluetooth-lowenergy - C中的轻量级蓝牙LE库
我一直在寻找一个简单的 C 语言蓝牙 LE 库,它允许我扫描 BLE 设备,连接并接收来自 BLE 设备的给定服务 UUID 的定期通知。直接与蓝牙套接字和 libbluetooth(从 BlueZ 创建)一起使用而不使用 DBUS 的东西。不需要配对和安全功能。
遇到了https://github.com/labapart/gattlib。看起来不错,但使用 dbus API 并且依赖于 libdbus、glib 等。要使用这个库,需要额外的 5MB 库,因此决定不使用 dbus。我们的设备上没有空间来支持压缩 rootfs 映像上的 5MB 蓝牙堆栈。我们的 rootfs 映像的总大小为 9 MB。带有 dbus 的蓝牙堆栈本身似乎是我们 rootfs 大小的 50% 以上。
还有 - https://github.com/edrosten/libblepp是 c++ 并且不使用 dbus。这将需要编写用于 C 程序的 C 包装器以及 C++ 构造的开销,例如编译器生成的复制构造函数、赋值运算符等。还有交叉编译的问题。
目标板是运行 Linux 的 Xilinx Zynq,构建系统是 buildroot。
请建议。
谢谢
bluetooth - 蓝牙守护进程的初始化序列
我正在寻找来自 Bluez 的轻量级蓝牙工具,而不依赖于 bluetoothd 和 dbus。BlueZ的文件夹“ src/shared ”有这些工具的代码。例如:btgattclient.c 在编译时产生“gattclient”。gattclient 能够连接到 ble 外围设备并读取/写入或接收来自 ble 设备的通知,但它需要初始化 hci0 接口,这是蓝牙正在做的事情。
在运行 bluetoothd 执行初始化之后,如果我杀死了 bluetoothd,gattclient 仍然可以正常工作,连接到 ble 设备并接收通知。似乎 bluetoothd 正在适配器上进行一些设置或初始化,以使“socket connect()”成功,而无需运行 bluetoothd 进行初始化,gattclient 为“connect()”套接字调用返回“连接被拒绝”。btmon 日志显示“connect()”在主机本身失败,没有到目标 BD 地址的连接请求。
如果这里的 BLE 专家可以指出蓝牙的初始化序列/命令,这将很有帮助,这样我就可以手动(使用 btmgmt)或以编程方式实现它,以促进 gattclient 的成功工作。
以下是蓝牙启动时的 btmon 日志 -
请指教。
谢谢
c - 带有 Gattlib C 库高延迟的 RN4871
我正在使用带有最新固件的 RN4871 通过 I2C LED 驱动器打开多个 LED。我使用 gattlib C/C++ 库通过我的 Ubuntu (20.04) 系统与 RN4871 通信(“无响应写入”),并通过连接到我的计算机和 RN4871 的示波器测量通信延迟。我将蓝牙设备上的通信参数设置为 7.5 ms 间隔,零延迟。
问题是如果我以 500 毫秒的间隔从计算机发送命令,我的通信延迟低于 20 毫秒,这对于我的应用程序来说是完美的。但是,如果我的命令相隔 1 秒或更长时间,则延迟会上升到 250 毫秒!在我的应用程序中,我需要以最小延迟(低于 40 毫秒)进行极快的通信,当然我的命令是以可变的间隔发送的(甚至可以相隔 10 秒)。我不知道这个问题来自哪里?它是否与 RN4871 中的某些睡眠过程有关,当超过 500 毫秒或其他时间没有数据传输时发生?
谢谢!