请问DA14580 可以既做主机又做从机吗?就是DA14580 同时做主机连接一个设备,做从机连接另一个设备,可以吗
您好,
不好意思,DA14580不支持您描述的需求;是否考虑用 DA14585 来实现?
您好,请问DA14580可以先做主机然后进行软件复位后再做从机吗?就是是否可以通过复位来主从切换呢?
主、从不能同时连接;如果是分开来做的话,那是可以的。
上传一个例程和一个介绍 PPT。说明了如何进行主、从切换
您好,看了您发的例程,应该是SDK里面的barebone,这个工程。PTT我看了感觉是DA14580作为从机模式的一个状态机。不好意思,我在这个里面没看到关于主从切换的,能麻烦具体说一下主从切换时的一些问题吗?问题1:BLE主机和从机是否需要两个PROFILE来处理呢?问题2:BLE作为主机时,在扫描时,可以根据RSSI值来连接信号最强的吗?还是必须根据广播数据或者MAC地址来连接设备?问题3:BLE作为主机模式,怎么发现从机的服务呢?服务有多个时,怎么添加呢?我使用DSPS的例程程序运行到sps_client_enable_req_handler这个函数,底层已连接上,但是发现不了服务。走不到gattc_disc_svc_ind_handler这个函数。问题4:请问在主模式下发送数据直接调用user_send_ble_data这个函数可以吗?我需要在BLE一连接上就发数据,请问我在那里发数据合适呢?谢谢了。
附件中的工程是一个主、从切换的样例工程。
问题1:BLE主机和从机是否需要两个PROFILE来处理呢?
不太明白您的意思?
Dialog SDK中的协议栈提供了 GAP 层的消息接口,GAP 层的消息分 GAPM(manager) 和 GAPC(controller)。
GAPM用于管理本地设备的配置信息;GAPC用于管理对端设备的连接过程
应用层可发送GAPM消息给协议栈,如,实现:
扫描蓝牙设备:GAPM_START_SCAN_CMD
报告扫描结果给应用层:GAPM_ADV_REPORT_IND
具体的可参考文档《RW-BLE-GAP-IS》
问题2:BLE作为主机时,在扫描时,可以根据RSSI值来连接信号最强的吗?还是必须根据广播数据或者MAC地址来连接设备?
通过接收 GAPM_ADV_REPORT_IND 消息,可读取其携带的 adv_report 类型的参数,其中就包含 rssi 和 bd addr 地址。用户可自行判断
问题3:BLE作为主机模式,怎么发现从机的服务呢?服务有多个时,怎么添加呢?我使用DSPS的例程程序运行到sps_client_enable_req_handler这个函数,底层已连接上,但是发现不了服务。走不到gattc_disc_svc_ind_handler这个函数问题4:请问在主模式下发送数据直接调用user_send_ble_data这个函数可以吗?我需要在BLE一连接上就发数据,请问我在那里发数据合适呢?这两个问题,是 GATT 层相关的,详细的可参阅《RW-BLE-GATT-IS》
发现服务,可在 DSPS HOST 工程中搜索:GATTC_DISC_CMD
发送数据,可在 DSPS HOST 工程中搜索:GATTC_WRITE_CMD
主机(client)会逐一发现从机(server)的所有的服务,发现完成之后,在函数 user_sps_client_enable_cfm_handler 处理发现的结果,通过参数可获得发现的结果
您好,
不好意思,DA14580不支持您描述的需求;是否考虑用 DA14585 来实现?
您好,请问DA14580可以先做主机然后进行软件复位后再做从机吗?就是是否可以通过复位来主从切换呢?
您好,
主、从不能同时连接;如果是分开来做的话,那是可以的。
上传一个例程和一个介绍 PPT。说明了如何进行主、从切换
您好,看了您发的例程,应该是SDK里面的barebone,这个工程。PTT我看了感觉是DA14580作为从机模式的一个状态机。
不好意思,我在这个里面没看到关于主从切换的,能麻烦具体说一下主从切换时的一些问题吗?
问题1:BLE主机和从机是否需要两个PROFILE来处理呢?
问题2:BLE作为主机时,在扫描时,可以根据RSSI值来连接信号最强的吗?还是必须根据广播数据或者MAC地址来连接设备?
问题3:BLE作为主机模式,怎么发现从机的服务呢?服务有多个时,怎么添加呢?我使用DSPS的例程程序运行到sps_client_enable_req_handler这个函数,底层已连接上,但是发现不了服务。走不到gattc_disc_svc_ind_handler这个函数。
问题4:请问在主模式下发送数据直接调用user_send_ble_data这个函数可以吗?我需要在BLE一连接上就发数据,请问我在那里发数据合适呢?
谢谢了。
您好,
附件中的工程是一个主、从切换的样例工程。
问题1:BLE主机和从机是否需要两个PROFILE来处理呢?
不太明白您的意思?
Dialog SDK中的协议栈提供了 GAP 层的消息接口,GAP 层的消息分 GAPM(manager) 和 GAPC(controller)。
GAPM用于管理本地设备的配置信息;GAPC用于管理对端设备的连接过程
应用层可发送GAPM消息给协议栈,如,实现:
扫描蓝牙设备:GAPM_START_SCAN_CMD
报告扫描结果给应用层:GAPM_ADV_REPORT_IND
具体的可参考文档《RW-BLE-GAP-IS》
问题2:BLE作为主机时,在扫描时,可以根据RSSI值来连接信号最强的吗?还是必须根据广播数据或者MAC地址来连接设备?
通过接收 GAPM_ADV_REPORT_IND 消息,可读取其携带的 adv_report 类型的参数,其中就包含 rssi 和 bd addr 地址。用户可自行判断
问题3:BLE作为主机模式,怎么发现从机的服务呢?服务有多个时,怎么添加呢?我使用DSPS的例程程序运行到sps_client_enable_req_handler这个函数,底层已连接上,但是发现不了服务。走不到gattc_disc_svc_ind_handler这个函数
问题4:请问在主模式下发送数据直接调用user_send_ble_data这个函数可以吗?我需要在BLE一连接上就发数据,请问我在那里发数据合适呢?
这两个问题,是 GATT 层相关的,详细的可参阅《RW-BLE-GATT-IS》
发现服务,可在 DSPS HOST 工程中搜索:GATTC_DISC_CMD
发送数据,可在 DSPS HOST 工程中搜索:GATTC_WRITE_CMD
主机(client)会逐一发现从机(server)的所有的服务,发现完成之后,在函数 user_sps_client_enable_cfm_handler 处理发现的结果,通过参数可获得发现的结果