问题标签 [l2cap]

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.

0 投票
1 回答
1642 浏览

sockets - 取消 L2CAP 套接字上的重新传输

我想知道是否有人可以帮助我解决我在 C 蓝牙编程(Linux Bluez)方面遇到的问题。我正在使用 Ubuntu 10.04、BlueZ 4.60。我的目标是拥有一个 L2CAP 套接字,在该套接字中,两台计算机之间发送数据的延迟最小。到目前为止,我设法打开了一个 L2CAP 套接字,但是这个套接字有无休止的重传,我正在尝试改变它。我希望根本没有重传,因为我需要以最小的延迟快速传输数据,并且数据的可靠性并不重要。

我在网上找到了一个示例,该示例处理更改套接字的刷新超时,并由此导致如果数据包在一段时间后未得到确认,则将其丢弃并发送缓冲区中的下一个数据。问题是这个例子不起作用:-(

这是我的代码,这个方法是在绑定命令之后调用的:

int set_flush_timeout(bdaddr_t *ba, int timeout) { int err = 0, dd, dev_id; struct hci_conn_info_req *cr = 0; struct hci_request rq = { 0 };

我的错误是什么?有谁知道可以解决我的问题的另一种选择。代码示例也很棒!!

谢谢!!

0 投票
1 回答
1635 浏览

android - Android 蓝牙 l2cap 套接字绑定()

安卓版本:2.3.7

内核版本:2.6.35-14-CyanogenMod-Arco-Kalim arco@tuxbox #1

Mod版本:CyanogenMod-7.1.0.1-click

该设备已完全植根。

我在我的项目中添加了一段代码

取自 hidd.c 中的 Bluez Utils。

代码如下:

bind()不断返回-1

DisablePlugins = input我在我的 Android 设备的蓝牙配置中添加了一行( )

/system/etc/bluetooth/main.conf

我掌握的信息是: sk:37

(struct sockaddr *) &addr=0x44597e90

sizeof(addr)=12

errno:13

原因:权限被拒绝。

任何人都可以帮忙吗?如果您需要更详细地了解,请随时告诉我。

0 投票
1 回答
1515 浏览

android - 如何进行从台式电脑到安卓设备的蓝牙连接测试

我正在使用带有蓝牙加密狗的 Ubuntu 11.10 台式电脑和使用带有蓝牙的 Android 2.2 的 Android 平板电脑。(两台设备的蓝牙都应该是2.0或2.1版本)

我已经检查过台式电脑和 Android 平板电脑都使用 Bluez Stack。我能够配对 2 台设备,并且可以使用以下命令从我的桌面 ping(使用 l2cap 协议)Android 平板电脑:

但是,当我尝试使用以下命令通过 rfcomm 将桌面连接到 Android 平板电脑时,出现错误:

我认为台式电脑上的蓝牙应该同时支持 l2cap 和 rfcomm,而安卓平板电脑上的蓝牙应该至少支持 l2cap。

我想知道l2ping命令运行成功是否说明台式机和安卓平板通过蓝牙有效通信?如何建立连接(使用 l2cap 或 rfcomm)来测试两个设备之间的蓝牙通信?

0 投票
1 回答
1350 浏览

java-me - 使用蓝牙 L2Cap 连接到 HID 设备

是否有任何解决方法可以在 JAVA ME 中使用 L2CAP 连接到 HID 设备(使用移动设备原生的 JSR-82 规范实现而不是 BlueCove 等)?

我知道 HID 设备通常使用值为 0x0011 的 PSM(协议服务多路复用器)。不幸的是,我发现:

合法的 PSM 值在 (0x1001..0xFFFF) 范围内,最低有效字节必须是奇数,所有其他字节必须是偶数。

上面解释了为什么javax.microedition.io.Connector connect()当我尝试以下代码时方法会抛出异常:

0 投票
0 回答
3197 浏览

windows - 来自 Windows 的蓝牙 AVRCP 控制

我正在尝试在我的 Android 手机和我的车载 PC 之间实现 AVRCP/A2DP 连接。A2DP 位基本上是开箱即用的,所以没有问题。我希望 PC 成为 AVRCP CT(控制器)和 A2DP 接收器。电话是 AVRCP TG(目标)和 A2DP 源。

我遇到问题的地方是我可以使用任何类型的 AVRCP 连接。Windows 7 带有一个工具栏应用程序,它至少提供了基本的播放/暂停/跳过/停止类型的功能。因此,它绝对可以与我拥有的软件一起使用,而无需任何额外的驱动程序或其他方式。然而,我的搜索在任何方式上都没有产生什么结果,或者关于创建我认为我需要的 L2CAP 连接的文档。

除非您使用 Broadcom/Widcomm 堆栈,否则 32feet.NET 库不支持 L2CAP 连接。购买新的 BT USB 设备可能是一个可行的解决方案,但目前我正试图通过软件来完成这一切:)。即像这样,尽管有一个问题没有解决(或报告为已解决)链接:如何使用 Widcomm SDK 上的 L2CAP 建立从 Windows 7(控制器)到电话(目标)的 AVRCP 连接?

如果可能的话,我更喜欢使用 C#,但如果我有某种库来与我的代码交互,那会很好(比如 32feet.NET 库,它在它所做的事情上运行得很好。)

这是我最接近的,但对我来说有点希腊语,不足以让我开始(我是一个嵌入式的人):http: //msdn.microsoft.com/en-us/library/ windows/硬件/ff536674(v=vs.85).aspx

蓝牙在 Windows 上真的是一团糟,似乎来自我的搜索吗?有多个不同的堆栈,在 API 等方面似乎都有很大的不同。

谁能指出我正确的方向?我在这里和其他地方做了很多搜索/阅读其他帖子,但并没有真正取得任何进展。

谢谢

基督教

0 投票
1 回答
12345 浏览

android - 使用 L2CAP 连接到蓝牙 HID 设备(鼠标)

我正在寻找一种使用 L2CAP 连接到 HID 设备(鼠标)的方法,这适用于 android 应用程序。但是在接受连接时出现错误。我正在使用反射来创建套接字。但有些事情是错误的。有人可以指导我使用这种方式使用 L2CAP 连接到 HID 设备但没有生根的 android 示例代码。

0 投票
0 回答
546 浏览

android - Android蓝牙l2cap connectNative java.io.IOException:无效参数

我正在为 Android 编写一个蓝牙应用程序。我通过反射使用 android l2cap api。但是我在某些设备上收到了错误报告(它在其他一些设备上正常工作)。

那么有什么问题呢?

0 投票
0 回答
508 浏览

bluetooth - 在 BlueZ 中设置 L2CAP 流模式

我需要在启用流模式的 BlueZ 上创建一个简单的 L2CAP 连接。有谁知道我如何切换模式?目前,连接已启用重传,我需要取消所有重传。

0 投票
2 回答
3388 浏览

bluetooth - L2CAP connection over an HCI socket?

The usual way to access L2CAP is to create an L2CAP socket and simply call connect() on it to connect to the bluetooth device you want to access. This usually works completely fine. However, I'm trying to do this on an ARM device with Linux kernel 3.0 and there appears to be a nasty bug where you can't have multiple L2CAP connections without all of the data coming down which ever channel was created last. (ie if I connect to 2 bluetooth sensors with 2 l2cap sockets, all the notifications for both devices come through the socket open last and nothing comes on the socket open first.) However, if I set the filters right on the HCI socket I can see that the ACL data is coming through with the proper connection handles so I could get the data properly over there.

So... I'd like to change my code to utilize just the HCI socket.

My problem is, I'm not sure how (or even if it's possible). There's a "create logical link command" in HCI that seems like it would create an L2CAP connection, but the arguments make no sense to me. After I make an HCI connection over LE I get back a "connection complete event" that gives me a 2 octet "Connection_Handle". The "create logical link command" takes a 1 octet "Physical_Link_Handle" though.

0 投票
1 回答
21332 浏览

bluetooth - 蓝牙协议(RFCOMM、L2CAP 和 ACL)

根据我从 Bluetooth Essentials for Programmers 中读到的内容,这本书提到了一些我不太了解的点。

RFCOMM 是一种可靠的基于流的协议。L2CAP 是一种基于数据包的协议,可以配置不同级别的可靠性。

L2CAP 实际上充当 RFCOMM 的传输协议,因此每个 RFCOMM 连接实际上都封装在一个 L2CAP 连接中。

这真的让我很困惑,因为这两种协议是不同类型的协议(一种是基于流的,另一种是基于数据包的)。所以根据它的解释,我在下面有一些问题。

  1. 既然RFCOMM连接被封装了,那么串口配置文件(SPP)如何使用RFCOMM连接呢?它也应该使用 L2CAP。

  2. A2DP 使用 L2CAP 连接。这对我来说意味着相同,因为 L2CAP 和 RFCOMM 被封装在 ACL 连接中,这是否意味着 A2DP 使用 ACL 连接?我知道这是不正确的,但如何在这里解释。

感谢您在这里的任何解释。