GAPM_SET_DEV_CONFIG_CMD takes Device Role as parameter. Will it work if I try to set a combination of roles, such as: Broadcaster + Observer (0x03) Peripheral + Observer (0x0B)
Yes, you can change the roles during runtime. Switching from central to peripheral would require that you disconnect from all peripherals first. And likewise when you change from peripheral to central; disconnect from central first.
Thanks, is there an example how to do on the flight switching? We need to make scanning periodically while the device is a peripheral broadcasting. Obviously we can stop the advertising, but what are the proper steps to change the role temporarily.
There is no example in order to demonstrate that but the procedure is quite straighforword, you will have to issue a GAPM_RESET and then reconfigure your device as a central, and the same to configure it as a peripheral. You can have a look at the following posthttps://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl...
I want to develop da14580 ble obsever scaning advertising packets from da14580 . 1. In sdk, What is prox_monitor project's function? 2. Can't i debug ble stack ? I want to debug(view) advertising packets from advertiser.Could you tell me?
In the SDK the proximity monitor function is an external host solution, meaning that the 580 takes commands from external MCU (a windows PC on the specific example), please check the UM-B-010 User Manual : Proximity Example in integrated and External Processor Solution.
The ble stack is located in the ROM and there is no source code available for the stack, you interact with the stack via messages through the functions exposed from the SDK, what exactly do you mean view advertising packets ?
非常感谢你! I am going to develop a pair proximity tag use with two da14580s. Thus, peripheral and observer. Peripheral device easily made by sdk example. But observer device was difficult, because there is no sample code in sdk. I changed as below. In app_configuration_func() of DSPS, cmd->role = GAP_OBSERVER_SCA 在app_scanning,MSG->模式= GAP_OBSERVER_MODE和MSG-> filter_duplic = SCAN_FILT_DUPLIC_DIS
By the way, by contrast as usb dongle, gapm_adv_report_ind_handler() is less called than dongle. 例如在USB加密狗广播报文显示每0.5秒,但在观察者DSPS节目广播数据包(称为gapm_adv_report_ind_handler倍)示出,每2〜3秒。 序充当我的程序作为USB加密狗,怎么能有呢?如何改变观测装置的扫描间隔? Execuse me, would you give me source code? If you will be difficult, I want to help me in detail.
亲爱的mt_dialog,执行我,would you help me? I had ever used nrf51822, but da14580 superior more than nrf51822. I am more interest da14580 and i have already developed several bluetooth devices using da14580. But da14580 source code which acts as observer certainly is needed to us.Help me! Thanks in advance.
Regarding the "dongle" that you mention in your previous post, i am not able to understand what exactly is the problem, can you be more descriptive ? The gapm_adv_report_ind_handler() is the callback that is triggered as soon as your observer receives an advertising message from the air. The frequency that the handler is triggered depends on how many advertising devices are advertising at the moment and how many of them are reaching your device and offcourse the way that your observer is scanning. Regarding changing your advertising interval, that is controlled by the scanning function that issues a GAPM_START_SCAN_CMD. In the DSPS host the function is the user_scan_start() and the interval and scanning window are controlled by the members .interval and .window of your gapm_start_scan_cmd function.
对于观察者fw是相当简单的创建一个简单的观测装置,让我们作为起始基地设在SDK中的模板。
1) In the user_config.h function at the user_gapm_conf structure change the .role from GAP_PERIPHERAL_SLV to GAP_OBSERVER_SCA.
非常感谢你!亲爱的,MT_dialog. 首先,我送你这表明目前的状况的图像。 I have done as method which you had told me, but it is same. Thus, if i set breakpoint in app_on_adv_report_ind() and i compare with dongle packet sniffer, when dongle packet has shown 5~6 times, app_on_adv_report_ind() has called barely 1 times. 对不起,请您把观察者souc寄给我e code? My address isskyclean906@gmail.com。
Uploaded a quick and dirty demo source code that sets the device in observer mode and scans for any advertising messages, the Duplicate filter is disabled so the device prints all the available advertising strings that it can reach in all channels and prints it over UART2, be aware that if there are two many devices on air with the current configuration of the sw (printing any available advertising string), the device will hit the reset due to excessive printing. The above is tested and runs on a dialog pro kit.
亲爱的,MT_dialog! You are open-minded and very kindly. I impressed greatly by your kindness! I want a deep bonds with you. I want to become a good friend with you! Help me a lot in the future! Thank you very much!
尊敬的对话! I execute the code which you gave me and set breakpoint in user_on_adv_report_ind() ,but user_on_adv_report_ind() wasn't almost called(Even one time in 1~2 minute is called). 在加密狗嗅探数据包,数据包的广告正确显示。 Ultimately, packet numbers which shown in dongle sniff packet must be equal to packet which arch_ print call numbers in user_on_adv_report_ind(). Sorry,would you review again and send source code?
Dear, dialog! I use development kit board. Here is a pair of advertiser and observer. Anything not present near. Execuse我,你给我你已经测试过的广告客户计划?我的地址是skyclean906@gmail.com。
Your 580_observer program track near device, but a few of packet only track.(some packet which advertiser sends) . 我希望你能解决这个problem.Help我!
直接让我设置一些关于广告的方式vertising and the scanning operates, since i have the impression that you expect to get all the advertising messages issued by the peripheral. The Scanning operation isn't ment to get all the advertising events send by a peripheral, the peripheral device advertises in three channels in a fixed connection interval in order for some of the advertising strings to get at the master (the reason that not all advertising events can't reach the scanner is because there is no protocol assurance that the packets reach the other side and since the packets using the air as a medium of transfer anything can happen, noise, other devices transmiting, antenna etc). So you wont get all the advertising events send from the peripheral to the scanner, but a fraction of those events. Also how a BLE device scans and how a peripheral advertises makes it impossible for the scanner to get all the advertising strings in all the channels. When the device scans, it opens the receiver on a specific channel sequentialy in all BLE advertising channels (37, 38, 39) so if the peripheral device happens to advertise at the moment, and the medium is open and the antenna of the device is able to listen to the advertising packet, the device is going to report it. If you would like to get more reports on the observer side you will need to set the peripheral to send more advertising packets. Regarding comparing the 580 to a sniffer dongle, i am not aware what you are using in order to sniff the air, but you cannot compare a sniffer to a 580 generic device, apparently the sniffer that you are using has a better antenna (getting data from a long distance) and an optimized sw in order to do so, perhaps even a different way of scanning in order to sniff as much packets as it can.
Something extra, i ve seen the new post, in order to change the scanning interval and window you will have to go the user_scan_start() and change the cmd->interval and the cmd->window parameter. Additionally i have a request regarding your other posts,please dont post irrelevant questions on other threads, you can always create a new thread in order to share your question in order to keep this forum straight forward and easy to use.
Dear Katya,
We are working on validation of multi-role scenarios with DA14580 but this is not available yet.
亲切的问候,
Frank
Hi Frank,
Thanks a lot for your response.
如果并发多任务的情况尚未公布,我可以切换在运行时多次角色?即集广播公司,然后观察,然后再广播公司等多次?或与外周和中枢相同的(假设有当GAPM_SET_DEV_CONFIG_CMD调用没有活动连接)?
提前致谢,
Katya
Hi Katya,
Yes, you can change the roles during runtime. Switching from central to peripheral would require that you disconnect from all peripherals first. And likewise when you change from peripheral to central; disconnect from central first.
您可以播放,而连接甚至做广告。这部作品在中枢和外周作用。
Hi,
已并发GAP角色中实现和/或验证了吗?
We have a need for these 2 gap role use cases:
GAP_CENTRAL_MST + GAP_BROADCASTER_ADV
GAP_PERIPHERAL_SLV + GAP_OBSERVER_SCA
Thanks
卡尔
嗨卡尔
580不支持这种功能的只有角色的切换可以在瞬间实现。
谢谢mt_dialog.
Sorry to ping, is there any progress on this-now a few years later? Is it supported in SDK5.0.4 already?
Hi tamisoft,
No, the stack remains the same, only the swicting of the roles is supported.
谢谢mt_dialog.
Thanks, is there an example how to do on the flight switching? We need to make scanning periodically while the device is a peripheral broadcasting. Obviously we can stop the advertising, but what are the proper steps to change the role temporarily.
Thanks
Hi tamisoft,
There is no example in order to demonstrate that but the procedure is quite straighforword, you will have to issue a GAPM_RESET and then reconfigure your device as a central, and the same to configure it as a peripheral. You can have a look at the following posthttps://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl...
谢谢mt_dialog.
您好,我想集da14580为observer. In sdk, which program can be used ?
Sorry, Would you help me? I have tried for 3 days, but i don't know how have to do . Help me!Help!Help!
I want to develop da14580 ble obsever scaning advertising packets from da14580 .
1. In sdk, What is prox_monitor project's function?
2. Can't i debug ble stack ? I want to debug(view) advertising packets from advertiser.Could you tell me?
Hi hantig,
有为了没有现成的例子,直接将其配置为中心的观察者,你可以看看在设备配置为核心,并采取作为参考主机例如DSPS工程,GAP角色配置被控制通过在user_config.h功能user_gapm_config结构。如果从GAP_CENTRAL_MST改变。角色来GAP_OBSERVER_SCA,那么你将有你的观察者。所有你需要做的是扫描后,这样你就可以作为参考,可将DSP主机例如user_scan_start()函数。
In the SDK the proximity monitor function is an external host solution, meaning that the 580 takes commands from external MCU (a windows PC on the specific example), please check the UM-B-010 User Manual : Proximity Example in integrated and External Processor Solution.
The ble stack is located in the ROM and there is no source code available for the stack, you interact with the stack via messages through the functions exposed from the SDK, what exactly do you mean view advertising packets ?
谢谢mt_dialog.
非常感谢你!
I am going to develop a pair proximity tag use with two da14580s. Thus, peripheral and observer.
Peripheral device easily made by sdk example. But observer device was difficult, because there is no sample code in sdk.
I changed as below.
In app_configuration_func() of DSPS, cmd->role = GAP_OBSERVER_SCA
在app_scanning,MSG->模式= GAP_OBSERVER_MODE和MSG-> filter_duplic = SCAN_FILT_DUPLIC_DIS
By the way, by contrast as usb dongle, gapm_adv_report_ind_handler() is less called than dongle.
例如在USB加密狗广播报文显示每0.5秒,但在观察者DSPS节目广播数据包(称为gapm_adv_report_ind_handler倍)示出,每2〜3秒。
序充当我的程序作为USB加密狗,怎么能有呢?如何改变观测装置的扫描间隔?
Execuse me, would you give me source code? If you will be difficult, I want to help me in detail.
亲爱的mt_dialog,执行我,would you help me? I had ever used nrf51822, but da14580 superior more than nrf51822. I am more interest da14580 and i have already developed several bluetooth devices using da14580.
But da14580 source code which acts as observer certainly is needed to us.Help me! Thanks in advance.
Hi hantig,
Regarding the "dongle" that you mention in your previous post, i am not able to understand what exactly is the problem, can you be more descriptive ? The gapm_adv_report_ind_handler() is the callback that is triggered as soon as your observer receives an advertising message from the air. The frequency that the handler is triggered depends on how many advertising devices are advertising at the moment and how many of them are reaching your device and offcourse the way that your observer is scanning. Regarding changing your advertising interval, that is controlled by the scanning function that issues a GAPM_START_SCAN_CMD. In the DSPS host the function is the user_scan_start() and the interval and scanning window are controlled by the members .interval and .window of your gapm_start_scan_cmd function.
对于观察者fw是相当简单的创建一个简单的观测装置,让我们作为起始基地设在SDK中的模板。
1) In the user_config.h function at the user_gapm_conf structure change the .role from GAP_PERIPHERAL_SLV to GAP_OBSERVER_SCA.
2)从DSPS例如采取user_scan_start并粘贴到模板项目,那么你可以设置自己的user_scan_conf结构或者你可以把塔值,你想在gapm_start_scan_cmd结构。
3)然后您可以在准备就绪时开始扫描,因此,由于您没有任何数据库来初始化,您可以在App_On_set_dev_config_complete回调中分配user_scan_start()。
4)以钩到app_on_adv_report_ind,以获得广告信息实现一个功能,你应该是好去。
谢谢mt_dialog.
非常感谢你!亲爱的,MT_dialog.
首先,我送你这表明目前的状况的图像。
I have done as method which you had told me, but it is same.
Thus, if i set breakpoint in app_on_adv_report_ind() and i compare with dongle packet sniffer, when dongle packet has shown 5~6 times, app_on_adv_report_ind() has called barely 1 times.
对不起,请您把观察者souc寄给我e code? My address isskyclean906@gmail.com。
Hi hantig,
Uploaded a quick and dirty demo source code that sets the device in observer mode and scans for any advertising messages, the Duplicate filter is disabled so the device prints all the available advertising strings that it can reach in all channels and prints it over UART2, be aware that if there are two many devices on air with the current configuration of the sw (printing any available advertising string), the device will hit the reset due to excessive printing. The above is tested and runs on a dialog pro kit.
谢谢mt_dialog.
亲爱的,MT_dialog!
You are open-minded and very kindly. I impressed greatly by your kindness! I want a deep bonds with you. I want to become a good friend with you! Help me a lot in the future! Thank you very much!
尊敬的对话!
I execute the code which you gave me and set breakpoint in user_on_adv_report_ind() ,but user_on_adv_report_ind() wasn't almost called(Even one time in 1~2 minute is called).
在加密狗嗅探数据包,数据包的广告正确显示。
Ultimately, packet numbers which shown in dongle sniff packet must be equal to packet which arch_ print call numbers in user_on_adv_report_ind().
Sorry,would you review again and send source code?
Hi hantig,
我上载的代码已经在Pro套件上测试了,并且如果设备无法跟踪其他模块的广告事件,则将报告打印出每种可用设备,然后代码不是问题(除非如果你打任何复位或我想你会发现一个hardfault),我已经送过来之前测试的防火墙,我是完全能够跟踪近的设备,所以您使用的开发工具包或定制设计?也意识到该设备将报告广告字符串,只要另一方面的设备是广告,如果在空中没有广告消息,则设备将不会报告任何内容。
谢谢mt_dialog.
Dear, dialog! I use development kit board. Here is a pair of advertiser and observer. Anything not present near.
Execuse我,你给我你已经测试过的广告客户计划?我的地址是skyclean906@gmail.com。
Your 580_observer program track near device, but a few of packet only track.(some packet which advertiser sends) .
我希望你能解决这个problem.Help我!
Hi hantig,
直接让我设置一些关于广告的方式vertising and the scanning operates, since i have the impression that you expect to get all the advertising messages issued by the peripheral. The Scanning operation isn't ment to get all the advertising events send by a peripheral, the peripheral device advertises in three channels in a fixed connection interval in order for some of the advertising strings to get at the master (the reason that not all advertising events can't reach the scanner is because there is no protocol assurance that the packets reach the other side and since the packets using the air as a medium of transfer anything can happen, noise, other devices transmiting, antenna etc). So you wont get all the advertising events send from the peripheral to the scanner, but a fraction of those events. Also how a BLE device scans and how a peripheral advertises makes it impossible for the scanner to get all the advertising strings in all the channels. When the device scans, it opens the receiver on a specific channel sequentialy in all BLE advertising channels (37, 38, 39) so if the peripheral device happens to advertise at the moment, and the medium is open and the antenna of the device is able to listen to the advertising packet, the device is going to report it. If you would like to get more reports on the observer side you will need to set the peripheral to send more advertising packets. Regarding comparing the 580 to a sniffer dongle, i am not aware what you are using in order to sniff the air, but you cannot compare a sniffer to a 580 generic device, apparently the sniffer that you are using has a better antenna (getting data from a long distance) and an optimized sw in order to do so, perhaps even a different way of scanning in order to sniff as much packets as it can.
我为了测试观察者演示中使用的程序是ble_app_peripheral,如果你离开FW如广告埃维100ms的,你应该continuesly得到适应症广告串,我也测试了它在1秒的广告时间间隔和适应症是在approximatelly正在添加,每2秒最好每1秒与10米的距离测试(外围去在所述空气每次收到一个广告事件)。距离它的东西,有做与所用的天线和在空气流量,而不是SW。
Something extra, i ve seen the new post, in order to change the scanning interval and window you will have to go the user_scan_start() and change the cmd->interval and the cmd->window parameter. Additionally i have a request regarding your other posts,please dont post irrelevant questions on other threads, you can always create a new thread in order to share your question in order to keep this forum straight forward and easy to use.
谢谢mt_dialog.
尊敬的对话!Help me!
How to add one more characteristic in GAP, need to do changes in stack?
嗨Durlaksel,
感谢您对我们的公共蓝牙论坛发布。能否请你创建一个新的线程与您的查询,因为这是一个非常古老和关闭?另外,请注明设备和您正在使用的SDK。
谢谢,PM_DIALOG.