gpt4 book ai didi

c - 将 Gatttool 命令/请求转换为 Bluez c

转载 作者:行者123 更新时间:2023-11-30 16:58:48 26 4
gpt4 key购买 nike

我很难弄清楚如何将我的蓝牙命令(来自 Gatttool)转换为 Bluez c 代码。

你能帮我将以下 Gatttool 命令(蓝牙请求)翻译成 c 语言吗?

[CON][MY_MAC_ADDRESS][LE]> char-write-req 0x00c0 0100

所以我的句柄是0x00c0,我的数据是0100(打开)。我不知道需要填充哪些 hci_request 结构属性(句柄除外)。

... I've successfully connected to the device (LE connection)
struct hci_request rq = {0};
rq.ogf = ??; // should the handle go here?
rq.ocf = ??; // should the data go here
rq.cparam = ??;
rq.clen = ??;
rq.rparam = ??;
rq.rlen = ??;
rq.event = ??; // what would the event be?

hci_send_req(dd, &rq, 1000);

最佳答案

为什么不使用标准的 bluez gatt 命令,即

void WriteValue(array{byte} value, dict options) 

但要自己组合 HCI 命令吗?

但是,如果您确实想组合 HCI 命令(这意味着您跳过 GATT/ATT/L2CAP 级别),则格式为“HCI ACL 数据包”,在 BlueZ 的 hci.h 中定义为“HCI_ACLDATA_PKT”:句柄:ACL 的连接句柄。Packet_Boundary_Flag:00/01/10 或 11 取决于您的 L2cap 封装类型。Broadcast_Flag:基本上是0x00,即没有广播 Data_Total_Length:包裹的长度。然后包中需要包含 L2CAP PDU 长度和 channel ID(作为 ATT 协议(protocol)应为 0x0004),然后附加 ATT pdu 类型、操作码(写入命令)att 句柄和数据。

关于c - 将 Gatttool 命令/请求转换为 Bluez c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38537867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com