对话框支持!
我们想在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);
}
我们等待您的宝贵帮助!
提前谢谢,
玛罗斯
嗨腻过:
在进入您的问题的详细信息之前,请您提供以下信息:
1.你用的是DA14580吗?
2.您使用的是哪个SDK版本?
谢谢,
TR_DIALOG
你好TR_Dialog !
是的,我正在使用da14580和SDK 5.0.4版本
是否有更新的版本?
提前谢谢,
玛罗斯
嗨玛丽奥斯,
我强烈建议不要修改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
DSP是一种专用参考设计,模拟串行电缆通信并支持点到点连接。如果您仍然需要在DSP中执行此操作,这将不是直接实现,因为您应该将所有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
如果使用新的无附件,则可以更容易地开发具体应用。
//www.wsdof.com/雷电竞官网登录products/smartbond-codeless-commands
它支持二进制MOPE,因此您可以具有DSP功能,并且您可以通过在命令中执行适当执行的角色切换。
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