btmodule

来自于:开发者

概述

btmodule模块封装了蓝牙4.0的接口,本接口是BLE,和传统蓝牙不一样,本模块集成了打开蓝牙, 关闭蓝牙,扫描附近BLE设备并连接等功能,支持写数据到BLE外设,本模块暂只提供安卓接口, 苹果接口会在以后更新;本模块只能用于手机客户端连接到智能硬件设备,暂时不能实现手机端直接的互联,本模块由第三方模块开发者提供,使用本模块需在线云编译安装包

OpenBT

打开设备蓝牙功能

OpenBT()

示例代码

var obj = api.require('btmodule');
obj.OpenBT();

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

CloseBT

关闭蓝牙功能

CloseBT()

示例代码

var obj = api.require('btmodule');
obj.CloseBT();

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

ScanBT

扫描并连接附近BLE外设

ScanBT()

示例代码

var obj = api.require('btmodule');
obj.ScanBT();

补充说明

此接口提供扫描附近BLE外设,并连接;一旦连接成功就可以对连接成功的设备进行数据写入,若已连接后 重复调用,则会只能操作最新连接的设备 ,若已经选择了设备却没有提示"connected",表达正在连接中,一般10s之内可以完成连接。

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

DisConnectBT

断开和BLE外设的连接,前提条件是已经和BLE外设连接

DisConnectBT()

示例代码

var obj = api.require('btmodule');
obj.DisConnectBT();

补充说明

调用此接口前确保已经连接

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

WriteBT

写入数据到已经连接的BLE外设

WriteBT(param)

param

service:

  • 类型:字符串
  • 描述:BLE外设的service(服务)的UUID,不能为空

charUUID:

  • 类型:字符串
  • 描述:BLE外设的characteristic(特征值)的UUID,不能为空

data:

  • 类型:字符串
  • 描述:需要传输给BLE外设的数据,为字符串,字符串的内容需要是16进制数据,例如"ff0380",代表0xff,0x03,0x80三个16进制数,不能为空

示例代码

var obj = api.require('btmodule');
var param={service:"0000fff0-0000-1000-8000-00805f9b34fb",charUUID:"0000fff1-0000-1000-8000-00805f9b34fb",data:"ff0005"};
obj.WriteBT(param);

补充说明

调用此接口前,需设定好需要写入的BLE外设的characteristic(特征值)的UUID 和其所属的service(服务)的UUID,本示例代码是设成TI-CC2540芯片的BLE协议栈例程 里面的simpleGATTprofile的service的UUID和char的UUID进行写入数据;另外:本接口只支持写入(0,255)范围的数据

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

ReadBT

读取已经连接的BLE外设的数据

ReadBT(param)

param

service:

  • 类型:字符串
  • 描述:BLE外设的service(服务)的UUID,不能为空

charUUID:

  • 类型:字符串
  • 描述:BLE外设的characteristic(特征值)的UUID,不能为空

示例代码

var obj = api.require('btmodule');
var param = {service: "0000fff0-0000-1000-8000-00805f9b34fb",charUUID: "0000fff1-0000-1000-8000-00805f9b34fb"};
obj.ReadBT(param);

补充说明

调用此接口前,需设定好需要读取的BLE外设的characteristic(特征值)的UUID 和其所属的service(服务)的UUID,本示例代码是设成TI-CC2540芯片的BLE协议栈例程 里面的simpleGATTprofile的service的UUID和char的UUID进行读取数据; 返回的数据会在startRev函数中产生回调

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

NotifyBT

打开或者关闭的BLE外设的notify功能

NotifyBT(param)

param

service:

  • 类型:字符串
  • 描述:BLE外设的service(服务)的UUID,不能为空

charUUID:

  • 类型:字符串
  • 描述:BLE外设的characteristic(特征值)的UUID,不能为空

enable:

  • 类型:boolean类型
  • 描述:打开或者关闭notify功能,不能为空

way:

  • 类型:字符串
  • 默认值:无
  • 描述:用何种方式打开notify功能,2种方式:indicate/notify,不能为空

    示例代码

var obj = api.require('btmodule');
var param={service:"0000fff0-0000-1000-8000-00805f9b34fb",charUUID:"0000fff4-0000-1000-8000-00805f9b34fb",enable:true,way:"indicate"};
obj.NotifyBT(param);

补充说明

调用此接口前,需设定好需要notify的BLE外设的characteristic(特征值)的UUID 和其所属的service(服务)的UUID,本示例代码是设成TI-CC2540芯片的BLE协议栈例程 里面的simpleGATTprofile的service的UUID和char的UUID进行打开notify功能; 返回的数据会在startRev函数中产生回调

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

ConnectBT

通过固定的蓝牙地址链接设备

ConnectBT()

param

address:

  • 类型:字符串
  • 默认值:无
  • 描述:BLE外设的地址,不能为空

示例代码

var obj = api.require('btmodule');
var param = { address: "D0:39:72:CC:84:04" };
obj.ConnectBT(param);

补充说明

此接口提供直接连接附近BLE外设,通过固定的蓝牙地址进行连接。

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

ConnectBTbyname

通过名称扫描连接BLE外设

ConnectBTbyname()

param

name1:

  • 类型:字符串
  • 默认值:无
  • 描述:BLE外设的名称,不能为空

name2:

  • 类型:字符串
  • 默认值:无
  • 描述:BLE外设的名称,不能为空

name3:

  • 类型:字符串
  • 默认值:无
  • 描述:BLE外设的名称,不能为空

示例代码

var obj = api.require('btmodule');
var param = { name1: "sample1", name2: "sample2", name3: "sample3" };
obj.ConnectBTbyname(param);

补充说明

此接口提供通过扫描固定名称来连接附近BLE外设,提供的3个参数中的名称先扫描到哪个就先进行连接。

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

getState

获取蓝牙设备状态

getState(function(ret){})

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:每有状态变更便会触发此回调
  • 内部字段:
{
     status: true ,      //布尔类型;是否获取蓝牙状态,true|false
     state:{    //JSON对象;获取监听的特征的信息
        ifbtopen: '',        //字符串类型;蓝牙是否打开,取值范围如下:
                             //true 蓝牙打开
                             //false 蓝牙关闭
        ifbtconnect: '', //字符串类型;蓝牙是否已经连接到外设,取值范围如下:
                         //true 已经连接了设备
                         //false 没有连接设备或已经断开设备连接
     }      
}

示例代码

var obj = api.require('btmodule');
obj.getState(function(ret, err) {
    var msg1 = ret.state.ifbtopen;
    var msg2 = ret.state.ifbtconnect;
    api.toast({ msg: msg1 });
});

补充说明

要接收蓝牙状态的变化最好在初始化的时候就调用此接口,当蓝牙与设备连接成功或者断开的时候会触发此回调

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本

startRev

接收BLE外设发送到手机app的数据接口

startRev(function(ret){})

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:每有数据接收便会触发此回调
  • 内部字段:
{
     status: true ,                    //布尔类型;是否有数据接收,true|false
     received_data:{                   //JSON对象;获取监听的特征的信息
         value: '',              //字符串类型;接收的数据
     }      
}

示例代码

var obj = api.require('btmodule');
obj.startRev(function(ret, err) {
    var msg1 = ret.received_data.value;
    api.toast({ msg: msg1 });
});

补充说明

每当有数据从BLE外设传到手机的时候就会触发此回调,建议初始化的时候就调用此接口,readBT和NotifyBT接收到的数据都是从这里读取

可用性

Android系统,需设备支持蓝牙4.0且安卓版本在4.3以上

可提供的1.0.0及更高版本