我正在使用SDK 5.0.3,Da14580Devkit,14583子板。
我想测量温度,所以我使用HTPT(健康温度计型材温度计)轮廓。在稍后的状态下,我将真正测量温度,但现在数据可能是一个常数。
我在“user_profiles.config.h”中包含#include“htpt.h”。
我看到“htpt.c”代码嵌入到Keil调试器中。
In the forum I readhttp://support.dialog-semiconductor.com/cant-not-find-taskappht-htpt-pro...about “You have to create the the app_htc_task and app_htc in order to interact with the profile”. This is not enough information for me to work with. I have read the UM-B-051 and the UM-B-050 pdf documents.
Reading the forum I understand that there is a need for a thermometer project example. Dialog Could you please provide an example. Because refering to SDK3 is not working for me.
thanks
设备:
Hi ronald,
SDK3中的一些应用层配置文件(如温度计)不是100%功能性的,它们需要一些修改,不幸的是,没有任何官方的示例如何实现、移植配置文件或任何现有的参考设计可以显示实现温度计配置文件的方法,我将尝试提供一些指导,以便将这个从SDK3移植到SDK5,我希望我不要忘记任何事情,因为这个过程有点长。您可以从blank.c文件开始,根据另一个配置文件示例(设备信息服务的电池)尝试实现两个app\u ht\u task.c/h和app\u ht.c/h,或者移植allready现有配置文件,并从SDK3获取app\u ht\u task.c/h和app\u ht.c/h,这两个配置文件allready具有应用程序配置文件的实现。以下步骤描述了将修改应用于现有实现的第二个选项的一部分。
1) 从SDK3中获取src/modules/app/src/app\u profiles/ht目录中的概要文件实现,并将它们放置到
SDK5项目。
2) Open keil and place the health thermometer files in the sdk_app folder of the keil directory tree also include the corresposnding header files.
3) You will have to modify the app_ht.c/h and app_ht_task.c/h files, some of the key changes are:
a) You will have to replace the BLE_APP_HT and set the new definition BLE_HT_THERMOM in order for the proper inclusions to take place in all the neccesary files.
b)您必须将Task_App_ht替换为Task_App或Task_htpt到相应的任务,请检查RW BLE健康温度计
Profile Interface Specification in order to get a clear understanding also you can refer to other profile implementation and the corresponding callbacks in order to
得到它。此外,还应更改相应任务的状态(例如而不是调用ke_state_set(task_app_ht,app_ht_idle);应该
be changed to ke_state_set(TASK_HTPT, HTPT_IDLE);)
c)将App_ht_state_max和app_ht_idx_max更改为htpt_state_max,在Task_desc_app_ht中的app_ht.c文件中的htpt_idx_max,无论在哪里发生两个定义。
d) 在app\u ht.c文件中的app\u ht enable\u prf()函数中,删除ke\u state\u集(TASK\u app\u ht,app\u ht\u CONNECTED)。
e) 在app\u htpt\u temp\u send()函数中,将指令req->conhdl=app\u env.conhdl更改为req->conhdl=app\u env[0].conhdl。
f) 在app\u ht\u task.c中删除app\u display.h文件。
g) 回调和相应的消息应该在app\u ht\u task.c文件以及处理这些消息的函数中创建。请检查以下代码段:
static const struct ke_msg_handler app_htpt_process_handlers[]=
{
{htpt_create_db_cfm,(ke_msg_func_t)htpt_create_db_cfm_handler},
{htpt_disable_ind,(ke_msg_func_t)htpt_disable_ind_handler},
{HTPT_MEAS_INTV_CHG_IND, (ke_msg_func_t)htpt_meas_intv_chg_ind_handler},
{APP\u HT\u TIMER,(ke\u msg\u func\t)APP\u HT\u TIMER\u handler},
};
enum process_event_response app_htpt_process_handler (ke_msg_id_t const msgid,
void const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id,
枚举ke\u msg\u status\u tag*msg\u ret)
{
return(app\ std\ process\ event(msgid,param,src\ id,dest\ id,msg\ ret,app\ htpt\ process\ handlers,
sizeof(app_htpt_process_handlers)/ sizeof(struct ke_msg_handler));
}
h)在htpt_create_db_cfm_handler()中将if(ke_state_get(dest_id)== app_ht_disabled)更改为(ke_state_get(dest_id)== app_db_init)以便在您将获得确认以创建数据库时接收正确的确认。
i) In order to get the 2 basic functions to be invoked by the application during the initialization you will have to add in the user_prf_funcs[] the next line {TASK_HTPT, app_ht_create_db_send, app_ht_enable_prf}, and you will have to set the app_htpt_process_handler as the handler for the messages that will come from the thermometer TASK, in order to do this add the below snippets in the app_entry_point.c (along with the other profile process handlers).
#如果((BLE\u HT\u THERMOM)&&(!不包括(DLG(HTPT))
(process_event_func_t)app_htpt_process_handler,
#万一
通过使用allready现有的应用程序概要文件实现作为示例,将更容易完成该过程。
谢谢mt_dialog.
thanks for the information,
我会按照描述去做
罗纳德
Hi,
We took the prox app to modify.
It became clear that the tasks TASK_APP_HT is split in TASK_APP and TASK_HTPT in SDK5. In a lot of not user SDK files changes had to be made.
就个人而言,我发现这位客户不友好。
在“htpt\u enable\u req\u handler”中
//转到连接状态
keu state\u set(任务\u HTPT,HTPT\u已连接);
已执行。
北欧Android应用的“健康温度计”n be openend. This app will stay connected. But will not show any temperature.
The “app_htpt_temp_send” functions in “app_ht.c” is never called.
在“app\u default\u handlers.c”中添加了以下代码
#if BLE_HT_THERMOM
app_ht_init();
#万一
The following code is added in “app_entry_point.c”
#if ((BLE_HT_THERMOM) && (!EXCLUDE_DLG_BASS))
(process_event_func_t)app_htpt_process_handler,
#万一
以下代码在“app.c”中添加
#if BLE_HT_THERMOM
{TASK_HTPT, app_ht_create_db_send, app_ht_enable_prf},
#万一
Any suggestions?
Hi ronald,
SDK3中的标准配置文件不起作用,并且需要一些修改以便操作,它们已被放置在SDK3中,以便充当用户实现中的示例,并且由于它们不包括在所包括的设计中。在SDK作为参考。关于您的实现,您应该可以使用上述修改。现在,您没有在App_ht_create_db_send中获取新的测量值的事实,如果您离开它,那么您应该支持服务所需的所有可选功能,这意味着间隔特征是可写的。新测量由计时器(App_ht_timer msg)以稳定间隔触发。当用户写入间隔特征时,将设置特定的计时器。在编写app_ht_meas_intv_min和app_ht_meas_intv_max之间的值时,您应该能够获取通知或指示。如果您在第一次尝试写入该特性时,您的命令将被拒绝使用不足的身份验证错误(因为可写特性是需要身份验证),并且您的Android应启动绑定过程(确保CFG_APP_Security是在da1458x_config_basic.h文件中定义),在绑定完成之后,您将能够写入该特征。成功写后,您应该收到通知/指示取决于您的配置有关温度测量或中间温度的配置。
如果您在手机上没有任何数据,可以使用断点调试问题,请检查写命令后,您发送htpt_meas_intv_chg_ind(从gattc_write_cmd_ind_handler),并且相应的处理程序称为htpt_meas_intv_chg_ind_handler(),然后在处理程序中检查ke_timer_set(app_ht_timer,....)已达到。同样在ke_timer_set(app_ht_timer,dest_id)中,确保在计时器经过的是Task_App(ID 0x32)时将通知的任务,并检查当时间经过的时间后收到计时器的处理程序。
谢谢mt_dialog.
Hi,
I want to know the main difference between the SDK 5.0.3 and SDK3 .
SDK3有关于测量温度的更多例子,因此它是必不可少的改为SDK 5?
Hi z20121202038,
The SDK5 has more apis and its more easy to get started with. Dialog recommend's it for new project development.
谢谢mt_dialog.
我有一些类似的问题,但相对于SDK5我正在使用DA14580基本套件。我想向BLE Barebones示例的设备信息服务添加健康温度计档案,我发现用户手册UM-B-050和-051完全如何配置此操作。从配置文件下查看SDK文件 - > HTP似乎是一个健康温度计服务器,您需要HTPC和HTPT任务。这样对吗?如果我只添加包括htpc,h和htpt.h给我的user_profiles_config.h文件我得到构建错误:
。\ out_580 \ ble_app_bbt_580.axf:错误:l6218e:未定义的符号htpc_init(从prf_utils.o引用)。
.\out_580\ble_app_bbt_580.axf: Error: L6218E: Undefined symbol htpt_init (referred from prf_utils.o).
Not enough information to produce a SYMDEFs file.
信息不足,无法生成反馈文件。
没有足够的信息来列出图像符号。
所以很明显还是少了些什么。我不知道是什么,但我猜测,从diss文件目前我应该添加有关htp的sdk\u配置文件文件夹:htpc.c,htpc\u任务.c,htpt.c,htpt\u任务.c。现在我至少得到了一个没有错误的构建。我想知道是否有一些配置参数需要在user\u profiles\u config.h文件中设置,比如为diss设置的配置参数?我是否还需要创建一个app\u htpt.c、app\u htpt\u task.c、app\u htpc.c和app\u htpc\u task.c,如上所述?有什么指南吗?
嗨max44,
In the SDK5 the Health thermometer profile is not included, in the SDK3 those profiles were included but they were not fully operational and they needed some modifications in order to operate. In order to have the HTPT service in your project you need to have the htpc and htpc_task, since those are the files that will build the database and interact with your application. Please follow the above description on how to implement the HTPT profile.
谢谢mt_dialog.
谢谢......我想。这是坏消息。以上实施健康温度计配置文件的程序看起来很丑陋,但我会尝试。
是否有一个完全可操作且经过测试的标准BLE概要文件(设计信息服务除外)可以作为参考示例?主要用于设置任务、数据库和消息处理程序。
嗨max44,
抱歉,没有健康温度计的应用程序实现,关于其他配置文件,您可以检查接近度、电池和“找到我”配置文件,这些应该提供足够的指导来正确实现温度计配置文件。您可以在proxèu reporter项目中找到这些概要文件的实现。
谢谢mt_dialog.