NORDIC GATT事件
假设有两个服务,每个服务注册相应事件


注册的事件为ble_dev_cfg_on_ble_evt、ble_lora_cfg_on_ble_evt
当在任何一个服务中发生GATT特征读或写的时候,注册的这两个服务事件都会发生而不是只发生在相应特征项所属的事件
这点在特征项读写权限访问的时候需要注意,因为会在两个服务事件中发生,所以要避免重复回复的问题,否则会导致权限功能异常
{
ble_lora_cfg_t * p_lora_cfg = (ble_lora_cfg_t *)p_context;
{
case BLE_GATTS_EVT_WRITE:
on_write(p_lora_cfg, p_ble_evt);
break;
case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST:
on_read_write_auth(p_lora_cfg, p_ble_evt);
break;
// No implementation needed.
break;
}
}
{
ble_dev_cfg_t * p_dev_cfg = (ble_dev_cfg_t *)p_context;
{
case BLE_GATTS_EVT_WRITE:
on_write(p_dev_cfg, p_ble_evt);
break;
case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST:
on_read_write_auth(p_dev_cfg, p_ble_evt);
break;
// No implementation needed.
break;
}
}
也可以在ble事件中去处理GATT事件而不是在每个服务事件中处理:
{
ret_code_t err_code;
{
case BLE_GATTS_EVT_WRITE:
//处理GATT写事件
break;
case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST:
//处理GATT读写权限请求事件
break;
NORDIC GATT事件的更多相关文章
- JNI详解---从不懂到理解
转载:https://blog.csdn.net/hui12581/article/details/44832651 Chap1:JNI完全手册... 3 Chap2:JNI-百度百科... 11 C ...
- 低功耗蓝牙ATT/GATT/Profile/Service/Characteristic规格解读
什么是蓝牙service和characteristic?到底怎么理解蓝牙profile?ATT和GATT两者如何区分?什么又是attribute?attribute和characteristic的区别 ...
- [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件
第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别 蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为 ...
- (一)GATT Profile和GAP 简介(目前所有的BLE应用都基于GATT,所以也要了解是怎么一回事)-转发
个人大总结:(先后顺序) 1.GAP协议定义多个角色(其中就有中心设备[GATT客户端](唯一)叫主设备||和外围设备[GATT服务端端](多个)也叫从设备). 2.先经过GAP协议,再有GATT协议 ...
- BLE GATT规范中关于UUID与属性的详细解析
1. 角色 除了GAP定义了角色之外,BLE还定义了另外2种角色:GATT服务器和GATT客户端,它们完全独立于GAP的角色.提供数据的设备称为GATT服务器,访问GATT服务器而获得数据的设备称为G ...
- nrf51822-提高nordic ble数据发送速率
讲解2点: 为什么 nordic的4.0协议栈中ble只能发送20字节的应用负载数据. 大量数据发送时如何提高发送速率 1:为何上层应用负载每次最多20字节 首先了解 4.0中链路层的包格式如下: P ...
- 【转】GATT Profile 简介
网上关于讲解 BLE 的内容比较少,看到这篇文章写的非常详细 Introduction to Bluetooth Low Energy,作为 BLE 的入门时介绍是非常合适的.本文主要翻译了一下这篇文 ...
- iOS - GATT Profile 简介
1.引言 现在低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上.GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短 ...
- GATT服务搜索流程(二)
关于bta_dm_cb.p_sec_cback,这里我们之前已经分析过,他就是bte_dm_evt ,最终调用的函数btif_dm_upstreams_evt : static void btif_d ...
随机推荐
- SQL server中获取语句执行时间
在写代码的时候,有时候实现一个功能会有好多个方法,有时候会做一下方法的耗时对比,综合下时间复杂度与空间复杂度,写出最好的代码: 同样,在写一些SQL查询,SQL代码的时候,也希望能写出一个高效一点的查 ...
- mysql安装报错error: Header V3 DSA signature: BAD, key ID
CentOS安装rpm安装MySQL时爆出警告: warning: mysql-community-server-5.7.18-1.el6.x86_64.rpm: Header V3 DSA/SHA1 ...
- cmake编译排除文件夹
在CMakeLists.txt中,要对某些子文件夹全部进行编译则使用 add_subdirectory(examples) 那如果在examples文件夹中建立了某个目录如examples/venv, ...
- springboot-多环境测试
1.application.properties中添加spring.profiles.active=test 2.同级目录下创建application-dev.properties.applicati ...
- 软件测试第2周个人作业:WordCount编码测试
一.Github地址 https://github.com/zhouyubei/WordCount 二.PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning ...
- server 2008 R2 DHCP服务器部署
安装DHCP服务器 和上一篇文章中安装IIS 7.0一样,我们在安装DHCP服务器的时候也要用到Windows Server 2008的服务器安装器. 首先打开服务器管理器,点击开始菜单——>管 ...
- Nginx进程信号管理
CHLD信号:work进程异常退出会给Master进程发送CHLD信号,这时Master进程就知道Worker进程退出了,然后重新起一个Worker进程: TERM信号:退出进程,不优雅: QUIT信 ...
- day31 socket套接字编程
为什么要有套接字编程? 在上节课的学习中,我们学习了OSI七层协议,但是如果每次进行编程时我们都需要一层一层的将各种协议使用在我们的程序中,这样编写程序实在是太麻烦了,所以为了让程序的编写更加的简单, ...
- [转帖]AARRR已是过去式,而RARRA才是更好的增长黑客模型
AARRR已是过去式,而RARRA才是更好的增长黑客模型 管理.该方法论已成为了企业家创业的增长利器.但现在看来,AARRR已是过去式. http://www.woshipm.com/operate/ ...
- SQL Server 下载与安装
1.首先去Microsoft官网下载对应的安装程序,下载地址:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.运行安 ...