XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX 作 者:文化人
XX 联系方式:(或进群:471144274)
XX 版权声明:原创文章,欢迎评论和转载~转载时能告诉我一声就最好了
XX 要说的话:作者水平有限,难免有不足之处,恳请指正!
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
参考链接:CSR8675学习笔记:新建一个GATT server_wzz4420381的博客-CSDN博客_gatt server
1、tools\include\profiles\BlueLab-7.0.3-Release路径下,编写.dbi和.h
2、
.h文件
#define UUID_EXAMPLE_SERVER 0xFF00
#define UUID_EXAMPLE_SERVER_TO_CLIENT 0xFF01
.dbi文件
#ifndef __GATT_EXAMPLE_SERVER_DB_DBI__
#define __GATT_EXAMPLE_SERVER_DB_DBI__
#include "gatt_example_server_uuids.h"
/*Primary service declaration of example service*/
primary_service{
uuid:UUID_EXAMPLE_SERVER,
name:"EXAMPLE_SERVER",
/*example level characteristic*/
characteristic{
uuid :UUID_EXAMPLE_SERVER_TO_CLIENT,
name :"EXAMPLE_SERVER_TO_CLIENT",
flags :[FLAG_IRQ],
properties :[write, notify],
value :0x0,
client_config
{
name : "EXAMPLE_SERVER_TO_CLIENT_CHAR_CFG",
flags : [ FLAG_IRQ ]
}
}
},
#endif /*__GATT_EXAMPLE_SERVER_DB_DBI__*/
3、
.h文件
#define UUID_EXAMPLE_SERVER 0xFF00
#define UUID_EXAMPLE_SERVER_TO_CLIENT 0xFF01
#define UUID_EXAMPLE_CLIENT_TO_SERVER 0xFF02
.dbi文件
#ifndef __GATT_EXAMPLE_SERVER_DB_DBI__
#define __GATT_EXAMPLE_SERVER_DB_DBI__
#include "gatt_example_server_uuids.h"
/*Primary service declaration of example service*/
primary_service{
uuid:UUID_EXAMPLE_SERVER,
name:"EXAMPLE_SERVER",
/*example level characteristic*/
characteristic{
uuid :UUID_EXAMPLE_SERVER_TO_CLIENT,
name :"EXAMPLE_SERVER_TO_CLIENT",
flags :[FLAG_IRQ],
properties :[notify],
size_value :0x14,
client_config
{
name : "EXAMPLE_SERVER_TO_CLIENT_CHAR_CFG",
flags : [ FLAG_IRQ ]
}
},
characteristic{
uuid :UUID_EXAMPLE_CLIENT_TO_SERVER,
name :"EXAMPLE_CLIENT_TO_SERVER",
flags :[FLAG_IRQ],
properties :[write_cmd],
size_value :0x14
}
},
#endif /*__GATT_EXAMPLE_SERVER_DB_DBI__*/
4、在sink_gatt_db.db中添加 #include "gatt_example_server_db.dbi";
5、编译即可,会生成sink_gatt_db.c和sink_gatt_db.h。
6、连接时,会访问CCC等界面显示信息,协议栈上报事件GATT_MANAGER_SERVER_ACCESS_IND会进入sinkGattManagerMsgHandler,原生代码通用GATT这里是不处理的,如下图,要修改为:gatt_status_success
修改为下面这样,同时添加GATT ind函数handleMGattAccessInd,如下图:
然后实现该接口,同时实现write、read接口,如下图:
7、GATT发送数据的接口为: