你好,
我的客户使用的是Murata的DA14580模块。
它是通过uart连接到他们的微。
他们想通过ble将数据从他们的系统转移到包含他们自己应用程序的平板电脑上。
他们的系统通过BLE(设置为设备)将数据发送到作为数据接收器的平板电脑。
问题是平板电脑无法连接到DA14580设备,出现如下错误:"can not connect to device"
请注意,当尝试用中央模式连接DA14580EVKIT时,设置工作正常。
请解释这个问题以及他们将如何解决它。
问候
丹
Tritech
设备:
嗨Bendaa,
我看不出发生这种情况的任何明显原因,因为DSPS是一个完全托管代码和外部微只是通过UART发送数据-如果我正确理解系统的实现。所以我假设连接已经建立580,我假设断开发生时,外部微开始发送数据。因此,首先,尽量不要通过UART发送数据,并检查系统的行为。还有断网发生后580能再做广告吗?如果是,尝试在断开处理程序中检查断开原因。
由于MT_dialog
你好
我是本达的客户。
我们有580,它通过uart连接到我们的微型电脑。
我们想通过ble在平板电脑上传输数据到我们的应用程序,但它似乎可以连接如图所示的PIC
请建议为了将580连接到平板应用程序需要做些什么
请注意,与DSPS应用程序,580是Abe连接,我们看到我们的数据从微观,在DSPS应用程序控制台。
嗨roinovi,
这是一个更准确的问题描述,自定义的android应用程序似乎需要与580绑定,所以它开始了一个配对过程,DSPS应用程序不实现安全,而DSPS anroid应用程序不需要580的任何安全来连接。所以我认为,自定义android应用程序启动一个安全程序,但580从未给出一个响应,链接被删除。
由于MT_dialog
嗨
附件中的图片来自于我们尝试将580连接到android平板电脑:设置-蓝牙
那是在我们激活应用程序之前
我们甚至尝试把它连接到一个普通的安卓手机,在蓝牙设备,就像你把你的手机连接到一个普通的bl设备,比如耳机
为了连接dsps_device,我们需要更改什么?
嗨roinovi,
同样的道理也适用于android,它需要安全才能与你的设备配对。您可以通过在da1458x_confg_basic.h文件中定义CFG_APP_SECURITY来在DSPS参考设计中添加安全性,您将能够连接设备并与之配对,但您将不能保持与android的连接。一旦设备配对成功,android就会断开与设备的连接,因为它没有理由保持连接。但如果你试图连接到任何通用的android应用程序,例如BLE Scanner,你将能够连接,绑定和交换数据正常。
由于MT_dialog
你好
你说
“但你将无法与机器人保持联系。一旦设备配对成功,android就会断开与设备的连接,因为它没有理由保持连接。”
为什么会断开?
你说"没有理由保持联系"是什么意思?
嗨roinovi,
android默认应用程序将保持与预定义的有限设备子集的连接,如HID,因为它等待来自那些特定设备的数据,在DSPS的情况下,android将发出一个断开连接,因为DSPS不属于那种设备。你只能通过自定义或通用的android应用程序与android手机上的dsp保持连接。
由于MT_dialog
嗨
我已经定义了CFG_APP_SEC,但是得到了8个错误,如附件中的pdf所示
我在手册/参考指南中没有看到任何关于安全的内容
我应该做什么/在哪里搜寻?
我需要自己实现安全性吗?(我看到了“void app_sec_init(void);”但是没有看到它的实现)
b.t.w
我目前正在使用dsps_device v3.150.2,因为当我尝试使用v5.150.2时,我有一些问题
1)广告不稳定:大多数情况下,当我搜索设备时,dsp找不到它,但有时如果我等很长时间,它确实会出现几秒钟,然后消失。
2)如果我能够连接,当我的微开始发送数据通过uart,设备断开从DSPS应用程序
我能解决这些问题吗?
嗨roinovi,
由于您在SDK3上使用DSPS,您必须自己实现安全功能,因为在DSPS SDK3版本上没有安全实现。您可以检查实现安全性的Smart Tag,也可以查看SDK5 DSPS上的安全性实现。您还可以查看教程部分的软件和工具选项卡,教程6解释了安全特性,也许您会发现它很有用。
关于你在DSPS SDK5上看到的问题,我们没有任何报告提到这类问题,如果你使用580连接到你的pc,而不是在你的控制器上,同样的问题出现了?另外,您是使用DSPS使用的默认引脚,还是更改了引脚?
由于MT_dialog
如果uuid不同,将无法连接!
嗨吉田、
这不是UUID的问题,而是安全的问题,android需要安全才能连接,如果没有任何安全请求的响应,android中心将不会与外设建立连接。
由于MT_dialog
你好
我遵循了教程6,并更改了需要的内容(使用sdk5)。
我遇到的一个问题是,当我构建时,我得到一个错误
”。\ out_580 \ sps_device_580。axf: Error: L6218E: Undefined symbol app_advertise_complete (refer from app_task.o). "
语法正确吗?-> (.app_on_adv_undirect_complete = app_advertise_complete,)
为什么我得到“未定义符号”的“app_advertise_complete,”?
roi
嗨roinovi,
对于分配给app_on_adv_undirect_complete指针的回调,是否在包含的.h文件上有声明?同样,分配的回调必须返回void并有一个uint8_t参数。
由于MT_dialog
在同一个user_callback_config.h上有一个声明,其中"。App_on_adv_undirect_complete = app_advertise_complete, " exists .
就是这样:
空白app_advertise_complete (const uint8_t);
/**
****************************************************************************************
* @brief SPOTAR会话启动或停止事件处理程序。
* @param[in] spar_event spar_start / spar_stop
* @return无效
****************************************************************************************
*/
然而,我在项目中没有找到任何其他关于这个函数的引用。
它很奇怪,因为它是dialog提供的sps_device项目。
在如何添加安全的教程中,它说改变回调
从
.app_on_adv_undirect_complete = default_app_on_adv_undirect_complete,
来
.app_on_adv_undirect_complete = app_advertise_complete,
这是我做的
为什么没有实现"void app_advertise_complete(const uint8_t);"?
我在哪里可以找到它?
嗨roinovi,
我明白你的意思,就我所知,没有任何实现的app_advertise完成。DSPS项目使用default_app_on_adv_undirect_complete()函数在发布操作结束时执行。我假设app_advertising_complete只是一个占位符,用于在完成广告后执行的任何用户指定的替代函数。
由于MT_dialog
所以基本上,我可以离开。app_on_adv_undirect_complete = default_app_on_adv_undirect_complete,"当我根据教程6:配对,绑定和安全实现安全时
顺便说一下,DSPS default_app_on_adv_undirect_complete做什么?
tnx
roi
嗨roinovi,
是的,你可以保留默认回调。在DSPS示例中,default_app_on_adv_undirect_complete()不做任何事情,只是一个空函数,因为DSPS停止广告的唯一原因是当他接受来自中央的连接时。其他应用程序雷竞技安卓下载,例如更改回调中的广告字符串的应用程序将重新启动广告。
由于MT_dialog
好吧
我让它像“。app_on_adv_undirect_complete = default_app_on_adv_undirect_complete”,并将它写入da14580。
现在我可以看到da广告,但我不能连接到它,我已经尝试连接到我的电脑和浅蓝色的应用程序,但在两者我都得到一个连接错误
在电脑上,我得到一个认证错误(它不弹出一个pincode屏幕),在浅蓝色的应用程序,它只是超时。
有什么问题吗?
嗨roinovi,
由于您应用了安全性(您是否从外设向中央发送安全请求?我认为您是这样做的),如果中央响应请求,外设将超时并放弃连接。如果安全响应是从中央发送的,那么中央可能不满足外设设置的要求。如果中央发送一个配对请求,你不该有一个嗅探器检查整个安全程序,您可以检查如果出现安全处理程序,例如,当配对请求发送从中央default_app_on_pairing_request()会发生,所以尽量检查功能和是否从外围发送一条响应消息。您还可以查看SDK 5.0.4中的安全示例(ble_app_security)。
由于MT_dialog
我所做的就是打开dsps_device项目,并按照教程6:配对、绑定和安全的指导实现安全性。
它会向中央发送安全请求吗?
我实现了安全性,因为我试图使用手机配对机制将我的设备连接到android应用程序(可以在设置中找到的常规程序->蓝牙,就像连接耳机)
然而它不能连接,所以我在这个论坛上问,我得到的回答是,android不能连接到设备,因为android期望一个安全程序(不像DSPS应用程序)。
这就是为什么我要实现安全性
嗨roinovi,
是的,如果您遵循本教程,设备将向中心设备发送一个安全请求,以指示应该启动配对过程。但是DSPS不能仅仅通过这种定义来发送这种请求。DSPS在.app_on_connection回调中使用一个自定义函数,因此当连接时它不会向中央发送安全指令。default_app_on_connection()通过使用app_easy_security_request()函数来实现这一点。因此,如果你没有这个功能,你不会发送一个安全指示到中央。
在需求方SDK5,如果你只是定义的CFG_APP_SECURITY da1458x_config_basic.h你将能够对android应用程序因为如上所述,如果你尝试连接到你的android应用程序(android的应用程序),它要求其他设备安全为了债券,但是它不会保持连接,它只会为了配对和断开连接而连接一小段时间,android将发出一个断开命令(查看我的#6评论)。
如果你试图连接BLE android应用程序,比如BLE扫描仪(一个通用的BLE应用程序)等,他们不要求安全性,所以你的设备要么在连接时明确说明它需要安全,要么为特征设置一个安全级别,当中央试图访问它们时,它会看到它们是受保护的,并开始配对过程。
由于MT_dialog