你好对话框!
我们试图实现一个基于DSP的项目。我们已经用DSP主机示例(v_5.150.2版)刷新了(Da14580 DK基本板),我们希望通过UART(TX/RX)获取SCAN设备的名称
我们已经实现了da14580自定义板,从Spi flash和使用HW流量控制低电池消耗
它有一个工作正常的DSPS设备示例。它在宣传他的设备名称一切正常。
1)我怎么能看到扫描设备的?
是否有可能使用tera术语,看看是否真的扫描附近的广告设备从DSPS主机的例子?
2) DSPS HOST示例是否也发布他的设备名称?因为我用的是conversations DSPS android App,当我按下扫描按钮时,我无法检测到任何东西。
提前谢谢。
腻过
设备:
嗨腻过,
非常感谢你的在线问题。sps_host项目将DA14580配置为Central,因此设备将不会发布。请检查user_callback_config.h,您将看到。default_operation_adv = NULL在sps_host项目。在sps_device项目中,在同一个头文件中,您将看到.default_operation_adv = default_advertise_operation。
要做到这一点,如果你想连接Dialog DSPS android App,你应该使用DA14580中的sps_device项目。请记住,移动应用程序将是Central,而运行sps_device的DA14580将是Peripheral。
关于你的第一个问题,你能澄清一下吗?中心设备(sps_host)上的应用程序自动开始扫描,并连接到第一个发现的支持串口服务的外围设备(sps_device)。中央设备还通过停止数据流和自动尝试重新建立连接来处理连接丢失的情况。
谢谢,下午好
你好PM_Dialog !
谢谢您的快速回复!!
我已经检查了在dsps主机和dsps设备项目上的user_callback_config.h,你有权利。
我们需要将中央设备设置为“永远扫描”,继续扫描外围设备,但我们不想与任何外围设备连接。
只扫描广告设备。
我们能通过UART继续扫描设备列表吗?
如果我使用tera术语,我能在终端上看到扫描吗?
提前感谢,,
腻过
嗨腻过,
扫描过程的超时时间大约是8到10秒,因此,为了继续扫描,您必须在调用scan_complete回调时发送一个新的扫描命令。每次你得到一个指示,你有一个广告信息,你可以打印数据。只要您在da1458x_config_basic.h中定义了CFG_PRINTF定义,DSPS应用程序就会在user_on_adv_report_ind()中实现arch_prinf()函数
谢谢,下午好
你好PM_Dialogue !
谢谢您的快速回复!
我们有一个移动电话和两个da14580设备。
手机连接到第一个Da14580发送数据,然后在第二个Da14580上传输数据,并在外部处理器上进行处理。
要实现这一点,必须使用哪个程序?
第二台设备已在运行DSPS(SPS_设备)项目。
在第一个设备上必须使用哪个程序?
提前感谢,,
腻过
嗨腻过,
BLE连接总是由中心设备(在您的情况下是移动电话)发起的。第一个设备也可以运行DSPS应用程序。因此,移动电话将连接到第一个运行DSPS (GAP外设)的设备,并通过SPS配置文件发送数据。然后,你应该断开第一个连接到第二个。请记住,由于两者都在运行DSPS,您可能会更改BD地址和设备名称。
谢谢,下午好
你好PM_Dialogue
我们需要在数据通过手机传输到第一个设备之后。第一个设备必须连接到第二个设备并传输数据。
两个设备都使用不同的蓝牙地址和名称运行(sps设备)
如何实现呢?
提前感谢,,
腻过
嗨腻过,
由于它连接到移动设备(GAP Central), Device_1应该运行sps_device固件,因此它被配置为GAP外设。
因此,在Device_1完成数据转换之后,它应该断开与移动电话的连接。您也可以使用移动电话来断开连接。
现在,需求是Device_1和Device_2。为此,Device_2应该配置为GAP Central。DSPS包括一个名为sps_host的项目,该项目将DSPS配置为GAP Central。
根据用户手册,中心设备上的应用程序自动开始扫描,并连接到第一个发现的支持串口服务的外围设备。中央设备还通过停止数据流和自动尝试重新建立连接来处理连接丢失的情况
谢谢,下午好
你好PM_Dialog !
谢谢您的快速回复!
我刚刚用(sps_设备)闪存了设备_1,用(sps_主机)闪存了设备_2。
手机数据成功传输到Device_1,数据传输完成后,移动设备断开连接,但Device_2似乎无法连接到Device_1获取数据。
为了更好地理解,我已经向您发送了设备1和设备2的配置设置。
我等你的答复
提前谢谢,
腻过
你好,Marios,你能检查一下设备1在断开连接后是否开始播放广告吗?设备_2是否启动扫描程序?您可以使用SS Tollbox的电源分析器进行验证。
请做一个快速测试:在Device_1中运行sps_device,在Device_2中运行Dialog提供的sps_host。这能起作用吗?Device_2是否可以连接到Device_1?谢谢,下午好
你好PM_Dialog !
谢谢你的快速回复!
是Device_1断开连接后重新启动发布。
你有sps_Host的广告波形吗?
和我们的波形比较。
sps_主机似乎开始扫描,但我如何才能知道
如果它连接到Device_1 ?
非常感谢你的帮助
提前感谢,,
腻过
嗨腻过,
sps_host将设备配置为GAP Central角色,因此它将开始扫描。
我很抱歉,我不能复制这个。
我使用的是DSPS,没有任何修改,由Dialog提供。
运行sps_设备的设备_1开始播发–请参阅sps_设备_adv.PNG。
运行sps_host的Device_2开始扫描-请参见sps_host_scan.PNG。
如我在上一次答复中所述,中央设备(sps_主机)上的应用程序会自动开始扫描并连接到第一个发现的支持串行端口服务的外围设备(sps_设备)。因此,设备_2自动连接到设备_2。请参阅sps_device_connected.PNG和sps_host_connected.PNG。
我建议您在不进行任何修改的情况下使用sps_主机和sps_设备,以便验证相同的功能。
谢谢,下午好
你好PM_Dialog !
是的,我在设备_2(Sps_主机)上与您有相同的波形,但似乎无法连接到我的任何Sps设备。
我的设备_2(sps_主机)处于带硬件流量控制的延长睡眠模式,因为我希望它使用电池运行。
CTS和RTS由外部单片机控制,并与uart通信。
该设备1 (sps_设计)是SW流量控制和正常电池配置,以及微控制器和UART通信。
提前感谢,,
腻过
嗨腻过,
您是否正在使用Dialog提供的DSPS项目?您是否对sps_主机或sps_设备应用程序代码进行了任何修改?有没有可能提供一个嗅探日志,这样我就可以了解空中发生了什么?
请检查您是否在sps软管侧收到广告报告-用户在adv report ind()上收到广告报告?
谢谢,下午好
下午对话!
谢谢您的快速回复!
当移动设备将数据传输到
Device_1微控制器处理其缓冲区中的数据,然后通过UART将Da14580上的数据发送给Device_2
我们阅读了以下说明手册的流程:
一个- b - 026 - _da14580_external_wake up_mechanisms_v1_0
1) Device_1如何与特定的Device_2以及DA14580连接,两个设备都运行DSPS项目
提前感谢,,
腻过
你好PM_Dialog !
我们设置了Device_1运行(DSPS_HOST),外部单片机通过UART向DA14580发送数据
设备1 (SPS_Host)与设备2 (SPS)连接成功,但未向对方传输任何数据。
在主机端必须设置哪种模式来传输数据?
汽车吗?
直接联系吗?
给我们一些成功的指导
请帮助我们,我们已经花费了数千欧元来开发Dialog DA14580平台。
我们是希腊最大的制造商,拥有全自动生产线。
提前感谢,,
腻过
嗨腻过,
连接不是问题,因为运行sps_主机的设备_1会向运行sps_设备的设备_2发送连接请求,并且可以成功建立连接。
你能探测一下UART信号吗?
如果DA14580配置为任何睡眠模式,则应使用硬件流控制。一旦数据在UART上,sps_主机应将其传输到对等设备。
因此,也请检查UART信号和UART配置在user_peripher_setup .c / .h文件中。
在应用程序代码和自定义板中使用的UART信号是什么?
谢谢,下午好
你好PM_Dialog !
谢谢您的快速回复!
我们已经成功传输了另一边的数据!
1)我们希望(Sps_Host)只有在流控制上有数据时才启动连接模式?
必须进行哪些设置才能实现此目的?
2)我们也希望(sps_Host)在接收到数据后可以进行广告和连接,然后必须与(Sps_Device)建立连接并传输数据。
提前感谢,,
腻过
嗨腻过,
你能把你的问题说清楚吗?
如我之前的评论所述,sps_主机将DA14580配置为GAP角色中心。中央设备可以发布广告–它只能开始扫描。
谢谢,迪亚洛夫总理
你好PM_Dialog !
谢谢你的快速回复!
1)我们希望(sp_Host)只在从外部微控制器接收到UART端口上的数据时才开始扫描。数据结束后,必须断开与sps_device的连接。
2) sps_Host只需要扫描并与预定义的Sps_Device配对,而不是与第一个发现的设备配对,因为我们有成千上万的da14580在同一时间和地点发布广告。
提前感谢,,
腻过
嗨腻过,
DSPS应用程序不支持这两种要求。Dialog提供了对DSP的支持。因此,在您的情况下,您必须修改DSPS应用程序代码–没有任何特定的配置。
谢谢,下午好
你好PM_Dialog !
谢谢您的快速回复!
我在user_confingh上看到过
///扫描响应数据
#定义USER_ADVERTISE_SCAN_RESPONSE_DATA”“
我没有在这个定义上设置任何东西
如果我设置sps_设备广告名称,sps_主机将仅与该特定设备连接?
如果我做错了什么,请纠正我。
1)在user_confing.h
///要放置在广告或扫描响应数据中的设备名称
#define USER_DEVICE_NAME "DIALOG-SPS" //这里我们设置了sps_Host的广告名。
Static const struct gapm_configuration user_gapm_conf = {
///设备角色:中央、外围、观察者或广播者
.role = GAP_CENTRAL_MST,
/**************************************************************************************
*对端设备信息,仅用于:
*
*——GAPM_CONNECTION_AUTO
*——GAPM_CONNECTION_SELECTIVE
*
*带有对等体地址和对应的对等体地址类型的白名单
**************************************************************************************
* /
/// BD设备地址
.peer_addr_0 = {0x00, 0x00, 0x00, 0xCA, 0xEA, 0x23}, //这里我们设置了Sps_Device的蓝牙地址,我们想要SPS_Host与它连接。
///设备的地址类型0=public/1=private random
.peer\u addr\u 0\u type=0,
Config_advanced.h
#define CFG_NVDS_TAG_BD_ADDRESS {0x00, 0x00, 0x00, 0xCA, 0xEA, 0x80} //SPS_Host蓝牙地址
user_sps_host.h
/**
****************************************************************************************
*@简短的报告
* @param[in] param断开消息的参数
* @return无效
****************************************************************************************
* /
在高级报告索引上作废用户(结构gapm高级报告索引常量*参数)
{
/ /如果(! memcmp (param - >报告。数据[3]、USER_ADVERTISE_DATA USER_ADVERTISE_DATA_LEN))
{
arch_printf("Connect with %02x %02x %02x %02x",
param - > report.adv_addr.addr [5],
param - > report.adv_addr.addr [4],
参数->report.adv_addr.addr[3],
参数->report.adv_addr.addr[2],
param - > report.adv_addr.addr [1],
param - > report.adv_addr.addr [0]);
app_easy_gap_start_connection_to_set (param - >报告。adv_addr_type (uint8_t *)参数- > report.adv_addr。addr, MS_TO_DOUBLESLOTS (USER_CON_INTV));
user_gapm_cancel ();
}
}
提前感谢,,
腻过