帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:bea  plugin  Cordova  
Cordova/PhoneGap plugin for Eddystone beacons

  • 源代码名称:cordova-eddystone
  • 源代码网址:http://www.github.com/evothings/cordova-eddystone
  • cordova-eddystone源代码文档
  • cordova-eddystone源代码下载
  • Git URL:
    git://www.github.com/evothings/cordova-eddystone.git
  • Git Clone代码到本地:
    git clone http://www.github.com/evothings/cordova-eddystone
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/evothings/cordova-eddystone
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • cordova/phonegap Eddystone插件

    这是Eddystone和iOS上信号的Cordova插件。 使用这里插件从你的移动应用程序扫描Eddystone信号。

    Eddystone Lighthouse Workflow

    使用 Evothings Studio实现快速轻松的Eddystone移动应用开发

    Evothings Studio是移动IoT应用的快速开发工具。 它完全与 Apache Cordova和PhoneGap兼容。

    使用 Evothings Studio的编辑/运行周期只是一两个或者两个,与传统的重新生成for项目的方法相比更快。

    Evothings Studio

    正在启动

    创建一个Cordova项目( 将文件夹,域和应用程序 NAME 替换为你自己的名称):

    
    cordova create appfolder com.mydomain.myeddystoneapp Eddystone
    
    
    
    

    转到项目文件夹:

     
    cd appfolder
    
    
    
     

    添加Eddystone插件:

    
    cordova plugin add cordova-plugin-eddystone
    
    
    
    

    添加你发现有用的其他插件,例如 cordova-plugin-console,这会使 console.log 直接输出到Xcode或者adb中的日志:

    
    cordova plugin add cordova-plugin-console
    
    
    
    

    清空Cordova项目 www www并放置示例 index.html 文件的副本,结果应当如下所示:

    
    www
    
    
     index.html
    
    
    
    

    添加平台( Android和/或者 iOS ):

    
    cordova platform add android
    
    
    cordova platform add ios
    
    
    
    

    生成:

     
    cordova build
    
    
    
     

    通过将应用程序部署到移动设备来运行该应用程序。

    background-通知

    当应用程序在 background 中运行时显示通知,请使用插件 de.appplant.cordova.plugin.local-notification 插件:

    
    cordova plugin add de.appplant.cordova.plugin.local-notification
    
    
    
    

    使用插件或者库?

    Eddystone库是建立在Cordova插件之上的。 Eddystone插件将BLE插件和所需的JavaScript库打包成一个包,。

    然而,它可以更灵活地使用,插件上的Eddystone库,并将库自己包括在一起。 这就是 Evothings Studio工作附带的Eddystone示例应用程序的。 这样就可以修改Eddystone代码on-the-fly了,库文件对插件不是"锁定于"。

    使用Eddystone库直接使用Evothings查看器或者构建一个定制的Cordova应用程序,并添加 Cordova插件。 然后包括 libs/evothings/eddystone/eddystone.jsindex.html 中,如 Eddystone扫描示例中所示。 实际的库文件位于文件夹 ,将这个文件夹复制到Cordova目录。

    文档

    生成的文档在Evothings文档站点找到。

    下面是Eddystone库中的函数和数据strutures的概述。

    evothings.eddystone.startScan

    开始扫描Eddystone设备。 发现设备和错误将报告给提供的回调。

    successCallback是在发现设备时重复调用的函数。 通常会多次报告同一设备。 间隔将取决于信标的广告间隔,还有其他事情。

    startScan将继续扫描,直到你调用 stopScan()。

    要节省能源,请在找到你要查找的设备后立即调用 stopScan()。 在扫描过程中调用这里函数将产生错误。

    格式:

    
    evothings.eddystone.startScan(successCallback, errorCallback)
    
    
    
    

    successCallback ( beacon是表示所找到设备的对象,请参见下面的EddystoneDevice描述)的格式:

    
    successCallback({EddystoneDevice} beacon)
    
    
    
    

    errorCallback ( 错误是字符串值)的格式:

    
    errorCallback({string} error)
    
    
    
    
    EddystoneDevice

    表示 Eddystone BLE设备的对象。 从 evothings.easyble.EasyBLEDevice 继承。注意,Eddystone特定对象属性是可选的,它们可能在对象( 访问时给出值 null ) 中丢失。 属性值被填充,因为从信标中广播的Eddystone帧类型被检测。

    以下是与Eddystone信标相关的属性:

    • {string} URL - 互联网网址。
    • {number} txPower - 有符号整数,信号强度为分贝,工厂在 0米范围内测量。
    • {Uint8Array} nid - 10-byte 命名空间 ID。
    • {Uint8Array} 出价- 6-byte 信号标识。
    • {number} 电压- 设备电压的电池电压,单位为毫伏,如果设备不是电池供电,则为 0 ( 零)。
    • {number} 温度- 设备温度的环境:256度,或者 0 x8000如果设备没有温度计。
    • {number} adv_cnt - 自设备启动后发送的广告帧数。
    • {number} dsec_cnt - 设备启动后的时间,决定秒( 10单位等于 1秒)。
    • in @property {number} - 接收信号强度指示器( RSSI ),负整数报告信号强度分贝。 可能有 127个值,这意味着未定义的RSSI值。

    可能感兴趣的其他属性:

    • @property {string} 地址- 唯一标识设备。 地址的格式取决于主机平台。 在Android上,这是设备的MAC地址,在iOS上它是临时 UUID。
    • @property {string} NAME - 公布的BLE设备 NAME,或者 null。
    evothings.eddystone.stopScan

    停止扫描Eddystone设备。

    例如:

    
    evothings.eddystone.stopScan()
    
    
    
    
    evothings.eddystone.calculateAccuracy

    要从信标中找到大约距离的近似距离,请使用函数 calculateAccuracy:

    
    var distance = evothings.eddystone.calculateAccuracy(
    
    
     beacon.txPower, beacon.rssi)
    
    
    
    

    注意,beacon.txPower 和 beacon.rssi 很多是未定义的,在这种情况下calculateAccuracy返回 null。 在txPower报告和rssi值之前发生这种情况。

    快速教程

    下面是如何使用Eddystone插件的快速指南。

    实时扫描信标

    这就是如何扫描信标:

    
    function foundBeacon(beacon)
    
    
    {
    
    
    //Note that beacon.url will be null until the URL
    
    
    //has been received. Also note that not all Eddystone
    
    
    //beacons broadcast URLs, they may send UIDs only.
    
    
     console.log('Found beacon: ' + beacon.url)
    
    
    }
    
    
    
    function scanError(error)
    
    
    {
    
    
     console.log('Eddystone scan error: ' + error)
    
    
    }
    
    
    
    evothings.eddystone.startScan(foundBeacon, scanError)
    
    
    
    

    替代语法:

    
    evothings.eddystone.startScan(
    
    
     function(beacon)
    
    
     {
    
    
     console.log('Found beacon: ' + beacon.url)
    
    
     },
    
    
     function(error)
    
    
     {
    
    
     console.log('Eddystone scan error: ' + error)
    
    
     })
    
    
    
    
    显示信标对象

    这将记录所有设备属性:

    
    function foundBeacon(beacon)
    
    
    {
    
    
     console.log(JSON.stringify(beacon))
    
    
    }
    
    
    
    
    停止扫描信标
    
    evothings.eddystone.stopScan()
    
    
    
    

    示例代码

    在示例文件夹中有一个与插件捆绑的示例应用程序,见文件 index.html

    插件插件详细信息

    Eddystone插件是在 Cordova BLE插件之上实现的。

    插件的JavaScript代码在文件 eddystone-plugin.js 中找到。 这个文件是由 ruby 脚本 buildEddystonePluginJS.rb 生成的。

    插件的JavaScript源文件在 evothings示例 repo 中找到。 如果你希望自己运行 buildEddystonePluginJS.rb,你需要首先克隆cordova文件夹旁边的evothings库。

    不要直接向eddystone插件提供代码,而是向evothings库中的源文件提供代码。

    下载 Evothings Studio

    探索移动物联网应用快速发展的世界 ! 下载 Evothings Studio现在很简单,很容易上手



    文章标签:plugin  bea  Cordova  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语