我使用的是SDK 5.0.3, DA14580DEVKIT和14583子板。
我想测量温度,所以我使用htpt(健康温度计档案温度计)档案。在以后的状态中,我将真正测量温度,但现在的数据可能是一个常量。
我已经在“user_profiles.config.h”中包含了#include " httpt .h"。
我看到“htpt.c”代码嵌入在keil调试器中。
在论坛上我读了http://support.dialog-semicondiondiond.com/cant-not-find-taskappht-htpt-pro ...关于“您必须创建app_htc_task和app_htc以便与配置文件进行交互”。这对我来说是不够的信息。我已经阅读了UM-B-051和UM-B-050 PDF文件。
阅读论坛我明白需要一个温度计项目示例。对话您可以提供一个例子。因为引用SDK3不适合我。
谢谢
关键词:
设备:
嗨罗纳德,
SDK3中的一些应用层配置文件如温度计不是100%功能,并且它们需要一些修改,不幸的是,没有任何官方示例如何实现,端口配置文件或任何现有的参考设计,可以显示实现方式实现的方式温度计简介,我会尝试提供一些指导方针,以便从SDK3移植到SDK5,我希望我不忘记任何东西,因为这个过程有点长。您可以从空白的.c文件开始,然后尝试根据另一个配置文件示例(设备信息服务的电池)或者将AllReady现有配置文件的端口实现两个App_ht_task.c / h和app_ht.c / h。拍摄App_ht_task来自SDK3的.c / h和app_ht.c / h自结而代有应用程序配置文件的实现。以下步骤描述了对现有实现应用修改的第二种选项的一部分。
1)从SRC / Modules / app / src / app_profiles / ht的目录中取自SDK3的配置文件实现,并将它们放在应用程序配置文件目录中
SDK5项目。
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)将TASK_DESC_APP_HT中的app_ht.c文件中的APP_HT_STATE_MAX和APP_HT_IDX_MAX修改为HTPT_STATE_MAX和HTPT_IDX_MAX。
d)在app_ht_enable_prf()函数上的文件app_ht.c文件中删除ke_state_set(task_app_ht,app_ht_connected)。
e)在app_htpt_temp_send()函数中,将指令req-> conhdl = app_env.conhdl更改为req-> conhdl = app_env [0] .conhdl。
f)在app_ht_task.c中删除app_display.h文件。
g)应在App_ht_Task.c文件中创建回调和相应的消息,也应在函数中创建函数。请检查以下代码:
static const struct ke_msg_handler app_htpt_process_handlers [] =
{
(ke_msg_func_t) htpt_create_db_cfm_handler}, {HTPT_CREATE_DB_CFM
(ke_msg_func_t) htpt_disable_ind_handler}, {HTPT_DISABLE_IND
{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)
{
返回(app_std_process_event(msgs,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)更改为if (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)&&(!consuldure_dlg_htpt))
(process_event_func_t)app_htpt_process_handler,
# endif
通过使用AllReady现有应用程序配置文件实现为例,它将更容易通过该过程。
由于MT_dialog
谢谢你提供的详情,
我将遵循描述
罗纳德。
你好,
我们采取了Prox应用程序来修改。
很明显,任务Task_App_Ht在SDK5中的Task_Apd和Task_htpt中拆分。在很多不是用户SDK文件中必须更改。
就我个人而言,我觉得这位顾客很不友好。
在“htpt_enable_req_handler”中
//转到连接状态
ke_state_set(task_htpt,htpt_connected);
执行。
Nordic Android应用程序“健康温度计”可以是开放的。这个应用程序将保持联系。但不会显示任何温度。
从未调用“app_ht.c”中的“app_htpt_temp_send”函数。
以下代码在“app_default_handlers.c”中添加
#if ble_ht_thermom.
app_ht_init ();
# endif
以下代码在“app_entry_point.c”中添加
#if((ble_ht_thermomomomomom)&&(!exclude_dlg_bass))
(process_event_func_t)app_htpt_process_handler,
# endif
在" app.c "中添加了以下代码
#if ble_ht_thermom.
{task_htpt,app_ht_create_db_send,app_ht_enable_prf},
# endif
有什么建议么?
嗨罗纳德,
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
你好,
我想知道SDK 5.0.3和SDK3之间的主要区别。
SDK3有更多关于温度测量的例子,是否需要改到SDK 5 ?
嗨Z20121202038,
SDK5具有更多API,更容易开始。对话框建议它为新项目开发。
由于MT_dialog
我有一些类似的问题,但相对于我使用DA14580基本工具包使用的SDK5。我想添加一个健康温度计profile到BLE barebones示例的设备信息服务,我发现在用户手册UM-B-050和-051中没有明确如何配置这个。从查看配置文件下的SDK文件-> http它似乎是一个健康温度计服务器,你需要htpc和htpt任务。这是正确的吗?如果我只是添加htpc,h和http .h到我的user_profiles_config.h文件,我得到构建错误:
\ out_580 \ ble_app_bbt_580。axf: Error: L6218E: Undefined symbol htpc_init (reference from prf_utils.o). axf: Error: L6218E: Undefined symbol htpc_init (reference from prf_utils.o)。
。\ out_580 \ ble_app_bbt_580.axf:错误:l6218e:未定义的符号htpt_init(从prf_utils.o引用)。
没有足够的信息来生成Symdefs文件。
没有足够的信息来生成反馈文件。
没有足够的信息列出图像符号。
所以显然仍然存在一些缺点。我不确定猜测来自visl文件的情况,我应该将与htp相关的文件添加到sdk_profiles文件夹:htpc.c,htpc_task.c,htpt.c,htpt_task.c。现在我至少没有错误。我想知道是否有一些需要在user_profiles_config.h文件中设置的配置参数,例如为淡紫色制作?我还需要创建一个app_htpt.c,app_htpt_task.c,app_htpc.c和app_htpc_task.c,如上所述?在某个地方有这个指导性吗?
嗨Max44,
在SDK5中,不包括健康温度计曲线,在SDK3中,这些轮廓包括在内,但它们并不完全运行,并且它们需要一些修改以便运行。为了在项目中拥有HTPT服务,您需要拥有HTPC和HTPC_TASK,因为这些文件是将构建数据库并与您的应用程序交互的文件。请按照上面的描述如何实现HTPT配置文件。
由于MT_dialog
谢谢……我认为。这是个坏消息。上面实现健康温度计配置文件的过程看起来很难看,但我将尝试一下。
是否有完全运行和测试的标准BLE配置文件(除了设计信息服务之外)我可以用作参考示例?主要用于设置任务,数据库和消息处理程序。
嗨Max44,
抱歉,没有应用健康温度计的应用程序,关于其他配置文件,您可以检查接近,电池和查找我的个人资料,那些应该提供足够的指导,以正确地保护温度计档案。您可以在Prox_reporter项目中找到这些配置文件的实现。
由于MT_dialog