如何使用Meteor和Cordova BLE插件连接到BLE设备

猿人

我试图用流星这个科尔多瓦插件- https://github.com/don/cordova-plugin-ble-central -使用添加到我的项目meteor add cordova,以便连接到蓝牙LE设备(TI Sensortag)。我首先要做的就是单击链接时,连接到设备并显示一条消息。

我的events模板javascript部分中包含以下代码

Template.measure.events({'click [data-action=scan-connect-stream]':
  function(event, template) {
    event.preventDefault();
    if (Meteor.isCordova) {
      Meteor.startup(function () {
          ble.connect('24:09:00:DE:00:42', 
                function(){
                    alert('Connect success');
                    return;
                }, 
                function(){
                    alert('Connect failed');
                    return;
                });
            });
        }
    }
});

我的问题是,有时代码可以正常工作,但我会收到“连接成功”警报,但更多的情况是它未能连接并显示“连接失败”警报。return成功和失败回调中添加语句之前,它根本不起作用。

我正在android设备(meteor run android-device --verbose上对此进行调试,可以看到adb logcatCordova插件中的BLE Con​​nect事件正在触发,但随后未连接。我在两部不同的手机上调试时遇到相同的问题,并且使用的不是TI Sensortag的BLE设备时,所以我猜测这是插件与Meteor交互方式的问题(也许Meteor等待的时间不够长)成功回调?)。

有谁成功与Meteor一起使用了此插件,或者有人可以提供有关我做错了什么的任何线索吗?我应该尝试将其包装在Meteor包中,还是有什么方法可以让插件有更多时间在成功或失败回调触发之前做出响应?任何帮助将非常感激!

猿人

对于遇到类似问题的任何人,这对我来说都是如此。我将ble.connect调用放入ble.scan函数的成功回调中不知道为什么,但先扫描几秒钟即可完成工作。

  Template.measure.events({
    'click [data-action=scan-connect-stream]': function(event, template) {
      event.preventDefault();
      if (Meteor.isCordova) {
        Meteor.startup(function () {
          device_id = '24:09:00:DE:00:42';
          ble.scan([], 5,
              function(peripherals){
                connectDevice(device_id);
              },
              function(){
                 alert('No devices found');
              }
            );
        });
      }
    }
  });


  var connectDevice = function (device_id) {
        ble.connect(device_id,
                        function(){
                          alert('Device ' + device_id + ' connnected');
                          },
                        function(){
                          alert('Couldn\'t connect to device ' + device_id);
                          });
  }

如果有人能解释为什么ble.connect无法独立运行的话,那就太好了!

编辑:查看Android代码,看来插件的设计方式ble.scan必须在调用之前调用ble.connectble.scan原因一个LinkedHashMap在Android的代码与任何发现的设备来填充。只有在列出设备后,LinkedHashMap您才能使用进行连接ble.connect

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Meteor和Cordova BLE插件连接到BLE设备

来自分类Dev

iOS-将BLE设备连接到应用和iOS

来自分类Dev

连接到BLE设备后如何获取电池电量?

来自分类Dev

iOS如何在后台重新连接到BLE设备?

来自分类Dev

如何在不从BLE中心设备连接到BLE外围设备的情况下连续获取RSSI?

来自分类Dev

我应该如何将多个BLE外设连接到iOS设备?

来自分类Dev

如何使用标识符连接外设/BLE设备?

来自分类Dev

设备断开连接后如何取消BLE任务?

来自分类Dev

Android BLE:如何检查绑定的BLE设备是否可用于连接

来自分类Dev

BLE外围设备和BLE中心

来自分类Dev

使用 ionic v2 和 BLE Central 插件处理设备数据

来自分类Dev

Android BLE按名称连接到设备

来自分类Dev

Android BLE按名称连接到设备

来自分类Dev

我可以使用网络蓝牙连接具有常规BT(不是BLE)的设备吗?

来自分类Dev

CoreBluetooth和BluetoothManager,设备不是BLE

来自分类Dev

逆向工程BLE设备-校验和?

来自分类Dev

如何查看外围设备的BLE服务?

来自分类Dev

如何在后台扫描 BLE 设备?

来自分类Dev

iOS在didSelectRowAtIndexPath连接到BLE设备EXC_BREAKPOINT

来自分类Dev

拔出电池后重新连接到BLE设备

来自分类Dev

发现后Windows UWP连接到BLE设备

来自分类Dev

在Windows 10上连接到BLE外围设备

来自分类Dev

连接到ble设备时是否可以启动服务/活动?

来自分类Dev

将BLE设备连接到Android发送数据(nUART)

来自分类Dev

仅在Asus标签中无法发现并连接到ble设备

来自分类Dev

核心蓝牙框架不扫描所有BLE设备和Apple BLE设备

来自分类Dev

如何管理我的Ble连接?

来自分类Dev

如何返回 BLE 外设的连接状态

来自分类Dev

使用BlueZ同时建立多个BLE连接

Related 相关文章

热门标签

归档