3 最小BLE应用简介
来源:互联网 发布:做宣传单的软件 编辑:程序博客网 时间:2024/06/03 05:26
3.1初始化介绍
有一些初始化函数通常在执行一个BLE应用之前调用,下面的表格中列出了这些初始化调用函数,在后面将对它们进行详细的介绍。
大部分采用数据结构的形式作为输入参数,这些数据结构包含一系列的配置和选项信息,阅读代码中的注释能更好地理解它们。
在广播开始之后,你就进入了main函数中的for循环。
3.2 协议栈S110 SoftDevice
为了使用独特的射频特性,你必须使能S110 SoftDevice协议栈。见《S110 nRF51822 SoftDevice Specification》(S110 nRF51822 SoftDevice协议栈说明书)中对硬件资源的详细需求。
3.3 广播
用于广播的数据结构如下:
ble_gap.h 中 ble_gap_conn_sec_mode_t
ble_advdata.h 中 ble_advdata_t
err_code = sd_ble_gap_device_name_set(&device_name_sec_mode, DEVICE_NAME
strlen(DEVICE_NAME));
err_code = sd_ble_gap_appearance_set(BLE_APPEARANCE_UNKNOWN);
err_code = ble_advdata_set(&advdata);
注意:传递给sd_ble_gap_device_name_set()的安全模式仅适于设备本身的名字。
广播参数(ble_gap_adv_params_t)必须通过sd_ble_gap_adv_start()来传递:
err_code = sd_ble_gap_adv_start(&m_adv_params);
3.4 连接参数
SDK提供了一个名为ble_conn_params的模块用于管理连接参数更新,它通过SoftDevice API进行处理,包括请求的时间和第一次请求被拒绝再发送一个新的请求。
在初始化结构体ble_conn_params_init_t中,定义了更新过程的有关参数,例如,是否开始连接,什么开始写入一个特定的CCCD,是否使用连接参数,发送更新请求的延时等等。
在初始化函数ble_conn_params_init()中,使用封装了初始化连接参数(ble_gap_conn_params_t)的结构体ble_conn_params_init_t作为输入参数进行连接参数初始化。
err_code = ble_conn_params_init(&cp_init);
ble_conn_params SDK模块确保与主机(集中器)的连接参数相适应,如果不适应,外围设备将要求更改连接参数,超过设定的更新次数都没有更新成功后,它就会断开连接或者根据设置返回一个事件到应用层。
3.5 服务
服务可以通过sd_ble_gatts_service_add()进行添加,最好不要在应用层代码中建立服务,而是在一个单独的文件中建立服务。一个服务不是主服务就是次服务,但是在通常实际的应用中大部分使用主服务。变量service_uuid就是你想用于服务的UUID。变量service_handle是一个输出变量,当创建一个服务的时候将会返回一个唯一的句柄值,这个句柄可以在以后用于识别不同的服务。
err_code = sd_ble_gatts_service_add( BLE_GATTS_SVC_TYPE_PRIMARY,
&p_lbs->service_uuid,
&p_lbs->service_handle );
3.6 特性
特性可以通过sd_ble_gatts_characteristic_add()函数进行添加,它有4个参数。为了代码清晰,这个函数应该只能出现在服务文件中,而不能出现在应用层中。
第1个参数是特性要加入的服务的句柄,第2个参数是特性的结构体,它是一个全局变量,它包含了特性可能用到的性质(读,写,通知等)。第3个参数是值属性的描述,它包含了它的UUID,长度和初始值。第4个参数是返回的特性和描述符的唯一句柄,这个句柄可以在以后用于识别不同的特性。例如,在写事件中用于识别哪一个特性被写入。
err_code = sd_ble_gatts_characteristic_add( p_lbs->service_handle, &char_md,
&attr_char_value,
&p_lbs->led_char_handles);
- 3 最小BLE应用简介
- BLE应用
- BLE协议栈简介
- BLE HID简介
- BLE简介和Android BLE编程
- BLE简介和Android BLE编程
- BLE简介和Android BLE编程
- BLE简介和Android BLE编程
- BLE简介和Android BLE编程
- BLE简介和Android BLE编程
- BLE 应用解释
- TI BLE协议栈简介
- BLE简介及连接过程
- BLE简介及连接过程
- ble学习笔记八---------ble协议栈之简介
- 蓝牙低能耗(BLE)技术简介
- BLE协议栈安装和目录简介
- [BLE--SMP]蓝牙的SMP安全管理简介
- LeetCode----Generate Parentheses
- Android打包的那些事(AndroidStudio & Gradle)
- sicily 6084 Times17
- 3ds Max 插件概述
- 机器学习常见算法分类汇总
- 3 最小BLE应用简介
- poj1001 Exponentiation(JAVA实现)
- CCS中CMD文件解析
- 利用状态机编程思想求解统计英文句子中单词个数问题
- Android Shape自定义纯色圆角按钮
- git 自动部署
- 黑马程序员——基础知识——基本数据类型包装类
- Play framework 2.0 -模板引擎
- 关联数组