【问题标题】:Bluetooth data to HID for BLED112蓝牙数据到 BLED112 的 HID
【发布时间】:2016-01-12 10:55:04
【问题描述】:

我们购买了 BLED112 来通过 BT 连接我们的目标。 通过 BT 和 USB (HID) 与目标交互的 Android 应用程序。 我们已经使用了一些蓝牙通信来编写程序并将数据发送到加密狗。 现在有人可以在将 BT 数据转换为 HID 信号方面有任何经验。 有人试过吗? 有没有我们需要编写的 BGScript 代码来实现这一点?

如果想法完全错误,请告诉我。

【问题讨论】:

  • 您的意思是您的 BLED112 应该通过 BLE 接口与您的 Android 应用程序对话吗? FWIK,BLED112 是基于 BLE 的 USB 加密狗,而不是模块。
  • “我们已经使用了一些蓝牙通信来编写程序并将数据发送到加密狗”。我不太明白这个。
  • BGScript 脚本(通常)被转储到 BLE 模块中,而不是在 BLED112 中
  • 非常感谢 WedaPashi 的回复。是的,我们正在编写一个可以通过 BLE 接口或 GATT 向 BLED112 发送数据的 Android 应用程序。我的问题是如何将数据(基本上是命令)转换为 HID(关键事件),如果我的理解有误,请纠正我?

标签: bluetooth bluetooth-lowenergy core-bluetooth android-bluetooth


【解决方案1】:

参考上面的评论,

我们正在编写一个 Android 应用程序,它可以通过 BLE 接口或 GATT 向 BLED112 发送数据。我的问题是如何将数据(基本上是命令)转换为 HID(关键事件),如果我的理解有误,请纠正我?

如果我正确理解用例,我认为在开发的初始阶段,您将需要使用 BlueGiga 提供的 BLE-GUI 实用程序。

使用该实用程序,您可以看到 BLED112 加密狗和 BLE112 模块之间的通信。 BLED112应该是模拟android app会做什么?

首先,您需要知道存储在 BLED112 中的 GATT 结构,以便对 BLED112 进行写入或读取。 其次,BLE112 的工作方式是基于事件的实现。阅读BLE112的API参考文档将帮助您了解Android应用程序更新特征值或Android应用程序读取时修改生成的事件生成条件和代码。您会获得连接、断开连接、读取、写入、启用通知、启用指示等事件。

在 BLE112 方面,根据将用于客户端(Android 应用程序)和服务器(BLE112)之间的数据传输的服务以及该服务中的哪些特性,您需要在事件回调处理程序中编写合适的实现。

有一个名为人机接口设备的标准服务,它有一个保留的 UUID:0x1812。

一旦您将 BLE112 配置为 GATT 设备上的 HID,您的 android 应用将看到 UUID 为 0x1812 的服务。解析服务描述符并将特征捆绑到服务中。您可以根据 gatt.xml 中设置的访问参数读取或写入该服务

例如,如果它是键盘,您可以根据按下的键发送键的扫描码(接通和断开)。无论如何,如何获取扫描码超出了这个问题的范围,遗憾的是我曾在 PS2 键盘上工作过,所以我真的不知道如何从 USB 键盘获取扫描码。

因此,您拥有按键的扫描码,并且您知道将其写入的特征。编写它,应用程序应该为该特征启用通知,以便在按下键并将值写入特征时通知它。要让应用程序启用特性的通知或指示,请研究开发人员指南,该指南讨论如何为基于 Bluegiga 的 BLE 设备编写 gatt.xml。我给你一个提示:在 xml 中,在特性配置中你必须写 notify="true"。

关于解析Android中的服务和特性,很遗憾我不是android开发者,而是嵌入式开发者,我知道BLE112模块部分是如何实现的,而我对android如何解析数据一无所知。但是,网上有很多关于它的问题和讨论,你可能比我更了解,因为你有android背景。

【讨论】:

  • ,非常感谢您的详细解释,是的,您完全正确,我急切地等待着明天得到我的BLE112,我已经安装了从Bluegiga下载的BLE1.3.2 SDK,我会检查上面提到的这项服务,并让你知道它是如何进行的......
  • 还有一个关于这个主题的查询,“你需要在事件回调处理程序中编写合适的实现”这是否意味着所有键盘事件都可以映射到我自己的查找表。??您能否在这一点上更具体一点,请“解析服务描述符并将特征捆绑到服务中。您可以根据 gatt.xml 中设置的访问参数读取或写入该服务”,因为我可能需要15-18 按钮在我的 Android 应用程序中作为 HID 事件处理。我在这里遗漏了什么吗?
  • 我们已经将这个 BLED112 固件更新到 1.3.2 版本并连接到我们的目标(Linux 操作系统),令人惊讶的是它没有被检测为 HID 设备,从手册中提到只有它以 CDC 的形式提供,这是否意味着仅 BLED112 不足以完成这项活动?有点困惑
  • 用 HID 固件刷写你的 BLE112 模块,你不应该刷 BLED112(加密狗)。 BLED112 正如预期的那样是 CDC。
  • 这个BLE112不是我们买的,我们买的一个网站错误地提到BLED112支持HID,BLE112看起来像一个芯片,我们是否需要购买整个开发套件,CC调试器...等等刷固件....这实际上并不能解决我们的目的,我们认为 BLED112 会直接提供 HID 事件,BLED112 (串行端口数据到 HID 转换)是否有任何选项可供我们使用?
猜你喜欢
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多