你好,
我对DA14580和它的环境是新的。我已经购买了基本的开发工具包开始。有人能告诉我从哪里开始,这样我就可以在短时间内有很好的实践经验吗?就像-
1. Code flow - Sequence of Execution i.e how the code executes after executing system_init() function in main_func()?
2. Where various BLE parameters are initialized like advertisement interval, type of advertisement, advertising data, scan response data etc.?
3. How can I make the device advertise continuously and start advertise after disconnect?
4如何将角色从外围设备切换到中心设备,反之亦然?
Also, it would be great if some one can let me know the list of documents that I need to refer in sequence to understand the development environment.
感谢您的快速回复。
Thanks,
数码摄像
Device:
您好!数码摄像,
您可以从SDK中的示例开始。您可以先看一看邻近性示例,然后看一看裸体示例(仅实现diss配置文件,仅广告字符串操作),然后再看一看自定义配置文件示例(ble\u app\u peripheral和ble app\u profile)。您还可以查看新SDK UM-B-050和UM-B-051的文档。最后你可以在论坛上搜索你的大部分问题都已经在网站上得到了解答。
谢谢你的对话
感谢您的回复!
实际上,我目前正在遵循UM-B-015软件体系结构7.0文档。这里,在第6节中,用邻近报告器的示例说明系统启动和系统初始化顺序。但是我认为它没有更新,因为他们在文档中提到的许多函数在应用程序代码中都不存在!!因此,我仍在努力找出设备广告从何处开始,广告参数在何处定义。你能帮我一下吗?
It would be great if you can quickly help me with code execution sequence from main_func().
此外,我有基本的开发工具包,我编程它与接近记者项目。所以我可以在Nexus5手机的BT设置屏幕中发现DIALOG-PRXR设备,但我无法使用BLE扫描仪应用程序发现它。为什么会这样?
Thanks,
达瓦尔
您好!数码摄像,
因为您使用的是sdk5,所以唯一可用的文档是我在上一篇文章中提到的,您正在阅读的文档是基于sdk3的。另外,为了取消对执行流和睡眠机制的理解,我建议您检查UM-B-006睡眠模式配置。在邻近报告器中,您可以在第98行的user\u config.h文件中配置广告。一旦创建了数据库,播发就开始了,这意味着\u db \u ini \u complete()上的默认\u app \u将调用默认播发操作。默认的广告操作可以在用户\回调\配置h中配置。对于主功能,请检查嗯-B-006来了解一下。关于发布的发现可能是应用程序或设备问题,仅供参考,我可以用BLE扫描仪跟踪邻近报告器,您尝试过其他应用程序吗?
谢谢你的对话
您好!MT_Dialog,
谢谢你的回复!
所以,除了UM-B-050和051之外,sdk5没有其他文档,我应该按照这些文档来理解环境,对吗?
Yes, I have tried to discover the device using nRF Master Control Panel(BLE) application, but it was also not able to discover the device. Let me explain you the setup:
1. I have DA14580DEVKT-B kit with me and it is powered by the USB cable that is connected to my laptop.
2我在我的android设备上安装了BLE扫描仪应用程序,它支持BLE,并且我能够发现并连接到其他支持BLE的设备,比如健身跟踪器。奇怪的是设备“DIALOG-PRXR”是在BT设置中发现的,但在应用程序中却没有发现。雷竞技安卓下载
三。我还尝试了“ble\u app\u peripheral”应用程序,但结果相同。
Thanks,
数码摄像
您好!数码摄像,
就文件而言,是的,这两个是SDK5的唯一文件,但由于它是基于SDK3的,基本功能或多或少是相同的。例如,为了理解睡眠的概念,应该阅读描述睡眠功能的UM-B-006文档。关于应用程序,您是否尝试过使用其他手机、设备?雷竞技安卓下载
谢谢你的对话
您好!MT_Dialog,
谢谢你的回复。
我在手机上安装了BLE-Checker应用程序,它说我的手机支持BLE。另一件事是,我可以连接到我的手机上使用BLE扫描仪应用程序的其他BLE设备,但我甚至无法发现设备有接近报告固件。我也尝试过其他应用程序,比如智能推送,但结果是一样的。雷竞技安卓下载
除此之外,我还使用BLE嗅探器嗅探了设备发送的数据。软件显示的播发数据与USER\u config.h文件中定义的“USER\u ADVERTISE\u data”不匹配。为什么会这样?
Thanks,
达瓦尔
您好!数码摄像,
你可以用嗅探器看到广告串,但用手机看不到?我已经检查了BLE扫描仪,它发现并连接到接近记者。你在嗅探器里看到的和广告数据不符的是什么?你有没有试过其他的例子,比如ble\u app\u外设?您应该能够在播发字符串中看到强制标志02 01 06,然后是在用户\u播发\u数据中定义的十六进制值。
谢谢你的对话
您好!MT_Dialog,
谢谢你的回复。现在我能够发现the device on my phone with BLE Scanner application, but when I am trying to connect with the device it disconnects immediately after making connection. What is wrong here?
下面是我使用BLE嗅探器看到的字符串:
02 01 06-未定义
09 03 03 18 02 18 04 18 F5 FE-在USER\u config.h文件中定义为“USER\u advertive\u DATA”
0C 09 44 49 41 4C 4F 47 2D 50 52 58 52-未定义
那么你能告诉我“未定义”的广告数据是从哪里来的吗?
Thanks,
达瓦尔
您好!数码摄像,
前三个字节是指示广告消息类型的强制标志02-后面数据的长度01-后面数据的广告标签和06-标志的值(LE Discoverable mode和BR/EDR不受支持)。其他未定义的字节是您在代码中指定的设备名称0C是长度,09是完整本地名称对话框-PRXR的标记。至于断开,请尝试使用您的嗅探器检查断开的原因,即可能主机正在终止连接。
谢谢你的对话
您好!MT_Dialog,
谢谢你的回复,很抱歉我在这个帖子上的回复被耽搁了。
现在我能理解广告数据了。但是如果我想改变前三个字节的值呢。我的意思是,与其保留“leu GENERAL\u DISCOVERABL(02)”,不如让它成为“leu LIMITED\u DISCOVERABLE(01)”。我该怎么做?我试图在整个代码中找出相应宏的用法,但没有找到。
Also, is there any limitation on the length of the bytes that can be sent as Advertisement Data? If yes, how much is it? Can I add some custom details within this advertisement data?
Awaiting your reply.
Thanks,
数码摄像
您好!数码摄像,
要更改广告标志,必须在广告命令中设置正确的配置。您必须在gapm\u adv\u host结构中设置GAP\u LIM\u DISCOVERABLE中的模式成员。这将在您的广告数据中设置标志。广告长度的限制是31字节,但是如果支持BR/EDR(因为不支持它,所以是yes)和广告模式标志,则必须减去指示长度的3个强制广告标志。
谢谢你的对话
嗨,MT\u dialog,
谢谢你的回复。
我发现“gapm\u adv\u host”结构是“gapm\u start\u advised\u cmd”结构的一部分。并且在project的app.c文件中定义了多个结构变量。我需要遵循和修改更新广告标志?
I have few more queries as follows:
1. Where 'USER_ADVERTISE_DATA' is used in this project?
2我想发送两个字节的特定于制造商的数据以及广告数据。因此,我相应地更改了用户数据,但之后就无法发现设备。为什么会这样?如何添加这些额外数据?
三。在邻近报道项目中,广告间隔在哪里定义?我想换同样的。
Thanks,
数码摄像
您好!数码摄像,
广告字符串中的大多数数据都是由SDK在user\ config.h文件中配置的。你想更新什么?如果您检查app\u easy\u gap\u undirected\u adversed\u start\u create\u msg()函数,您将看到结构gapm\u start\u adversed\u cmd由用户\u undirected\u adversed\u conf struct填充。
1用户\u advertive \u DATA填充NVDS结构,在我提到的函数中,代码将获取数据并填充广告字符串。
2. The advertising string has limited space for advertising data, you will have to check if there is enough available space in your advertising data. Now, i suppose that you have enough space to place your data, you also have to set the size of your advertising data in the advertising string, the current length of the proximity reporter is "0x09" if you want to place a couple of etxra bytes ("0x55, 0x55") you have to set the length from "0x09" to "0x0B"
3. The advertising interval is placed in the user_config.h file in the user_undirected_advertise_conf struct in the .intv member.
谢谢你的对话
嗨,MT\u dialog,
谢谢你的回复,很抱歉我迟了回复。
As a beginner, how would I know that which function is used to start the advertisement and to create advertisement data string? Is it documented somewhere? How would I know that advertisement is connectable or non-connectable, is it directed or un-directed? Where all this defined in the code?
除了在用户\u config.h中定义的播发数据中添加几个字节外,我还相应地更新了第一个字节,这表示数据的大小,但在更改播发数据之后,它仍然不起作用,设备也无法被发现。
Thanks,
数码摄像
您好!数码摄像,
关于sdk5的文档只有我在第二篇文章中建议的那些。更具体地说,您可以转到8.2.3.2段,检查SDK正在使用的每个操作的所有回调,您可以检查这些函数的定义,并查看广告是如何执行的。
例如,如果您想检查该示例执行哪种播发,请检查user\u callback\u config.h文件中的.default\u operation\u adv,该文件将引导您找到指示设备播发的函数。有一个不同的功能为每种广告你想执行的大多数功能都位于app.c文件。例如:
-app\u easy\u gap\u undirected\u advertive\u start()-通过调用此函数,您将获得一个无向广告。
-app\u easy\u gap\u directed\u advertise\u start()定向广告
-app\u easy\u gap\u non\u connectable\u advertive\u start()-不可连接广告
您可以在user\u config.h文件中更改播发过程的参数。
As far as updating the advertising string the barebone example is doing the exact same thing please use this as a reference.
谢谢你的对话
您好!
Could you advise if USER_DEVICE_NAME can be modified?
当做
尼基
您好!尼基·维桑,
是的,您可以在user\u device\u name定义中更改user\u config.h文件中的设备名称。
谢谢你的对话