是否可以通过编程方式使蓝牙远程快门保持唤醒状态?
Is it possible to keep a bluetooth remote shutter awake programmatically?
我有一个蓝牙遥控快门与我的 Android phone 配对。遥控快门就像一个蓝牙键盘。
我的应用程序愉快地处理了远程快门创建的键盘事件,但是远程快门在 90 秒后进入休眠状态,并且在发送下一次按键之前需要一次按键将其唤醒。
我需要一种机制来保持远程快门处于唤醒状态,这样我就不会丢失第一次按键操作。 (是的,我知道睡眠模式是为了节约能源,但我需要低延迟)。
我已经尝试连接到设备作为客户端和服务器,希望我可以将 OutputStream 上的内容发送到设备。但是我无法创建连接。
有没有办法以编程方式保持远程快门处于唤醒状态?
根据以下回答我怀疑不是
为了完整起见,配对设备的详细信息是:
- name=AB 快门3
- MAC=Some_MAC_ADDRESS
- btClass=2540
- btType=1
- UUIDs=[00001124-0000-1000-8000-00805f9b34fb,
00000000-0000-1000-8000-00805f9b34fb]
似乎它完全取决于远程快门固件:如果它在最后一次按键后 90 秒后进入睡眠状态 - 无法以编程方式唤醒它(除非更改其固件)。最简单的解决方案是使用不带睡眠模式的遥控快门(或 DIY bt/ble 按钮)。无论如何,您可以使用由快门电池供电并与其中一个快门按钮并联的外部电路(例如基于 555 定时器的电路),它每 90.1 秒产生一次脉冲来模拟第一次按键和唤醒快门。
是的,只要接受输入信号,就可以保持连接的另一端处于唤醒状态。
正如你所说,
I have tried connecting to the device as both client and server, with the hope that I could send something on the OutputStream to the device. But I wasn't able to create a connection.
这是让蓝牙设备保持唤醒的最佳方式。 This 是我用来以编程方式向 Nexus Player 的遥控器发送信号的设备 [Linux 平台]。最初,我在 Linux 终端上使用 HIDD 和 RFCOMM 命令,然后开始在 C 中实现连接。
其他方法是根据您的要求修改设备的固件(如果可能)。
例外情况:如果 BT 设备的固件设计为只有按下按钮才能使其保持唤醒状态,并且没有其他输入信号可以重置其定时器或计数器,则无法进行任何操作该设备的外部世界。阅读 Here 暗示 AB Shutter 是其中之一(虽然仍然不确定)。
没有程序化的方法来完成这项工作,但您有 3 种可能的解决方案来解决您的问题:
- 获得不休眠的快门
- 使用 Arduino 或 Raspberry Pi
制作您自己的快门
- 通过添加额外的电路修改 AB 快门,使您的设备每次关闭时都能启动。为此,您可以利用这些链接来了解有关电路的更多信息以及如何修改它:http://www.the-bridge.cc/ct137s15/?p=2647 and https://shkspr.mobi/blog/2016/02/cheap-bluetooth-buttons-and-linux/
我有一个蓝牙遥控快门与我的 Android phone 配对。遥控快门就像一个蓝牙键盘。
我的应用程序愉快地处理了远程快门创建的键盘事件,但是远程快门在 90 秒后进入休眠状态,并且在发送下一次按键之前需要一次按键将其唤醒。
我需要一种机制来保持远程快门处于唤醒状态,这样我就不会丢失第一次按键操作。 (是的,我知道睡眠模式是为了节约能源,但我需要低延迟)。
我已经尝试连接到设备作为客户端和服务器,希望我可以将 OutputStream 上的内容发送到设备。但是我无法创建连接。
有没有办法以编程方式保持远程快门处于唤醒状态?
根据以下回答我怀疑不是
为了完整起见,配对设备的详细信息是:
- name=AB 快门3
- MAC=Some_MAC_ADDRESS
- btClass=2540
- btType=1
- UUIDs=[00001124-0000-1000-8000-00805f9b34fb, 00000000-0000-1000-8000-00805f9b34fb]
似乎它完全取决于远程快门固件:如果它在最后一次按键后 90 秒后进入睡眠状态 - 无法以编程方式唤醒它(除非更改其固件)。最简单的解决方案是使用不带睡眠模式的遥控快门(或 DIY bt/ble 按钮)。无论如何,您可以使用由快门电池供电并与其中一个快门按钮并联的外部电路(例如基于 555 定时器的电路),它每 90.1 秒产生一次脉冲来模拟第一次按键和唤醒快门。
是的,只要接受输入信号,就可以保持连接的另一端处于唤醒状态。
正如你所说,
I have tried connecting to the device as both client and server, with the hope that I could send something on the OutputStream to the device. But I wasn't able to create a connection.
这是让蓝牙设备保持唤醒的最佳方式。 This 是我用来以编程方式向 Nexus Player 的遥控器发送信号的设备 [Linux 平台]。最初,我在 Linux 终端上使用 HIDD 和 RFCOMM 命令,然后开始在 C 中实现连接。
其他方法是根据您的要求修改设备的固件(如果可能)。
例外情况:如果 BT 设备的固件设计为只有按下按钮才能使其保持唤醒状态,并且没有其他输入信号可以重置其定时器或计数器,则无法进行任何操作该设备的外部世界。阅读 Here 暗示 AB Shutter 是其中之一(虽然仍然不确定)。
没有程序化的方法来完成这项工作,但您有 3 种可能的解决方案来解决您的问题:
- 获得不休眠的快门
- 使用 Arduino 或 Raspberry Pi 制作您自己的快门
- 通过添加额外的电路修改 AB 快门,使您的设备每次关闭时都能启动。为此,您可以利用这些链接来了解有关电路的更多信息以及如何修改它:http://www.the-bridge.cc/ct137s15/?p=2647 and https://shkspr.mobi/blog/2016/02/cheap-bluetooth-buttons-and-linux/