KeyFobDemoApplication Overview

–Advertise and connect with master device 广播以及和主设备连接

–Key press notifications 按键通知

–Proximity alarm 近场警报

–Battery percentage measurement 电池电量测量

–Accelerometer data notification 加速计数据通知


•The following application files are a part of the KeyFobDemo project:

以下为KeyFobDemo工程中的部分文件:

–KeyFob_Main.c –contains the main function, which performs HAL and OSAL intialization, and calls osal_start_system to start the main loop

包含主要函数,执行HAL和OSAL初始化,调用osal_start_system开启主循环

–OSAL_KeyFobDemo.c –defines the global tasksArr and tasksEvents arrays and the osalInitTasks function as required by OSAL

定义OSAL需要的,包括tasksArr、任务事件数组和初始化OSAL中的task的函数。

–keyfobdemo.c –main application module, including the application task initialization and event handler functions

主应用程序模块,包含应用程序任务初始化和事件处理函数。

–keyfobdemo.h –header file for application; defines the application OSAL task events

应用程序的头文件,定义应用程序操作系统抽象层的任务事件。

–buzzer.c –controls the audio buzzer on the keyfob

控制钥匙扣上的蜂鸣器的音频。

–cma3000d.c –controls and reads data from the accelerometer

对加速计进行控制和读取数据


BLE Stack Overview

•The BLE protocol stack is based on the approved Bluetooth Core specification version 4.0 (June 30, 2010)

蓝牙低功耗协议栈是基于批准的蓝牙核心规范版本4.0

•Protocol stack provided as a single library file in KeyFobDemo application (three versions provided: one for each hardware platform)

在KeyFobDemo工程中,协议栈以一个library文件提供。(提供三个版本:一个用于每个硬件平台)

•Application usually does not need to directly call protocol stack API‟s

应用程序通常不需要直接调用协议栈的API

•Profiles provide a means for application to send and receive control messages and data with stack

配置为应用程序提供方法,通过协议栈发送和接收消息控制和数据


Profiles Overview 配置概览

•Profiles provide a layer of software between the application and the BLE protocol stack

配置提供一个软件层在应用程序和BLE协议栈之间

•Allow developer to perform basic BLE functions without having in-depth knowledge of the stack

运行开发组执行基础的BLE函数,而不需要深度了解协议栈

•Directly communicate with the top two layers of the BLE stack

直接和BLE协议栈的顶部两层进行通讯


GAP Peripheral Role Profile –Handles advertisements, scan requests, connections, and connection parameters

GAP从角色配置——处理广播,浏览请求,连接以及连接属性

GAP Peripheral Bond Manager –Handles responses to pairing and bonding requests, and the storage and management of security keys

GAP从机绑定管理器——处理响应配对和绑定的请求,以及存储和管理安全密钥

GATT Profiles –Maintain GATT attributes in table, processing of read and write requests, and notifications

GATT配置——保持GATT属性在表格上,处理读写请求,以及通知


GAP Peripheral Role Profile:

Purpose 目的

•Allows device to act as a GAP peripheral and perform the following:

运行设备作为GAP从机以及执行以下:

–Turn advertising on and off 

开关广播

–Send connectable advertisements and accept connection requests

发送可连接的广播以及接收连接请求

–Request automatic updates of link-layer connection parameters to a central device:

自动请求更新链路层连接到主设备的参数

•Connection interval 连接间隔

•Slave latency 奴隶延迟

•Supervision timeout 监视超时

–Notify application of connection state changes 通知应用程序连接状态改变


Public Functions 公共函数

•Peripheral Role Profile is an OSAL task, and contains initialization and event processing functions called by OSAL:

–GAPRole_Init

–GAPRole_ProcessEvent

•Profile contains several parameters, accessed through:

–GAPRole_SetParameter

–GAPRole_GetParameter

•Initialization from application:

–GAPRole_StartDevice

•Terminate a connection:

–GAPRole_TerminateConnection

Initialization

•OSAL initializes Peripheral Role with call to GAPRole_Init

•Application registers two callback functions with Peripheral Role Profile by passing function pointers as parameter to GAPRole_StartDevice function:

–peripheralStateNotificationCB –notifies application that the peripheral device has changed GAP states (for example, devices goes from advertising to being in a connection)

–rssiAvailableCB –notifies application of the RSSI when it becomes available (set to NULL in KeyFobDemo application since it does not use RSSI information)

•When GAPRole_StartDevice is called:

–Profile signals GAP to begin advertising (if enabled)

–Profile registers itself with GAP as the task to receive GAP event messages (this allows profile to always know the connection status)

•In KeyFobDemo application, GAPRole_StartDevice is not called until 500ms delay (triggered by KEYFOB_START_DEVICE_EVT)


Key Parameters

Advertisement and Scan Response Data

AD Types Used

After Link Establishment

RSSI Measurement

After Link Termination

Switching to multi-role profile


GATT Service Profiles:

Overview

•Allows device to implement a GATT service:

–As defined by Bluetooth SIG

–Custom

•Provides means for application to read and write service data on the attribute table

•Lets a remote GATT client access characteristics through:

–GATT reads

–GATT writes

–GATT notifications and indications

•Verifies the validity of data being written from a remote device

•GATT service profiles typically do not need to be OSAL tasks, and are accessed directly by the protocol stack and by the application

•Most GATT service profiles have a very similar structure

•New GATT service profiles can be easily created by copying an existing profile and renaming variables and functions


Typical Functions

Structure

InitService Function

RegisterAppCBs Function

Notifications

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值