当前位置:首页 > 业务领域 > 重金属处理 >

在Apollo2_ble中添加一个service

编辑:OB体育 来源:OB体育 创发布时间:2021-11-24阅读19350次
  本文摘要:引语Apollo2_ble控制模块硬件配置由Apollo2(blehost)+em9304(blecontroller)组成。

引语Apollo2_ble控制模块硬件配置由Apollo2(blehost)+em9304(blecontroller)组成。手机软件上,用以ARM的CordioStackandProfilestcp协议,这一tcp协议也是根据WSF(WirelessSoftwareFoundation)搭建的。

Apollo2_bletcp协议应用的是蓝牙4.2规范。什么叫profile和service?profile,能够有多种多样译成,在无线通信技术同盟要求的蓝牙4.2规范中,界定Bluetoothprofiles是用于搭建手机蓝牙系统软件中运用于的互用的。[1]这一profile的界定就比较颇深,文中不保证确立描述。文中中的profile和service,都所说的是图1中GATT-BasedProfile/Services层的定义,也就是application层的定义。

要讲这二者,最先讲到一下GATT。图1简单BLE层级区别涂涂1是简单的BLE层级区别,GATT(GenericAttributeProfile)是手机蓝牙中一种根据ATT协议书(AttributeProtocol)的profile架构(framework)。ATT协议书的念头,能够讲到是为物联网技术服务项目的。

在物联网技术时期,务必感应器搜集各种各样信息,比如,溫度,环境湿度,方向,用电量等,ATT协议书就将这种信息以属性(attribute)的方式传送到顶层,以供载入或修改。它要求了这种属性的文件格式,管理权限,载入方法等。而GATT便是将抽象概念的ATT协议书艺术化,要求了一个规范化的有关这种属性怎样载入修改的架构(framework)。

来到确立的运用于情景,大家就可以依据GATT要求好的架构,来编写相匹配的GATT-BasedProfile。而每一个profile,只不过各种各样services的非空子集。

OB官网

荐个事例,倘若大家的运用于情景是一个能够测心率的智能手表,该智能手表除开测心率的作用,大家还务必它有测用电量的作用。这种各有不同的作用,只不过是便是各有不同的services。

无线通信技术同盟早就根据了各种各样各有不同的GATTservices,详细列表能够参照参考文献[2]。这么多的services,并并不是每一个大家都务必,因此 ,我们可以自身写成GATT-BasedProfile,将大家务必的services包含进来。

如上边智能手表的事例,这一profile,就只包含了HeartRateservice和BatteryService。刚开始加到service现在可以刚开始在Apollo2_ble的SDK里加到大家想的service了。文中以fit工程项目为例证。

OB官网

合上工程项目后,全部工程项目的main函数入口在src文件目录下。(文中的c语言编译器自然环境用的是keil)图2是合上没重置freertos系统的工程项目文件目录,倘若重置了freertos,也是某种意义在src文件目录下,仅仅freertos系统的main函数入口在freertos_fit.c文档中,但确立的进程相匹配的编码在radio_task.c中,必需到相匹配进程的C文档中查看才可。图2图3在main函数或是相匹配进程中找寻函数FitStart()图4转到该函数,找寻Initializeattributeserverdatabase代码段如图所示5:图5由图5由此可见,该profile早就加来到4个services。(注意,4个中不还包含GAP和GATT,这两个services是每一个GATT-BasedProfile都必不可少加进的,编码中由函数SvcCoreAddGroup进行加到)分别是,测心率的(HeartRate),载入机器设备信息的(deviceinformation),测用电量的(batteryservice)和测速度的(runningspeedandcadence)。

如今假定我们要新的加进一个HID的service。则最先就需要在start函数里边备案这一service,降低的编码以下:图6而且将相匹配的头文件都包含进来:图7svc_hid.h里边申明了SvcHidRegister和SvcHidAddGroup,而hid_api.h里边申明了函数HidAttsWriteCback。

并并不一定的service都务必备案载入消息传递函数,仅有当Attributelist中的Attributesettings项经常会出现ATTS_SET_WRITE_CBACK。或是ATTS_SET_READ_CBACK时才务必。

以fit工程项目为例证,heartrate的Attributelist以下:图8最后一个attribute务必选用写成消息传递,因而在fitstart函数和实生物务必备案写成消息传递函数的入口。看大家的service是否加到成功,我们可以用手机合上手机蓝牙调节小助手:图9下图10是没加到HIDservice时合上调节专用工具看到的服务项目列表,能够见到原本除开GAP(genericaccessprofile)和GATT(genericattributeprofile)外,有4个services,与我们在图5编码中常闻完全一致,图11是大家加到编码后再作合上检测工具看到的服务项目列表,能够见到HIDservice早就加到进来了。


本文关键词:OB体育,OB官网

本文来源:OB体育-www.exgfpost.com

0798-244941335

联系我们

Copyright © 2010-2014 防城港市官网科技股份有限公司 版权所有  桂ICP备67605331号-2