敬启者,
I've made an application comprising some standard BLE services and 2 custom services. Based on your SDK's examples everything is functioning 100%. That is, all but one service.
自定义服务1很好,但我已经定义了具有通知的单个特征的自定义服务2。为了确保我没有错过我在SDK中实现了BAS服务的方式,并且我相应地定义并实现了我的自定义服务(128位UUID)。但是,当我在智能手机上使用BLE应用程序时,自定义服务2没有显示具有通知属性的符号。此外,客户端特征配置(UUID 0x2902)不显示。
如果这是一个已知的问题,或者(可能是)我可能做错了什么,你也许会给我一个暗示吗?
Kindest regards,
彼得
设备:

你好developing@clickey.eu.那
在SDK中,我假设您使用的是最新的5.0.4,因此没有执行Custs2配置文件,您将不得不制作一些文件添加,以便获取工作,请尝试遵循下面的链接https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl...。
在这样做后,您应该有一个功能的第二自定义配置文件,以便向该配置文件发送通知,例如使用计时器,只需在回调中设置一个计时器,您可以使用以下代码段来发送数据。
void app_adcval2_timer_cb_handler()
{
Struct Musts2_val_ntf_req * req = ke_msg_alloc_dyn(custs2_val_ntf_req,
task_custs2,
task_app,
custs2_val_ntf_req,
def_cust2_adc_val_1_char_len);
//待采样的ADC值
静态UINT16_T样本;
Sample =(Sample <= 0xFFFF)?(样品+ 1):0;
req-> conhdl = app_env-> conhdl;
req-> handle = cust2_idx_adc_val_1_val;
req-> length = def_cust2_adc_val_1_char_len;
Memcpy(req->值,&sample,def_cust2_adc_val_1_char_len);
KE_MSG_SEND(REQ);
if (ke_state_get(TASK_APP) == APP_CONNECTED)
{
//再次设置它,直到控制特性接收到停止命令
timer2_used = app_easy_timer(APP_PERIPHERAL_CTRL_TIMER_DELAY_2, app_adcval2_timer_cb_handler);
}
}
因此,如果您拥有自定义配置文件并运行,请确保分配通知的消息是使用正确的句柄来更新第二配置文件的特性的正确值。
谢谢mt_dialog.
感谢您的解释,
起初我遵循了关于自定义配置文件的视频教程中给出的信息(在SDK 5.0.4中)。在此解释中,我被告知SDK中的自定义配置文件都实现了。但是,当我基于SDK的模板开始自己的应用程序时,我已经发现了Custs2不存在。所以我早些时候采取了在论坛上提出的“自定义型材 - 多服务”中提出的步骤。这很好,但我的问题谎言.....
在Musts2中,我添加了一个应该是通报的特征。当我启动智能手机 - 应用程序时,通知的符号显示,但它根本没有任何影响。所以,我一直在搜索SDK和示例(如低音),但我似乎无法找到if,我可能应该实现什么来实现它。在低音中,例如,存在消息Bass_Batt_Level_ntf_cfg_ind,但在Custs2中,这不是这种情况。
我知道如何更新特征的值(例如,基于计时器),但在我的理解中,我必须使用像Custs2_Char_ntf_cfg_ind这样的消息来通知系统开始/停止更新特征的值?
一个指向正确的方向是非常nice :-)
彼得
谢谢mt_dialog,
我的问题已经解决了:-)
在一些实验之后,我从SDK示例“BLE_APP_PERITELAL”中复制了功能。现在我可以完美启用/禁用通知!
彼得
你好,
很高兴你找到了它,
根据附加的代码段,向中央发送通知并使用Custs2_val_ntf_req消息以便执行此操作。您可以将Custs1简介作为示例,以实现您想要的内容。顾客2的工作方式与Custs1相同。如果您将第一个自定义配置文件拍摄,您将能够实现第二个自定义配置文件。您将能够在SDK_PROFILES文件夹中找到CUSTS2_VAL_NTF_REQ消息(在keil的文件夹中未导入,您必须从SDK导入它)。
您已从电池配置文件中发布的消息不会发送通知,它在从中央启用配置特性时它将生成它的消息。
谢谢mt_dialog.
谢谢。我觉得肯定会在不久的将来遇到更多“问题”:-)