角色转换为外围设备

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
4个职位/ 0个新职位
最后发表
腻过
离线
最后看到:7个月2个星期前
加入:2017-05-09 20:27
角色转换为外围设备

对话框支持!

我们想在DA14580上实现角色交换:

当系统启动在广告模式:GAP_PERIPHERAL_SLV可从移动设备连接时,从移动设备获取数据,我们做一个

cmd - >操作= GAPM_RESET;
命令:cmd->role = GAP_CENTRAL_MST;

然后建立到第二个sps_设备的连接,并在该设备1切换回GAP_PERIPHERAL_SLV后传输数据,以通告并再次等待连接。

我们使用了sps_device项目示例,并修改了以下内容:

1日。尝试角色互换的实现请建议最好的解决方案:

app.c

Static struct gapm_set_dev_config_cmd* app_easy_gap_dev_config_create_msg(void)

//为GAP分配消息
set_dev_config_cmd == NULL

struct gapm_set_dev_config_cmd * cmd;
cmd = app_gapm_configure_msg_create ();
set_dev_config_cmd = cmd;

cmd - >操作= GAPM_SET_DEV_CONFIG;
cmd - >角色= user_gapm_conf.role;
memcpy (cmd - >惹恼。键,user_gapm_conf。惹恼,KEY_LEN * sizeof (uint8_t));
cmd - >外观= user_gapm_conf.appearance;
cmd - > appearance_write_perm = user_gapm_conf.appearance_write_perm;
cmd - > name_write_perm = user_gapm_conf.name_write_perm;
cmd - > max_mtu = user_gapm_conf.max_mtu;
cmd - > con_intv_min = user_gapm_conf.con_intv_min;
cmd - > con_intv_max = user_gapm_conf.con_intv_max;
cmd - > con_latency = user_gapm_conf.con_latency;
cmd - > superv_to = user_gapm_conf.superv_to;
cmd - >标志= user_gapm_conf.flags;
cmd - >操作= GAPM_RESET;/ /腻过编辑
cmd - >角色= GAP_CENTRAL_MST;/ /腻过编辑

返回(set_dev_config_cmd);

2日。尝试实施请建议最好的解决方案:

app.c

Volatile uint8_t current_role = 1;/ /编辑15/11/2020腻过
Static struct gapm_set_dev_config_cmd* app_easy_gap_dev_config_create_msg(void)

//为GAP分配消息
set_dev_config_cmd == NULL

struct gapm_set_dev_config_cmd * cmd;
cmd = app_gapm_configure_msg_create ();
set_dev_config_cmd = cmd;

如果(USER_CONFIG)

cmd - >操作= GAPM_SET_DEV_CONFIG;

If (1 == current_role){

cmd->role = user_gapm_conf.role;//当前角色是GAP_PERIPHERAL_SLV系统启动广告!腻过编辑
current_role = 0;

其他}{
cmd - >角色= GAP_CENTRAL_MST;//当前角色是GAP_CENTRAL_MST系统开始扫描!腻过编辑
current_role = 1;

cmd - >外观= user_gapm_conf.appearance;
cmd - > appearance_write_perm = user_gapm_conf.appearance_write_perm;
cmd - > name_write_perm = user_gapm_conf.name_write_perm;
cmd - > max_mtu = user_gapm_conf.max_mtu;
cmd - > con_intv_min = user_gapm_conf.con_intv_min;
cmd - > con_intv_max = user_gapm_conf.con_intv_max;
cmd - > con_latency = user_gapm_conf.con_latency;
cmd - > superv_to = user_gapm_conf.superv_to;
cmd - >标志= user_gapm_conf.flags;
memcpy (cmd - > irk.key、user_gapm_conf.irk KEY_LEN);


返回(set_dev_config_cmd);

我们等待您的宝贵帮助!
提前谢谢,
腻过

设备:
TR_Dialog
离线
最后看到:2个月3个星期前
工作人员
加入:2014-06-30 23:52
嗨腻过:

嗨腻过:

在详细回答您的问题之前,您能否提供以下信息:

1.你用的是DA14580吗?

2.您使用的是哪个SDK版本?

谢谢,

TR_DIALOG

腻过
离线
最后看到:7个月2个星期前
加入:2017-05-09 20:27
你好TR_Dialog !

你好TR_Dialog !

是的,我正在使用da14580和SDK 5.0.4版本

是否有更新的版本?

提前谢谢,

腻过

PM_Dialog
离线
最后看到:2天7小时前
工作人员
加入:2018-02-08 11:03
嗨腻过,

嗨腻过,

我强烈建议不要修改DSPS,因为它被提供的对话框支持。由于您希望执行角色切换,我的建议是从任何SDK BLE示例(如prox_reporter)开始。

请查看以下门票,了解如何实施角色转换:

https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-42-%E2%80%93-software/dynamic-adv-data-scan

DSPS是一个专门的参考设计,模拟串行电缆通信并支持点对点连接。如果您仍然需要在DSPS中这样做,这将不是一个简单的实现,因为您应该将所有的DSP功能从sps_device移植到sps_host,并由您自己实现它。

如果您正在开始一个新的设计/项目,我们强烈建议您从DA14531或DA14585/586产品和我们最新的SDK6.0.14开始,因为它有更多的改进。雷电竞官网登录我们有很多代码示例和改进的文档,也有软件路线图支持。DA14580产品族和SDK5没有软件路线图支持。

请查看DA14531:

//www.wsdof.com/雷电竞官网登录products/connectivity/bluetooth-low-energy/products/da14531

我们还有一个DA14531模块,即DA14531 SmartBond TINY™模块!它有非常小的尺寸和非常低的功率。按照以下链接查找模块的数据表、文档和HW附带资料:

//www.wsdof.com/雷电竞官网登录products/bluetooth-module-da14531-smartbond-tiny

如果使用了新的CodeLess,那么开发特定的应用程序可能会容易得多。

//www.wsdof.com/雷电竞官网登录products/smartbond-codeless-commands

它支持二进制忧郁,所以你可以有DSPS功能,你可以通过执行适当的AT命令来执行角色切换。

http://lpccs-docs.dialog-semiconductor.com/UM-140-DA145x-CodeLess/binarymode.html

http://lpccs-docs.dialog-semiconductor.com/UM-140-DA145x-CodeLess/demo.html

谢谢,PM_Dialog