问题标签 [bluegiga]
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.
java - 蓝牙 SPP 神秘 bufferoverflow,Android / BlueGiga WT12,潜在流量控制问题?
情况:
我正在为一些具有 BlueGiga WT12 蓝牙调制解调器的硬件开发一个 android 应用程序。硬件设备以大约 240hz 的频率发送 56 字节的数据包。我正在三星 S5 和 S8 上进行测试。已经为 IOS 和 PC 创建了一个功能齐全的应用程序,因此我们知道硬件设备可以正常工作。
我使用一个单独的线程来读取数据,然后将其分派到主线程。
问题:
我遇到的问题是当我向设备发送命令告诉它开始流式传输时,它开始流式传输,但在我开始以非常慢的 10-60hz 速率接收数据包后不久。
经过一番检查,我意识到设备正在经历缓冲区溢出。
在与我们的硬件人员交谈后,他说唯一可能导致这种情况的原因是手机端的读取速度不够快,导致硬件设备不想发送更多数据包,因为它认为手机不能再接收了硬件设备上的缓冲区溢出。
WT12 启用了流控制,因此这可能是 Android 未向 WT12 发出明确发送信号的问题。但据我所知,我们无法访问所有流控制的东西。
我试过的:
我的第一行攻击是简单地删除任何我认为会减慢读取速度但似乎没有效果的代码。
我还尝试了几乎所有可以使用的蓝牙串行终端应用程序,结果都一样。
因此,我质疑这是否是与硬件设备有关的一些奇怪问题,但是在使用基于 pc 的(蓝牙)串行终端之后,我在 pc 上完全没有问题。
硬件设备也可以通过 USB 而不是蓝牙运行,所以我尝试从它读取数据,与使用蓝牙连接但通过 USB 完全相同。使用 USB 串行连接我完全没有问题。
我的想法:
所以这让我相信问题一定出在手机端的蓝牙调制解调器上。我在想这可能是一个流量控制问题,因为我们在 WT12 上启用了流量控制。也许android没有发送明确的接收信号?
问题是据我所知,流量控制是在蓝牙堆栈中实现的,如果我没记错的话,我们作为开发人员无法控制它?
除了流量控制之外,我真的不知道是什么导致硬件设备不想向我发送数据。
bluetooth - 用 BLED112 制作 HID 键盘
我使用 BLED112 并想让它像 HID 键盘一样工作。
BLED112 从手机接收击键。例如,“p”。然后加密狗就像一个键盘,所以我们可以看到“p”写在PC的记事本上。
将数据从移动设备发送到加密狗并不重要。我已经完成了。
我的问题是将击键事件发送到 PC,以便加密狗像键盘一样工作。
我想要一个例子或完整的指南。
谢谢。
c# - 从 C# 写入的 BGScript GATT 特征不起作用
在我的设备配置 gatt.xml 中,我添加了一个带有自定义 UUID 的自定义 GATT 特征并启用了读写属性。配对后使用 Windows 蓝牙 API,当我尝试从 GATT 特征读取时,它工作正常,但写入 GATT 特征不起作用。我一直被拒绝访问,但有一个例外。下面我添加了示例 gatt.xml、bgs 和 C# 代码。我正在使用 Bluegiga v1.3.1_API。当前设置适用于 USB 加密狗,但我正在尝试用 Windows 蓝牙 API 替换它。
gatt.xml
来自 bgs 脚本的 attributes_value 事件
C# 代码