bt-host

示例代码

import * as bt_host from 'bt_host' 

var cnt = 0
var dev_connected = false

var bt_host_instant = bt_host.open({
  deviceName: 'ble_test',
  conn_num_max: 2,
  success: function() {
    console.log('bt_host init success');
        setTimeout(() => {
                app_add_service()
                app_start_adv();
                }, 1000)
  },
  fail: function() {
    console.log('bt_host init failed');
  }
});

function onConnect() {
    // onConnect
        console.log('bt_host onConnect');

        dev_connected = true
        setTimeout(() => {
                app_notify_data()
        }, 2000);
}

function onDisconnect() {
    // onDisconnect
        console.log('bt_host onDisconnect');
        dev_connected = false
        app_start_adv();
}

function app_notify_data() {
        cnt++;
        console.log('app_notify_data cnt = '+cnt)
        if (cnt%2) {
                let param = {
                        arg: "{\
                                \"uuid\": \"0x1B1B\",\
                                \"value\": [31,32,33]\
                                }",
                }
                bt_host_instant.update_char(param);
        } else {
                let param = {
                        arg: "{\
                                \"uuid\": \"0x1B1B\",\
                                \"value\": [33,32,31]\
                                }",
                }
                bt_host_instant.update_char(param);
        }

        if (dev_connected == true) {
                setTimeout(() => {
                        app_notify_data()
                }, 2000);
        }
}

function app_add_service() {
        let service = {
                        service: "{\
                \"s_uuid\":\"0x1A1A\",\
                \"chars_list\":[\
                    {\
                        \"char_uuid\":\"0x1B1B\",\
                        \"char_permit\":\"RW\",\
                        \"char_descr\":{\
                            \"descr_type\":\"CCC\",\
                            \"descr_uuid\":\"0x1C1C\"\
                        }\
                    },\
                    {\
                        \"char_uuid\":\"0x1D1D\",\
                        \"char_permit\":\"R\"\
                    }\
                ]\
            }"
        }
        bt_host_instant.add_service(service);
}

function app_start_adv() {
        bt_host_instant.start_adv({
                type: 0,
                adv_data: '020106',
                scan_rsp_data: '',
                interval_min: 160,
                interval_max: 320,
                channel_map: 7,
                success: function() {
                        console.log('bt_host start adv success');
                },
                failed: function() {
                        console.log('bt_host start adv failed');
                },
        });
}

function app_stop_adv() {
        bt_host_instant.stop_adv({
                success: function() {
                        console.log('bt_host stop adv success');
                },
                failed: function() {
                        console.log('bt_host stop adv failed');
                },
        });
}


bt_host_instant.on('connect', function() {
    onConnect();
});

bt_host_instant.on('disconnect', function() {
          onDisconnect();
});

bt_host_instant.on('onCharWrite', function() {
    console.log('app: onCharWrite');
});

open(Object options)

打开蓝牙,创建 蓝牙 实例。

入参

属性

类型

必填

描述

deviceName

String

蓝牙名称

conn_num_max

Int

蓝牙最大连接数,填1

success

Function

成功回调函数

failed

Function

失败回调函数

返回

  • 蓝牙实例。

蓝牙实例

start_adv(Object params)

开启蓝牙广播

入参

属性

类型

必填

描述

type

Int

0可连接广播,3不可连接广播

adv_data

String

广播数据,格式参考蓝牙文档

scan_rsp_data

String

广播扩展数据,字符串可填空

interval_min

Int

最小广播间隔,单位0.625毫秒

interval_max

Int

最大广播间隔,单位0.625毫秒

channel_map

Int

7

success

Function

成功回调函数

failed

Function

失败回调函数

返回

stop_adv()

关闭蓝牙广播

入参

属性

类型

必填

描述

success

Function

成功回调函数

failed

Function

失败回调函数

返回

app_add_service(Object service)

注册蓝牙服务

入参

属性

类型

必填

描述

service

String

Json格式,需要定义服务UUID和服务属性

success

Function

成功回调函数

failed

Function

失败回调函数

返回

update_char(Object params)

更新属性值,如果处于连接状态且此属性的CCC描述中notify已开启,更新的数据会同步到连接的设备侧,这个常用于蓝牙的数据交互。

入参

属性

类型

必填

描述

arg

String

Json格式,需要指定uuid和value

success

Function

成功回调函数

failed

Function

失败回调函数

返回

on(String State, Funtion cb)

监听蓝牙的状态,如果监听的蓝牙状态改变,则对应的回调被调用。

目前支持连接,断开以及属性写入的回调。

入参

属性

类型

必填

描述

State

String

"connect","disconnect","onCharWrite"

cb

Function

回调函数

返回