Health Thermometer example

11个帖子/ 0新
最后一篇
ronald
离线
最后一次露面:4年3个月前
加入:2016-03-03 15:01
Health Thermometer example

我正在使用SDK 5.0.3,Da14580Devkit,14583子板。
我想测量温度,所以我使用HTPT(健康温度计型材温度计)轮廓。在稍后的状态下,我将真正测量温度,但现在数据可能是一个常数。
我在“user_profiles.config.h”中包含#include“htpt.h”。

我see that the “htpt.c” code is embedded in the Keil debugger.

在论坛上我读了http://support.dialog-semiconductor.com/cant-not-find-taskappht-htpt-pro...关于“您必须创建app_htc_task和app_htc以便与配置文件进行交互”。这对我来说是不够的信息。我已经阅读了UM-B-051和UM-B-050 ​​PDF文件。
阅读论坛我明白需要一个温度计项目示例。对话您可以提供一个例子。因为引用SDK3不适合我。

谢谢

Device:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨罗纳德,

嗨罗纳德,

Some of the application layer profiles in SDK3 like the thermometer are not 100% functional and they need some modifications, unfortunatelly there isn't any official example how to implement, port a profile or any existing reference design that can show the way of implementing the thermometer profile, i will try to provide some guidelines in order to port this from SDK3 to SDK5, i hope i dont forget anything since the process is a bit long. You can either start from blank .c files and try to implement the two app_ht_task.c/h and app_ht.c/h based on another profile example (the battery of the device information service) or port the allready existing profile and take the app_ht_task.c/h and app_ht.c/h from SDK3 which allready have the implementation of the application profile. The following steps describe a portion of the second option of applying modification to the existing implementation.

1) Take from the SDK3 the profile implementation from the directory src/modules/app/src/app_profiles/ht and place them to the application profile directory of the
SDK5 project.

2)打开keil并将健康温度计文件放在keil目录树的sdk_app文件夹中,还包括corresposnding头文件。

3)您必须修改app_ht.c / h和app_ht_task.c / h文件,其中一些关键更改是:

a)您必须替换BLE_APP_HT并设置新的定义BLE_HT_THERMOM,以便在所有必需文件中进行适当的夹杂物。

b)您必须将Task_App_ht替换为Task_App或Task_htpt到相应的任务,请检查RW BLE健康温度计
配置文件界面规范,以便清楚了解,您还可以参考其他配置文件实现和相应的回调
得到它。此外,还应更改相应任务的状态(例如而不是调用ke_state_set(task_app_ht,app_ht_idle);应该
更改为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) In the file app_ht.c file at the app_ht_enable_prf() function remove the ke_state_set(TASK_APP_HT, APP_HT_CONNECTED).

e) In the app_htpt_temp_send() function change the instruction req->conhdl = app_env.conhdl to req->conhdl = app_env[0].conhdl.

f) In the app_ht_task.c remove the app_display.h file.

g) The callbacks and the corresponding messages should be created in the app_ht_task.c file and also the function that will handle those messages. Please check the below snippet:

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_HT_TIMER, (ke_msg_func_t)app_ht_timer_handler},
};

枚举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,
enum ke_msg_status_tag *msg_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)为了在初始化期间通过应用程序调用2个基本函数,您将必须在user_prf_funcs []下一行{task_htpt,app_ht_create_db_send,app_ht_enable_prf}中添加,并且您必须将app_htpt_process_handler设置为从温度计任务中获取的消息的处理程序,以便在App_entry_point.c中添加以下代码段(以及其他配置文件处理处理程序)。

#if ((BLE_HT_THERMOM) && (!EXCLUDE_DLG_HTPT))
(process_event_func_t)app_htpt_process_handler,
#万一

By using the allready existing application profile implementations as examples it will be easier to get through the process.

谢谢mt_dialog.

ronald
离线
最后一次露面:4年3个月前
加入:2016-03-03 15:01
谢谢你提供的详情,

谢谢你提供的详情,
我will follow the description

罗纳德

ronald
离线
最后一次露面:4年3个月前
加入:2016-03-03 15:01
你好,

你好,

我们采取了Prox应用程序来修改。
很明显,任务Task_App_Ht在SDK5中的Task_Apd和Task_htpt中拆分。在很多不是用户SDK文件中必须更改。
就个人而言,我发现这位客户不友好。

我n “htpt_enable_req_handler”
// Go to connected state
ke_state_set(TASK_HTPT, HTPT_CONNECTED);
is executed.

Nordic Android应用程序“健康温度计”可以是开放的。此应用程序将保持联系。但不会显示任何温度。

从未调用“app_ht.c”中的“app_htpt_temp_send”函数。

The following code is added in “app_default_handlers.c”
#if ble_ht_thermom.
app_ht_init();
#万一

以下代码在“app_entry_point.c”中添加
#if((ble_ht_thermomomomomom)&&(!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},
#万一

有什么建议么?

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨罗纳德,

嗨罗纳德,

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.

Z20121202038
离线
最后一次露面:3 years 11 months ago
加入:2016-03-30 12:51
你好,

你好,
我想知道SDK 5.0.3和SDK3之间的主要区别。
SDK3有关于测量温度的更多例子,因此它是必不可少的改为SDK 5?

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨Z20121202038,

嗨Z20121202038,

SDK5具有更多API,更容易开始。对话框建议它为新项目开发。

谢谢mt_dialog.

Max44
离线
最后一次露面:9 months 1 week ago
加入:2016-02-08 15:58
我有一些类似的问题

我有一些类似的问题,但相对于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:错误:l6218e:未定义的符号htpt_init(从prf_utils.o引用)。
没有足够的信息来生成Symdefs文件。
Not enough information to produce a FEEDBACK file.
没有足够的信息来列出图像符号。

所以显然仍有一些失踪。我wasn't sure what but guessed that from the diss files present I should add files relating to htp to the sdk_profiles folder: htpc.c, htpc_task.c, htpt.c, htpt_task.c. Now I at least get a build without errors. I'm wondering if there are some configuration parameters that need to be set in the user_profiles_config.h file such as were made for the diss? And do I also need to create an app_htpt.c, app_htpt_task.c,app_htpc.c, and app_htpc_task.c as mentioned above? Are there guidlines for this somewhere?

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨max44,

嗨max44,

在SDK5中,不包括健康温度计曲线,在SDK3中,这些轮廓包括在内,但它们并不完全运行,并且它们需要一些修改以便运行。为了在项目中拥有HTPT服务,您需要拥有HTPC和HTPC_TASK,因为这些文件是将构建数据库并与您的应用程序交互的文件。请按照上面的描述如何实现HTPT配置文件。

谢谢mt_dialog.

Max44
离线
最后一次露面:9 months 1 week ago
加入:2016-02-08 15:58
谢谢......我想。这是

谢谢......我想。这是坏消息。以上实施健康温度计配置文件的程序看起来很丑陋,但我会尝试。

我s there a fully operational and tested standard BLE profile (other than the Design Information Service) that I can use as a reference example? Primarily for setting up tasks, databases, and message handlers.

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨max44,

嗨max44,

Sorry but there is no application implementation for the Health Thermometer, about the other profiles you can check the proximity, the battery, and the find me profile, those should provide enough guidance to implememnt the thermometer profile properly. You can find an implementation of those profiles in the prox_reporter project.

谢谢mt_dialog.

主题锁定