金桔蓝牙网关快速建立蓝牙连接方法


金桔蓝牙网关(acserver版本v34以上)可以通过预置的蓝牙连接类型进行快速的蓝牙连接,不需要每次调用都提供服务uuid,特征值uuid,或者厂商uuid等,大大简化了用户调用蓝牙连接的过程。

蓝牙标准服务类型(16bit)连接

安卓手机看到的此类型服务为0000xxxx-0000-1000-8000-00805F9B34FB。例如,我们服务uuid为0x0001,写入服务为0x0004,通知服务为0x0005,苹果手机看起是这样的:
在这里插入图片描述
安卓手机看起来是这样的:
在这里插入图片描述
ACserver 可以配置该连接信息到配置文件中,因为大多数用户都是只连接几种固定的设备,所以服务信息多是固定的,在acserver目录下有blelinktype文件夹,打开该文件夹,下面的文件都是各个服务类型:
在这里插入图片描述
每个文件的文件名,就是该类型的类型名(不包含文件类型),这里只有一个文件,该类型的名称就是com.nordicsemi.service.uart ,我们打开该文件看下里面内容:

[
    {
        "Company": "NORDIC",
        "Device_type": "standard_device",
        "Device_sn":"NA",
        "Default_station":"",
        "Timeout":"20",
        "Serviceuuid":"0001",
        "Servicetype":"128bit",
        "Txuuid":"0003",
        "Rxuuid":"0002",
        "Vendoruuid":"9E,CA,DC,24,0E,E5,A9,E0,93,F3,A3,B5,00,00,40,6E"
    }
]

这里面是一个json结构的数组,在数组里面有一个结构对象,这里面就是该连接类型的配置信息,描述如下:

字段描述
Company标识该服务是哪个公司的服务产品,起描述作用。
Device_type标识该服务用于哪种类型的设备,起描述作用。
Device_sn标识该类型的设备是哪种型号的设备,起描述作用。
Default_station缺省情况下,用哪个基站来连接该类型的设备。
Timeout连接的超时时间,即,当连接上或者没有连接上,多长时间以后断开或删除该连接。
Serviceuuid服务的UUID按上图的例子,这里应该填:0001
Servicetype服务类型,如果是16bit服务就是填:16bit,这个例子里就应该填16bit
Txuuid这个是通知属性,在上图的例子中这里应该填:0005
Rxuuid这个是发送属性,在上图的例子中这里应该填:0004
Vendoruuid这个是厂商服务UUID在16bit类型的服务中,留着默认值即可,该字段不起作用。

最后我们的配置文件内容应该是:

[
    {
        "Company": "NORDIC",
        "Device_type": "standard_device",
        "Device_sn":"NA",
        "Default_station":"",
        "Timeout":"20",
        "Serviceuuid":"0001",
        "Servicetype":"16bit",
        "Txuuid":"0005",
        "Rxuuid":"0004",
        "Vendoruuid":"9E,CA,DC,24,0E,E5,A9,E0,93,F3,A3,B5,00,00,40,6E"
    }
]

我们将该配置保存为test1.js,重启acserver以后,我们看到界面的界面上多了test1的连接类型,我们填上mac地址后

在这里插入图片描述
点击连接后,右边事件列表中:
在这里插入图片描述
有显示连接状态。
这样就是已经可以成功连接设备。
如果需要用命令进行连接,需要发送下面这样命令:

http://127.0.0.1:8888/ac/station?cmd=setblelink_type&mac=10.00.00.63.42.42&stationId=10002095&type=test1

参数说明:

字段描述
cmd命令类型,固定为setblelink_type
mac设备的mac地址
stationId用哪个网关进行连接
type连接的类型名,就是刚刚保存的test1

在这里插入图片描述
发送连接命令后,会收到蓝牙连接成功的消息。
另外注意,如果要是服务的UUID是标准的蓝牙服务,安卓上看到的也是2个字节的服务UUID
在这里插入图片描述
这种不影响正常通信,只是填写的服务填上标准的UUID即可.

厂商服务类型(128bit)连接

此类型服务,需要有厂商自定义的UUID,即16字节的UUID。
例如,我们建立一个厂商服务 9E,CA,DC,24,0E,E5,A9,E0,93,F3,A3,B5,00,00,40,6E(注意,手机看到的正好与此顺序相反,第12,13字节空出来留着填服务UUID)服务UUID为0xF001,写入服务为0x0004,通知服务为0x0005,苹果手机上看到的服务类型为:
在这里插入图片描述

安卓手机看到的是这样的:
在这里插入图片描述
基本上跟苹果是一致的,我们新建蓝牙连接类型的时候只要把Servicetype字段改成128bit并且按读到的厂商服务的UUID填入即可,这里这样填写类型信息:

[
    {
        "Company": "NORDIC",
        "Device_type": "standard_device",
        "Device_sn":"NA",
        "Default_station":"",
        "Timeout":"20",
        "Serviceuuid":"0001",
        "Servicetype":"128bit",
        "Txuuid":"0005",
        "Rxuuid":"0004",
        "Vendoruuid":"9E,CA,DC,24,0E,E5,A9,E0,93,F3,A3,B5,00,00,40,6E"
    }
]

字段说明见上面的16bit服务部分。
我们将该配置保存为test2.js,重启acserver以后,我们看到界面的界面上多了test1的连接类型,我们填上mac地址后

在这里插入图片描述

点击连接后即可连接成功,连接信息注意观察右边的事件列表,注意不要刷新页面。

http://127.0.0.1:8888/ac/station?cmd=setblelink_type&mac=10.00.00.63.42.42&stationId=10002095&type=test2

参数说明:

字段描述
cmd命令类型,固定为setblelink_type
mac设备的mac地址
stationId用哪个网关进行连接
type连接的类型名,就是刚刚保存的test2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值