跳过主要内容

客户BLE应用

DA14581

5年前

发布的Cosmin0点 6个回答
0的问题

你好,对话框,

我目前正在使用对话芯片da14581和sdk 5开发一个BLE应用程序。

我设法使用其中一个芯片作为电池服务器,使用sdk的配置文件。因此,我可以使用移动应用程序(来自android的BlueLoupe)连接它,读取电池电量。这部分没有问题。
但是,我在配置另一个芯片作为电池客户端时遇到了困难。我可以扫描并连接到服务器芯片,但我无法启动基本配置文件。我发现只调用了basc_init,而没有调用来自basc_c或basc_task.c的其他函数。
我已经将BLE_BAS_CLIENT定义为1,并在user_profiles_config.h中包含了basc.h

你能帮忙吗?

谢谢你!
Cosmin

5年前

MT_dialog -30点

嗨Cosmin,

您必须添加app_basc_task.c和app_basc_task.c以及其他头文件。通过在user_profiles_config.h中包含basc.h文件,您将设置BLE_BAS_CLIENT定义。之后尝试编译TASK_APP_BASC并将其更改为TASK_APP,因为编译器会抱怨定义不存在。成功添加客户端配置文件后,必须调用app_basc_init()来初始化应用程序配置文件并开始扫描。当你的设备找到广告客户并连接到它时,在连接完成后,你应该调用app_basc_enable_prf()函数来启用配置文件和你的设备开始寻找它想要的服务。

由于MT_dialog

5年前

Cosmin 0点

你好,太,

我已经做了你告诉我的,但如果我使用TASK_APP代替TASK_APP_BASC,我的设备不会跳转回调函数扫描(.app_on_set_dev_config_complete),所以我不能再连接到设备。app_basc_init在设备初始化时被调用。

什么好主意吗?

谢谢你!
Cosmin

5年前

Cosmin 0点

好吧……我把它修好了。部分。
我在KE_TASK_TYPE enum中创建了TASK_APP_BASC,其值为54。现在我建立了连接,并且没有将TASK_APP_BASC修改为TASK_APP。但仍然有一个问题。
它不属于正常连接。basc_enable_req_handler不应该被PRF_CON_NORMAL再次调用吗?如果可以,我应该在哪里打电话?我可以看到它的连接状态,但接收电池值的功能没有被调用。

谢谢。

5年前

MT_dialog -30点

嗨Cosmin,

应该在default_app_on_init()中调用app_basc_init()。请试试。电池客户端的任务是TASK_BASC,使用这个,不要在KE_TASK_TYPE中放置另一个任务。我不认为你应该重新启用电池配置文件第二次,正常的连接应该发出时,客户已经在第一次连接中发现了设备的特性,并已经与设备绑定。因为要保持连接,所以PRF_CON_NORMAL就足够了(这也是已经实现的概要文件在接近示例的监视器的外部应用程序中所做的——app_proxm_enale, app_disc_enable)。亚博国际官网平台网址你也可以查看RW-BLE_PRF-BAS_IS.pdf,了解更多关于基本配置文件的信息。如果你想从电池服务接收值,你必须启用通知从你的设备。

由于MT_dialog

5年前

Cosmin 0点

你好,太,

我已经把它修好了。我决定不使用app_basc和app_basc_task。我创建了TASK_BASC和任务描述TASK_DESC_BASC从basc
连接之后,我调用basc_enable_req并将任务状态设置为basc_discovery。我甚至在发送请求后读取了电池电量。

苏,一切都很顺利
谢谢你的帮助。
Cosmin

5年前

MT_dialog -30点

嗨Cosmin,

很高兴它成功了,谢谢你的暗示。

BR MT_dialog