跳过主要内容

实现当前时间配置文件

DA14580

5年前

发布的jd@exp-eng.com0点 6个回答
0的问题

在SDK V5.0.3中添加当前时间配置文件时,我需要一些帮助。

我已经阅读了教程-在DA1458x上开发自定义配置文件
http://support.dialog-semiconductor.com/download/file/fid/885

但是,我不想实现sample128配置文件,而是想实现当前的时间配置文件(tipc.c和tipc_task.c)。应用说明非常全面,但已经过时了,因为我们使用的是SDK5 5.0.3版本。我还阅读了整个SDK5软件开发指南。

我所采取的步骤是:

1.从项目ble_examples\ble_app_profile开始
2.在项目的sdk_profiles文件夹中包含以下文件:
一。Tipc.c
b。Tipc_task.c
c。Tipc.h
d。Tipc_task.h
3.在user_profiles_config.h头文件中放置#include "tipc.h"
4.build successful

我能够运行应用程序,但我没有看到BLE当前时间服务,分配的号码0x1805根据Bluetooth.org。附件是我看到的配置文件的截图。我知道上面列出的那些文件中的函数是编译和链接的,因为我可以在它们上设置断点。我不确定在SDK5中还需要采取什么其他步骤来正确实现这个概要文件。如果我遗漏了什么,请告诉我。

附件 大小
Doc8.pdf 249.69 KB

5年前

Gongyu_Dialog -15点

需要添加app层代码发送“TIPS_CREATE_DB_REQ”和“TIPS_ENABLE_REQ”等消息
SDK5不包含“app_modules\src”目录下的相关文件。也许你可以参考“app_bass”。
谢谢

5年前

jd@exp-eng.com 0点

Gongyu,

谢谢你的建议。听起来我需要添加应用程序层代码得到它。但是,您声明SDK5不包含相关文件,也不包含app_bass项目。那么,我应该安装SDK3吗?所有迹象似乎都指向恢复到SDK3,这很好。我看到“教程-在DA1458x上开发自定义配置文件”使用了SDK3。

5年前

Gongyu_Dialog -15点

嗨,Jd
不是app_bass项目。它们是app_bass.c /app_bass_task.c文件。
我的意思是你可以查看这两个文件作为参考。
另外,我上传了一个pdf文档,介绍如何在SDK5中添加客户文件。仔细看,与SDK3相比并没有太大的区别。
您也可以将文件检入http://support.dialog-semiconductor.com/connectivity/product/da14580?qt..。

只在DA14580 /软件和工具/教程下的客户支持网站上

附件 大小
Training_02_custom_profile_example_v1.0.pdf 832.67 KB

5年前

jd@exp-eng.com 0点

感谢附件中的培训文档。它非常有用。我相信我几乎有一切我需要做我自己的自定义配置文件。我确实对一般的特征写处理程序有疑问,希望获得更多关于custs1_task.c和头文件的信息。基本上,我将能够写入自定义特征值,并在特征值被写入时执行回调/处理程序,并获取新写入的值并将其发送到I2C。

例如,我看到custs1_task.c中定义的默认状态处理程序:

//默认状态处理器定义
Const struct ke_msg_handler custs1_connected[] =

(ke_msg_func_t) gattc_write_cmd_ind_handler}, {GATTC_WRITE_CMD_IND
(ke_msg_func_t) gattc_cmp_evt_handler}, {GATTC_CMP_EVT
(ke_msg_func_t) custs1_val_ntf_req_handler}, {CUSTS1_VAL_NTF_REQ
(ke_msg_func_t) custs1_val_set_req_handler}, {CUSTS1_VAL_SET_REQ
(ke_msg_func_t) custs1_val_ind_req_handler}, {CUSTS1_VAL_IND_REQ
};

可以编辑这些文件吗?如果我的思路正确,请告诉我。

再次感谢,

5年前

Gongyu_Dialog -15点

函数“gattc_write_cmd_ind_handler”已经完成了属性写入的工作。
但如果您想做额外的工作,我可能更喜欢在函数"user_catch_rest_hndl"中添加相关代码。

Static const catch_rest_event_func_t app_process_catch_rest_cb = (catch_rest_event_func_t)user_catch_rest_hndl;

Void user_catch_rest_hndl(ke_msg_id_t const msgid, Void const *param,ke_task_id_t const dest_id,ke_task_id_t const src_id)

开关(是否)

案例CUSTS1_VAL_WRITE_IND:

Struct custs1_val_write_ind const *msg_param = (Struct custs1_val_write_ind const *)(param);
开关(msg_param - >处理)

case CUST_IDX_SENSOR_PERIOD_VAL: //example——特定属性

//在这里添加特定属性的代码
打破;

......

默认值:
打破;

5年前

jd@exp-eng.com 0点

Gongyu,

这个工作太棒了!谢谢你!