你好对话!
我们试图实现一个基于DSPS的项目。我们已经闪现(Da14580 DK基本板)与DSPS主机示例(版本v_5.150.2),我们想通过UART (TX/RX)获得scand设备的名称
我们已经实施了一个带有DA 14580的定制板,它是SPI Flash的靴子,并使用HW流量控制降低电池消耗
它有工作良好的DSPS设备示例。它在为他的设备做广告,说一切正常。
1)我如何看到ScanD设备的?
是否有可能使用tera术语来查看是否实际上扫描附近的广告设备从DSPS主机的例子?
2) DSPS主机的例子也宣传他的设备名称?因为我使用的对话dsp android应用程序,我不能检测任何扫描按钮。
提前谢谢。
玛罗斯
设备:
嗨腻过,
非常感谢您的在线提问。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应用程序,你应该使用DA14580中的sps_device项目。请记住,移动应用程序将是中央应用程序,而运行sps_device的DA14580将是外设。
关于你的第一个问题,请澄清一下吗?中央设备(SPS_HOST)上的应用程序自动启动扫描并连接到支持串行端口服务的第一个发现的外围设备(SPS_DEVICE)。中央设备还通过停止数据流并自动尝试重新建立连接来处理连接丢失的情况。
谢谢,PM_Dialog
你好PM_DIALOG!
感谢您的快速回复 !!
我检查了在dsps主机和dsps设备项目上的user_callback_config.h,你有权利。
我们需要设置中心扫描继续永远扫描外设,但我们不想与他们中的任何一个连接。
只扫描广告设备。
我们可以继续扫描设备列表思想UART吗?
如果我使用tera术语,我可以看到在终端扫描?
提前谢谢,
玛罗斯
嗨腻过,
扫描过程具有大约8到10秒的超时,因此为了继续扫描,您必须在调用Scan_Complete回调时发送新的扫描命令。每次都会暗示您有广告邮件,您只需打印数据即可。DSPS应用程序在user_od_adv_report_ind()中实现了Arch_prinf()函数,只要您在da1458x_config_basic.h中定义了cfg_printf定义即可
谢谢,PM_Dialog
你好PM_Dialogue !
感谢您的快速回复!
我们有一个手机和两个DA 14580的分类。
移动电话连接到第一个Da14580发送数据,然后在第二个Da14580上传输数据,并在外部处理器中执行我们的进程。
必须使用哪个程序来实现这一点?
第二个设备已经在运行DSPS (SPS_device)项目。
哪个程序必须在第一个设备上使用?
提前谢谢,
玛罗斯
嗨腻过,
BLE连接始终由中央设备(在您的情况下移动电话)启动。第一个设备也可以运行DSPS应用程序。因此,移动电话将连接到运行DSP(间隙外围设备)的第一个设备,并通过SPS配置文件发送数据。然后,您应该断开与第一个连接并连接到第二个。请记住,由于两者都运行DSP,您可能会更改BD地址和设备名称。
谢谢,PM_Dialog
你好PM_Dialogue
在数据通过移动电话转移到第一个设备后,我们需要。第一设备必须连接到第二设备并发送数据。
两个设备使用不同的蓝牙地址和名称运行(sps设备)
如何实施?
提前谢谢,
玛罗斯
嗨腻过,
由于它连接到移动(间隙中央),因此设备_1应该运行SPS_DEVICE固件,因此它配置了间隙外设。
因此,在Device_1完成数据转换之后,它应该与移动电话断开连接。你也可以用手机断开连接。
现在,要求使用DEVICE_2。为此,请将设备_2配置为间隙中央。DSP包括一个项目即SPS_HOST,它将DSP配置为GAP Central。
根据用户手册,中央设备上的应用程序自动启动扫描并连接到支持串行端口服务的第一个发现的外围设备。中央设备还通过停止数据流并自动尝试重新建立连接来处理连接丢失的情况
谢谢,PM_Dialog
你好PM_Dialog !
感谢您的快速回复!
我刚刚用(sps_device)和(sps_host)闪现了Device_1和Device_2。
来自手机的数据成功传输到Device_1,数据传输完成后,移动设备断开连接,但似乎Device_2不能与Device_1连接以获得数据。
我已经将Device_1和Device_2配置设置发送给你,以便更好地理解。
我等待你的回复
提前致谢,
玛罗斯
你好马里奥,你能检查一下Device_1是否在断开连接后开始发布广告吗?Device_2开始扫描?你可以使用SS Tollbox的能量分析器来验证它。
请做一个快速测试:在Device_1中运行sps_device,在Device_2中运行Dialog提供的sps_host。这能起作用吗?Device_2是否可以连接到Device_1?谢谢,PM_Dialog
你好PM_Dialog !
感谢您的快速回复!
是的,Device_1再次开始浏览Disconection后。
你有sps_Host广告的波形吗?
与我们的波形进行比较。
sps_Host似乎开始扫描,但我怎么能弄清楚
如果它与device_1连接?
非常感谢你的帮助
提前谢谢,
玛罗斯
嗨腻过,
SPS_HOST将设备配置为GAP Central角色,因此它将开始扫描。
我很抱歉,我无法复制这一点。
我正在使用DSP,没有任何修改,并按照对话框提供。
运行sps_device的Device_1开始发布消息-参见sps_device_ad . png。
运行sps_host的Device_2开始扫描-参见sps_host_scan.PNG。
正如我在前面的回复中提到的,中央设备(sps_host)上的应用程序自动开始扫描,并连接到第一个发现的支持串口服务的外设设备(sps_device)。因此,Device_2自动连接到Device_2。请参见sps_device_connected.PNG和sps_host_connected.PNG。
我建议不做任何修改就使用sps_host和sps_device,这样您就可以验证相同的功能。
谢谢,PM_Dialog
你好PM_Dialog !
是的,我在Device_2 (Sps_Host)上与你有相同的波形,但似乎它不能与我有的任何sps设备连接。
我使用硬件流控制使Device_2 (sps_host)处于扩展睡眠模式,因为我希望它使用电池运行。
CTS和RTS由外部微控制器控制并与UART通信。
该设备1 (sps_design)是SW流量控制和正常电池配置,也有微控制器和UART通信。
提前谢谢,
玛罗斯
嗨腻过,
你使用的是Dialog提供的DSPS项目吗?您对sps_host或sps_device应用程序代码做过任何修改吗?是否有可能提供一个嗅探日志,以便我可以了解什么是发生的空气?
你能检查一下sps_hose侧是否有广告报告user_on_adv_report_ind()吗?
谢谢,PM_Dialog
PM_Dialog !
感谢您的快速回复!
移动设备使数据传输到
微控制器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设备),但它没有向另一端传输任何数据。
哪种模式必须在主机侧设置以传输数据?
汽车吗?
直接连接 ?
给我们指点一下如何成功地做这件事
请帮助我们在对话DA14580平台上花费数千欧元开发。
我们是希腊最大的生产厂家,拥有全自动化生产线。
提前谢谢,
玛罗斯
嗨腻过,
连接不是问题,因为运行sps_host的Device_1向运行sps_device的Device_2发送连接请求,连接可以成功建立。
你能探测一下UART信号吗?
如果DA14580配置在任何睡眠模式下,那么您应该使用Hardware Flow控制。一旦数据在UART上,sps_host就应该将它们传输到对端设备。
因此,请在user_periph_setup.c / .h文件中检查UART信号和UART配置。
在应用程序代码和自定义板中使用的UART信号是什么?
谢谢,PM_Dialog
你好PM_DIALOG!
感谢您的快速回复!
我们已在另一边成功传输数据!
1)我们希望(sps_host)仅在流量控制上的数据时才启动连接模式?
需要进行哪些设置才能实现这一点?
2)我们还想要(SPS_HOST)在它接收数据之后进行广告和可连接,然后必须建立与(SPS_DEVICE)和发送数据。
提前谢谢,
玛罗斯
嗨腻过,
你能澄清你的问题吗?
正如我在前面的评论中提到的,sps_host将DA14580配置为GAP角色中心。一个中心设备可以发布广告-它只能开始扫描。
谢谢,PM_Dialof
你好PM_DIALOG!
感谢您的快速回复!
1)我们希望(sp_host)只有在从我们的外部微控制器上接收到其UART端口上的数据时才开始扫描。数据结束后必须从sps_device脱离。
2) sps_Host只需要扫描并与预定义的Sps_Device配对,而不需要与第一个发现的设备配对,因为我们有成千上万的da14580广告在同一时间和地点。
提前谢谢,
玛罗斯
嗨腻过,
DSPS应用程序不支持这两个要求。DSPS是由Dialog提供的。因此,在这种情况下,您必须修改DSPS应用程序代码——没有任何特定的配置。
谢谢,PM_Dialog
你好PM_Dialog !
谢谢你的快速回复!
我刚刚看过user_confing.h
///扫描响应数据
#定义USER_ADVERTISE_SCAN_RESPONSE_DATA”“
我没有在那个定义上设置任何东西
如果我设置了sps_device的广告名称,sps_Host将只连接到那个特定的设备?
如果我做错了,请纠正我。
1)在user_confing.h上
///设备名称被放置在广告或扫描响应数据中
#define USER_DEVICE_NAME "DIALOG-SPS" //这里我们设置sps_Host通告名。
静态const struct gapm_configuration
///设备角色:中心,外围,观察者或广播
。role = gap_central_mst,
/**************************************************************************************
*对端设备信息,仅用于:
*
*——GAPM_CONNECTION_AUTO
*——GAPM_CONNECTION_SELECTIVE
*
*有对等体地址和对应的对等体地址类型的白名单
**************************************************************************************
*/
/// BD设备地址
.peer_addr_0 = {0x00,0x00,0x00,0xca,0xea,0x23},//在此设置我们希望sps_host与它连接的sps_device的蓝牙地址。
///设备的地址类型0 = public / 1 =私有随机
.peer_addr_0_type = 0,
Config_advanced.h
#define CFG_NVDS_TAG_BD_ADDRESS {0x00, 0x00, 0x00, 0xCA, 0xEA, 0x80} //SPS_Host蓝牙地址
user_sps_host.h.
/**
****************************************************************************************
* @brief处理广告报告
* @param[in] param断开连接消息的参数
* @return无效
****************************************************************************************
*/
Void user_on_adv_report_ind(struct gapm_adv_report_ind const * param) (struct gapm_adv_report_ind const * param)
{
// if(!memcmp(&param-> report.data [3],user_advertise_data,user_advertise_data_len))
{
arch_printf("Connect with %02x %02x %02x %02x %02x %02x %02x",
param-> eport.adddr.addr [5],
param-> eport.addr.addr [4],
param - > report.adv_addr.addr [3],
param - > report.adv_addr.addr [2],
param - > report.adv_addr.addr [1],
param-> report.adddr.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();
}
}
提前谢谢,
玛罗斯