GATT Server 搭建
基本步骤:1. 定义 service 和 characteristic
1.1 确定UUID,实验时避免重复即可,生产的话参考bluetooth.org已定义的profile
1.2 编写GATT db 接口文件 xx_sever_db.dbi,参考已有的服务
1.3 把xx_sever_db.dbi 文件include 到 sink_gatt_db.db 文件中
2. 注册 service
2.1 sink_gatt_init.c initialiseOptionalServerTasks() 添加服务器初始化代码
2.2 修改注册参数,确定消息处理函数
xx_server->lib_task.handler = xx_server_ext_msg_handler;
xx_server->app_task = appTask;
/* Fill in the registration parameters */
reg_params.start_handle = start_handle;
reg_params.end_handle = end_handle;
reg_params.task = &xx_server->lib_task;
2.3 初始化代码中注册服务器
GattManagerRegisterServer(®_params)
3. 编写消息处理函数
static void xx_server_ext_msg_handler(Task task, MessageId id, Message msg) {
GIASS_T *sk_service = (GIASS_T*)task;
GATT_MANAGER_SERVER_ACCESS_IND_T *access_ind;
switch (id) {
case GATT_MANAGER_SERVER_ACCESS_IND: {
switch (access_ind->handle) {
4. 注意事项
4.1 reg_params.start_handle 和 end_handle 采用 sink_gatt_db.h 中的定义
4.2 xx_server_ext_msg_handler 中 access_ind->handle 使用 从 xx_sever_db.dbi 产生的 .h 中的定义,这两个命名空间是不同的。这就是 init 和access 函数放在不同.c文件的主要原因。
4.3 修改 sink_gatt_db.db 或者 .dbi 文件之后需要修改设备的地址/名字。手机会保存设备上的服务信息,如果设备地址不变的话会产生莫名问题。
详细可以参考 http://blog.csdn.net/wzz4420381/article/details/78359481 謝謝分享有機會試試 smagi 发表于 2018-2-6 20:23
详细可以参考 http://blog.csdn.net/wzz4420381/article/details/78359481
原文的博主? 不是,写了一点发现有博文可以参考,就添点注意事项 我在第2.1的时候初始化后板子无法开机,是怎么回事呢? 我在2.1时因为初始化导致板子无法开机时怎么回事呢? 在2.1时因为初始化导致板子无法开机时怎么回事呢?我的初始化函数时这样的:C:\Users\15544\Desktop\sink初始化.pngC:\Users\15544\Desktop\GATT初始化.png 学习
页:
[1]