你好,
GAPM_SET_DEV_CONFIG_CMD以“设备角色”为参数。如果我尝试设置角色的组合,比如:广播+观察者(0x03)外围设备+观察者(0x0B)
提前谢谢你。
亲爱的卡蒂亚,
我们正在用DA14580验证多角色场景,但目前还无法实现。
亲切的问候,
弗兰克
你好,弗兰克,
非常感谢您的回复。
如果目前不存在并发多角色场景,是否可以在运行时多次切换角色?即设置广播,然后观察者,然后再次广播,等等多次?或者外围设备和中心设备也一样(假设调用GAPM_SET_DEV_CONFIG_CMD时没有活动连接)?
提前谢谢你,卡蒂亚
嗨,卡蒂亚,
是的,您可以在运行时更改角色。从中心设备切换到外围设备需要首先断开与所有外围设备的连接。同样,当你从外围转向中心;先与中央断开连接。
您可以广播广告,即使在连接。这在中心和外围都起作用。
并发的GAP角色已经实现和/或验证了吗?
我们需要以下两个缺口角色用例:Gap_central_mst + gap_broadaster_advGap_peripheral_slv + gap_observer_sca
谢谢卡尔
你好卡尔,
目前580不支持这种功能,只能实现切换角色。
由于MT_dialog
抱歉打扰了,几年过去了,这方面有什么进展吗?SDK5.0.4中已经支持它了吗?
嗨tamisoft,
不,堆栈保持不变,只支持角色的切换。
谢谢,能不能举例说明一下如何换机?当设备是外围广播时,我们需要定期进行扫描。显然我们可以停止广告,但是暂时转换角色的适当步骤是什么呢?
谢谢
这里没有示例来演示,但是过程非常简单,您必须发出一个GAPM_RESET,然后将您的设备重新配置为中央设备,将其配置为外设也是如此。你可以看看下面的帖子https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
你好,我想设置da14580作为观察者。在sdk中,可以使用哪个程序?
对不起,你能帮我吗?我已经试了3天了,但是我不知道该怎么办。帮帮我!救命!救命!
我想开发da14580 ble观察扫描广告包从da14580。1.在sdk中,prox_monitor项目的函数是什么?2.我不能调试堆栈?我想调试(查看)广告包从广告商。你能告诉我吗?
嗨hantig,
没有现成的例子可以直接将其配置为中心观察者,你可以在主机示例中查看DSPS项目,其中设备被配置为中心,并将其作为参考,GAP角色配置通过user_config.h函数中的user_gapm_config结构体控制。如果您将.role从GAP_CENTRAL_MST更改为GAP_OBSERVER_SCA,那么您将拥有自己的观察者。在此之后,您需要做的就是扫描,因此您可以从DSPS主机示例中引用user_scan_start()函数。
在SDK中,接近监视器功能是一个外部主机解决方案,这意味着580从外部MCU(具体示例上的windows PC)接收命令,请查看集成和外部处理器解决方案中的UM-B-010用户手册:接近示例。
ble堆栈位于ROM中,堆栈没有可用的源代码,您通过SDK中公开的函数与堆栈通过消息进行交互,您的确切意思是查看广告包?
非常感谢!我将开发一对接近标签使用两个da14580。因此,外围和观察者。外围设备简易sdk制作的例子。但由于sdk中没有样例代码,观察者设备很难实现。我修改如下。在DSPS的app_configuration_func()中,cmd->role = GAP_OBSERVER_SCA在app_scanning中,msg->mode = GAP_OBSERVER_MODE, msg->filter_duplic = SCAN_FILT_DUPLIC_DIS
顺便说一下,与usb加密狗相比,gapm_adv_report_ind_handler()的调用比加密狗少。在usb加密狗中广播包每0.5s显示一次,但在DSPS观察者程序中广播包(gapm_adv_report_ind_handler called times)每2~3s显示一次。为了把我的程序当成usb加密狗,要怎么做?如何改变观察装置的扫描间隔?对不起,你能给我源代码吗?如果你会有困难,我想详细帮助我。
亲爱的MT_dialog,对不起,你能帮我吗?我曾经使用过nrf51822,但是da14580比nrf51822更好。我对da14580更感兴趣,我已经开发了几个使用da14580的蓝牙设备。但是作为观察者的da14580源代码是我们所需要的。帮帮我!提前谢谢你。
关于你在之前的帖子中提到的“加密狗”,我不明白到底是什么问题,你能更详细地描述一下吗?gapm_adv_report_ind_handler()是当您的观察者从空中接收到广告消息时立即触发的回调。处理器被触发的频率取决于此时有多少广告设备在发布广告,有多少广告设备到达你的设备,当然还有观察者扫描的方式。关于更改广告间隔,这是由发出GAPM_START_SCAN_CMD的扫描函数控制的。在DSPS主机中,函数是user_scan_start(),间隔和扫描窗口由gapm_start_scan_cmd函数的成员.interval和.window控制。
关于观察者fw,创建一个简单的观察者设备非常简单,让我们把SDK中的模板作为一个开始。
1)在user_gapm_conf结构的user_config.h函数中,将.role从GAP_PERIPHERAL_SLV更改为GAP_OBSERVER_SCA。
2)从DSPS的例子采取user_scan_start和粘贴在模板项目,然后你可以设置自己的user_scan_conf结构或你可以把你想在gapm_start_scan_cmd结构的值。
3)然后你可以开始扫描,只要你准备好了,因此,因为你没有任何数据库来初始化,你可以分配user_scan_start()在app_on_set_dev_config_complete回调。
4)实现一个函数钩子到app_on_adv_report_ind以获取广告消息,这样就可以了。
非常感谢!亲爱的,MT_dialog。首先,我发给你的图像,表明目前的情况。我照着你告诉我的方法去做了,其实是一样的。因此,如果我在app_on_adv_report_ind()中设置断点,并与加密狗数据包嗅探器进行比较,当加密狗数据包显示5~6次时,app_on_adv_report_ind()只调用了1次。打扰一下,你能把观察者的源代码发给我吗?我的地址是skyclean906@gmail.com.
上传了一个快速和肮脏的演示源代码,设置设备在观察者模式和扫描任何广告消息,复制过滤器被禁用,所以设备打印所有可用的广告字符串,它可以在所有渠道和打印它在UART2,请注意,如果有两个多设备的空气与当前配置的sw(打印任何可用的广告字符串),设备将击中复位,由于过度打印。上面的测试和运行在一个dialog pro工具包上。
亲爱的,MT_dialog !你思想开放,非常善良。你的善良给我留下了深刻的印象!我想和你建立深厚的关系。我想和你成为好朋友!以后请多多帮助我!非常感谢!
受人尊敬的对话框!我执行你给我的代码,并在user_on_adv_report_ind()中设置断点,但user_on_adv_report_ind()几乎没有被调用(甚至在1~2分钟内被调用一次)。在加密狗嗅探包中,广告包显示正确。最终,加密狗嗅探报文中显示的报文号必须等于user_on_adv_report_ind()中arch_ print调用的报文号。不好意思,你能重新审核并发送源代码吗?
我上传的代码已经测试专业工具和报告打印每一个可用的设备,如果设备不能够跟踪广告事件的其他模块,然后代码不是问题(除非如果你遇到任何重置或hardfault我假设您会注意到),我已经测试了弗兰克-威廉姆斯在发送之前,我完全能够跟踪设备附近,所以你使用开发工具包或一个自定义的设计?还要注意,只要对方的设备有广告,设备就会报告广告字符串,如果没有广告消息,设备就不会报告任何东西。
亲爱的,对话框!我使用开发工具包板。这是一对广告人和观察者。附近没有任何东西。打扰一下,您能给我您测试过的广告客户程序吗?我的地址是skyclean906@gmail.com.
您的580_observer程序跟踪设备附近,但只有少数数据包跟踪。(广告商发送的一些数据包)。我希望你能解决这个问题。帮帮我!
让我来说明一下广告和扫描是如何运作的,因为我有一个印象,你希望得到所有的广告信息发出的外围。扫描运行并不是让所有的广告事件发送由外围周边设备广告在三个通道连接在固定时间间隔为了一些广告字符串在主(事件的原因,并非所有的广告不能到达扫描仪,因为没有协议保证数据包到达另一边,自包使用空气作为介质传输任何事情都有可能发生,噪音,其他发射装置、天线等)。所以你不会得到所有的广告事件从外设发送到扫描仪,但这些事件的一部分。此外,BLE设备如何扫描以及外围设备如何使扫描仪无法获得所有通道中的所有广告字符串。当设备扫描时,它在所有BLE广告通道(37,38,39)中依次打开特定通道上的接收器,因此如果外围设备恰好在此时发布广告,并且介质是开放的,并且设备的天线能够收听广告包,设备将报告它。如果你想在观察者端获得更多的报告,你需要设置外围设备来发送更多的广告包。关于将580与嗅探器加密狗进行比较,我不知道你正在使用什么来嗅探空气,但你不能将嗅探器与580通用设备进行比较,显然你正在使用的嗅探器具有更好的天线(从远距离获取数据)和优化的sw,以便这样做,甚至可能是一种不同的扫描方式,以便尽可能多地嗅探数据包。
我用来测试观察者演示的程序是ble_app_peripheral,如果你离开fw,每隔100ms发布一次广告,你应该持续得到广告字符串的指示,我也在1s广告间隔下测试了它,指示大约每2秒出现一次,最好每1秒出现一次(每次外围设备在空中播放时得到一个广告事件),测试距离为10米。距离与使用的天线和空中交通有关,而不是sw。
一些额外的东西,我已经看到了新的帖子,为了改变扫描间隔和窗口,你将不得不去user_scan_start()和改变cmd->间隔和cmd->窗口参数。此外,我有一个关于你的其他职位的请求,请不要在其他线程上发布无关的问题,你可以创建一个新的线程来分享你的问题,以保持这个论坛的直接和易于使用。
受人尊敬的对话框!帮帮我!
如何在GAP中增加一个特性,需要在堆栈中做更改?
嗨Durlaksel,
感谢您在我们的公共蓝牙论坛上发帖。你能不能用你的查询创建一个新的线程,因为这个线程非常古老和接近?另外,请指明您正在使用的设备和SDK。
谢谢,PM_Dialog
亲爱的卡蒂亚,
我们正在用DA14580验证多角色场景,但目前还无法实现。
亲切的问候,
弗兰克
你好,弗兰克,
非常感谢您的回复。
如果目前不存在并发多角色场景,是否可以在运行时多次切换角色?即设置广播,然后观察者,然后再次广播,等等多次?或者外围设备和中心设备也一样(假设调用GAPM_SET_DEV_CONFIG_CMD时没有活动连接)?
提前谢谢你,
卡蒂亚
嗨,卡蒂亚,
是的,您可以在运行时更改角色。从中心设备切换到外围设备需要首先断开与所有外围设备的连接。同样,当你从外围转向中心;先与中央断开连接。
您可以广播广告,即使在连接。这在中心和外围都起作用。
你好,
并发的GAP角色已经实现和/或验证了吗?
我们需要以下两个缺口角色用例:
Gap_central_mst + gap_broadaster_adv
Gap_peripheral_slv + gap_observer_sca
谢谢
卡尔
你好卡尔,
目前580不支持这种功能,只能实现切换角色。
由于MT_dialog
抱歉打扰了,几年过去了,这方面有什么进展吗?SDK5.0.4中已经支持它了吗?
嗨tamisoft,
不,堆栈保持不变,只支持角色的切换。
由于MT_dialog
谢谢,能不能举例说明一下如何换机?当设备是外围广播时,我们需要定期进行扫描。显然我们可以停止广告,但是暂时转换角色的适当步骤是什么呢?
谢谢
嗨tamisoft,
这里没有示例来演示,但是过程非常简单,您必须发出一个GAPM_RESET,然后将您的设备重新配置为中央设备,将其配置为外设也是如此。你可以看看下面的帖子https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。
由于MT_dialog
你好,我想设置da14580作为观察者。在sdk中,可以使用哪个程序?
对不起,你能帮我吗?我已经试了3天了,但是我不知道该怎么办。帮帮我!救命!救命!
我想开发da14580 ble观察扫描广告包从da14580。
1.在sdk中,prox_monitor项目的函数是什么?
2.我不能调试堆栈?我想调试(查看)广告包从广告商。你能告诉我吗?
嗨hantig,
没有现成的例子可以直接将其配置为中心观察者,你可以在主机示例中查看DSPS项目,其中设备被配置为中心,并将其作为参考,GAP角色配置通过user_config.h函数中的user_gapm_config结构体控制。如果您将.role从GAP_CENTRAL_MST更改为GAP_OBSERVER_SCA,那么您将拥有自己的观察者。在此之后,您需要做的就是扫描,因此您可以从DSPS主机示例中引用user_scan_start()函数。
在SDK中,接近监视器功能是一个外部主机解决方案,这意味着580从外部MCU(具体示例上的windows PC)接收命令,请查看集成和外部处理器解决方案中的UM-B-010用户手册:接近示例。
ble堆栈位于ROM中,堆栈没有可用的源代码,您通过SDK中公开的函数与堆栈通过消息进行交互,您的确切意思是查看广告包?
由于MT_dialog
非常感谢!
我将开发一对接近标签使用两个da14580。因此,外围和观察者。
外围设备简易sdk制作的例子。但由于sdk中没有样例代码,观察者设备很难实现。
我修改如下。
在DSPS的app_configuration_func()中,cmd->role = GAP_OBSERVER_SCA
在app_scanning中,msg->mode = GAP_OBSERVER_MODE, msg->filter_duplic = SCAN_FILT_DUPLIC_DIS
顺便说一下,与usb加密狗相比,gapm_adv_report_ind_handler()的调用比加密狗少。
在usb加密狗中广播包每0.5s显示一次,但在DSPS观察者程序中广播包(gapm_adv_report_ind_handler called times)每2~3s显示一次。
为了把我的程序当成usb加密狗,要怎么做?如何改变观察装置的扫描间隔?
对不起,你能给我源代码吗?如果你会有困难,我想详细帮助我。
亲爱的MT_dialog,对不起,你能帮我吗?我曾经使用过nrf51822,但是da14580比nrf51822更好。我对da14580更感兴趣,我已经开发了几个使用da14580的蓝牙设备。
但是作为观察者的da14580源代码是我们所需要的。帮帮我!提前谢谢你。
嗨hantig,
关于你在之前的帖子中提到的“加密狗”,我不明白到底是什么问题,你能更详细地描述一下吗?gapm_adv_report_ind_handler()是当您的观察者从空中接收到广告消息时立即触发的回调。处理器被触发的频率取决于此时有多少广告设备在发布广告,有多少广告设备到达你的设备,当然还有观察者扫描的方式。关于更改广告间隔,这是由发出GAPM_START_SCAN_CMD的扫描函数控制的。在DSPS主机中,函数是user_scan_start(),间隔和扫描窗口由gapm_start_scan_cmd函数的成员.interval和.window控制。
关于观察者fw,创建一个简单的观察者设备非常简单,让我们把SDK中的模板作为一个开始。
1)在user_gapm_conf结构的user_config.h函数中,将.role从GAP_PERIPHERAL_SLV更改为GAP_OBSERVER_SCA。
2)从DSPS的例子采取user_scan_start和粘贴在模板项目,然后你可以设置自己的user_scan_conf结构或你可以把你想在gapm_start_scan_cmd结构的值。
3)然后你可以开始扫描,只要你准备好了,因此,因为你没有任何数据库来初始化,你可以分配user_scan_start()在app_on_set_dev_config_complete回调。
4)实现一个函数钩子到app_on_adv_report_ind以获取广告消息,这样就可以了。
由于MT_dialog
非常感谢!亲爱的,MT_dialog。
首先,我发给你的图像,表明目前的情况。
我照着你告诉我的方法去做了,其实是一样的。
因此,如果我在app_on_adv_report_ind()中设置断点,并与加密狗数据包嗅探器进行比较,当加密狗数据包显示5~6次时,app_on_adv_report_ind()只调用了1次。
打扰一下,你能把观察者的源代码发给我吗?我的地址是skyclean906@gmail.com.
嗨hantig,
上传了一个快速和肮脏的演示源代码,设置设备在观察者模式和扫描任何广告消息,复制过滤器被禁用,所以设备打印所有可用的广告字符串,它可以在所有渠道和打印它在UART2,请注意,如果有两个多设备的空气与当前配置的sw(打印任何可用的广告字符串),设备将击中复位,由于过度打印。上面的测试和运行在一个dialog pro工具包上。
由于MT_dialog
亲爱的,MT_dialog !
你思想开放,非常善良。你的善良给我留下了深刻的印象!我想和你建立深厚的关系。我想和你成为好朋友!以后请多多帮助我!非常感谢!
受人尊敬的对话框!
我执行你给我的代码,并在user_on_adv_report_ind()中设置断点,但user_on_adv_report_ind()几乎没有被调用(甚至在1~2分钟内被调用一次)。
在加密狗嗅探包中,广告包显示正确。
最终,加密狗嗅探报文中显示的报文号必须等于user_on_adv_report_ind()中arch_ print调用的报文号。
不好意思,你能重新审核并发送源代码吗?
嗨hantig,
我上传的代码已经测试专业工具和报告打印每一个可用的设备,如果设备不能够跟踪广告事件的其他模块,然后代码不是问题(除非如果你遇到任何重置或hardfault我假设您会注意到),我已经测试了弗兰克-威廉姆斯在发送之前,我完全能够跟踪设备附近,所以你使用开发工具包或一个自定义的设计?还要注意,只要对方的设备有广告,设备就会报告广告字符串,如果没有广告消息,设备就不会报告任何东西。
由于MT_dialog
亲爱的,对话框!我使用开发工具包板。这是一对广告人和观察者。附近没有任何东西。
打扰一下,您能给我您测试过的广告客户程序吗?我的地址是skyclean906@gmail.com.
您的580_observer程序跟踪设备附近,但只有少数数据包跟踪。(广告商发送的一些数据包)。
我希望你能解决这个问题。帮帮我!
嗨hantig,
让我来说明一下广告和扫描是如何运作的,因为我有一个印象,你希望得到所有的广告信息发出的外围。扫描运行并不是让所有的广告事件发送由外围周边设备广告在三个通道连接在固定时间间隔为了一些广告字符串在主(事件的原因,并非所有的广告不能到达扫描仪,因为没有协议保证数据包到达另一边,自包使用空气作为介质传输任何事情都有可能发生,噪音,其他发射装置、天线等)。所以你不会得到所有的广告事件从外设发送到扫描仪,但这些事件的一部分。此外,BLE设备如何扫描以及外围设备如何使扫描仪无法获得所有通道中的所有广告字符串。当设备扫描时,它在所有BLE广告通道(37,38,39)中依次打开特定通道上的接收器,因此如果外围设备恰好在此时发布广告,并且介质是开放的,并且设备的天线能够收听广告包,设备将报告它。如果你想在观察者端获得更多的报告,你需要设置外围设备来发送更多的广告包。关于将580与嗅探器加密狗进行比较,我不知道你正在使用什么来嗅探空气,但你不能将嗅探器与580通用设备进行比较,显然你正在使用的嗅探器具有更好的天线(从远距离获取数据)和优化的sw,以便这样做,甚至可能是一种不同的扫描方式,以便尽可能多地嗅探数据包。
我用来测试观察者演示的程序是ble_app_peripheral,如果你离开fw,每隔100ms发布一次广告,你应该持续得到广告字符串的指示,我也在1s广告间隔下测试了它,指示大约每2秒出现一次,最好每1秒出现一次(每次外围设备在空中播放时得到一个广告事件),测试距离为10米。距离与使用的天线和空中交通有关,而不是sw。
一些额外的东西,我已经看到了新的帖子,为了改变扫描间隔和窗口,你将不得不去user_scan_start()和改变cmd->间隔和cmd->窗口参数。此外,我有一个关于你的其他职位的请求,请不要在其他线程上发布无关的问题,你可以创建一个新的线程来分享你的问题,以保持这个论坛的直接和易于使用。
由于MT_dialog
受人尊敬的对话框!帮帮我!
如何在GAP中增加一个特性,需要在堆栈中做更改?
嗨Durlaksel,
感谢您在我们的公共蓝牙论坛上发帖。你能不能用你的查询创建一个新的线程,因为这个线程非常古老和接近?另外,请指明您正在使用的设备和SDK。
谢谢,PM_Dialog