大家好。
在dsps project "DA14580_DSPS_3.150.2", The host is send scan cmd but not scan any perpheral device.
但在手机应用中可以扫描终点设备。
为什么 ?
请帮我。
代码不会改变,但是通过UART添加一些提示.PLAY是按照:
void app_scanning(无效)
{
ke_state_set(task_app,app_connectable);
//创建一个核心消息以开始扫描
struct gapm_start_scan_cmd *msg = (struct gapm_start_scan_cmd *)KE_MSG_ALLOC(GAPM_START_SCAN_CMD, TASK_GAPM, TASK_APP, gapm_start_scan_cmd);
//最大对等连接
msg-> mode = gap_gen_discovery;
msg-> op.code = gapm_scan_passive;
msg-> op.addr_src = gapm_public_addr;
msg->filter_duplic = SCAN_FILT_DUPLIC_EN;
msg->interval = APP_SCAN_INTERVAL;
msg-> window = app_scan_window;
UART_WRITE(“\ r \ ns7 \ r \ n”,6,null);//////add by me
// Send the message
KE_MSG_SEND(MSG);
}
在GAPM_CMP_EVT_HANDLER函数中添加提示:
case GAPM_SCAN_PASSIVE:
case GAPM_SCAN_ACTIVE:
{
if(param-> status == gap_err_canceled)
{
UART_WRITE(“\ r \ ns6 \ r \ n”,6,null);//添加我
app_connect();
}
别的
{
UART_WRITE(“\ r \ ns7 \ r \ n”,6,null);//添加我
app_scanning();
}
}
休息;
在app_set_dev_config_complete_func函数中:
void app_set_dev_config_complete_func(void)
{
// We are now in Initialization State
ke_state_set(task_app,app_db_init);
//在数据库中添加第一个必需的服务
if (app_db_init())
{
//当数据库已经开始了广告时
uart_write("\r\nS1\r\n", 6, NULL); //add by me
app_scanning();
}
}
在GAPM_ADV_REPORT_IND_HANDLER函数中:
msgid,lapm_adv_report_ind_handler(ke_msg_id_t const,
const struct gapm_adv_report_ind *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
/*
if(!memcmp(&param-> report.data [3],app_dflt_addata,app_dflt_add_data_len)))
{
//Save found bd_addr to global variable
memcpy(&connect_bdaddr,param-> eport.addr.addr,sizeof(struct bd_addr));
UART_WRITE(“\ r \ ns5 \ r \ n”,6,null);//添加我
app_cancel_scanning();
}
别的
* /
UART_WRITE(“\ r \ ns6 \ r \ n”,6,null);//添加我
return(ke_msg_consumed);
}
我在da14580_config中关闭睡眠模式。
没有改变任何事情。
结果是:
S1
S7
S7
S7
S7
every S7 tip is about 10 second gap.
I used "DA14580_DSPS_3.150.2", The sps_device and sps_host.
但不进入GAPM_ADV_REPORT_IND_HANDLER函数。
手机应用程序可以扫描14580年代的终点设备。。
为什么不进入GapM_Adv_Report_ind_Handler函数?
等你的帮助。
你好,
你在外围方面改变了什么吗?代码如何在任何一方都有修改的情况下为您工作?
你好,
因为没有32.768k,所以
外围改变这个地方:
#define CFG_LP_CLK 0x00 to 0xAA;
中央也改变这个地方:
#define CFG_LP_CLK 0x00 to 0xAA;
没有变化
没有其他地方更改了。
YuanhangWu
大家好。
我使用了“da14580_dsps_3.150.2”sps_host。
当GAPM_START_SCAN_CMD发送时,
但不进入GAPM_ADV_REPORT_IND_HANDLER函数。
手机应用程序可以扫描14580年代的终点设备。。
为什么 ?
如何使用SPS_HOST项目获取终点设备广告数据?
在某个地方获取广告数据存储?
thanks.
Or need to wait for a long time to scan out the advertising data,
如何更快地扫描广告数据?
thanks.
我不知道如何帮助你。I have asked a local representative to reach out to you directly.
我有类似的问题。当我使用passive_scan时,没有任何adv数据。你能帮我吗?
我的代码中有一个错误,所以the problem is resolved. Thanks.
嗨,summer20100514,
You problem have resolved.
所以,我想要你帮助我。
在da14580_dsps_3.150.2中使用的主机角色,
如何使扫描结果更快,更有效?
thanks .
我没有使用da14580_dsps_3.150.2,而是使用da14580_sdk_3.0.4.0 \ host_apps \ windows \ proximity \ monitor。当然,我修改了PC上的项目,在STM32上工作,作为运行BLE堆栈的一个外部主机和DA14580,它是DA14580_SDK_3.0.4.0 \ DK_APPS \ KEIL_PROJECTS \ PROXIMITY \ MONITION_FE_USB。由于一些商业原因,我不能向您提供项目,但我认为您可以查看这些项目来获得灵感,事实上,它很容易。
嗨,mhv_dialog
我测试多次使用过的主机扫描广告数据,只需一次扫描Gapm_adv_report_ind_handler函数中的广告数据。
所以我想得到扫描结果更快,更有效。
怎么办?
thanks.
嗨,mhv_dialog,
I mean is that host device scan first time or second time,then scan out the perpheral's advertising data.
是的,使用短数字扫描时间获取扫描结果。
how to do to make it?
thanks.
嗨,mhv_dialog,
I just debug in KEIL u4.
When I set like this:
///广告最小间隔
#define APP_ADV_INT_MIN 0x30
///广告最大间隔
#define APP_ADV_INT_MAX 0x30
我点击dubug --run-(扫描递盖骨头广告数据) - dubug。
When I set like this:
///广告最小间隔
#define app_adv_int_min 0xa0.
///广告最大间隔
#define APP_ADV_INT_MAX 0xA0
我点击dubug --Run ---杜巴。
我插入提示告诉我很多时间通过,也无法扫描百年广告数据。
Wyh吗?
对于低堆积,所以广告间隔应该设置多长时间是最好的?
谢谢。
嗨,mhv_dialog,
I have get it.
现在结果是:
外围:
0.5秒的广告差距。
中央:
每7.5秒扫描每7.5秒,但消耗量为3.6mA平均值。
扫描速度不是很快,但消费已经很高。
Wyh以及如何使扫描结果速度更快,更有效?
Or how to get the best balance.
你怎么解决这个问题?我现在得到了同样的问题,谢谢。
“不进入GapM_Adv_Report_ind_Handler”