简单的DA14531多线程

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
9个员额/ 0个新员额
最后一篇
Joachimkr.
离线
最后一次露面:3周11小时前
加入:2018-07-06 08:58
简单的DA14531多线程

你好,

我已经用Keil IDE写了一个应用程序,通过通知订阅节点来传输RFID读取器。读者是我的硬件系统的一部分。在客户要求通知他的读者时,在客户通知之后启动硬件处理。
那是工作的,但它阻止了任何其他活动。
现在,我需要一个提示/简单的例子,我如何完成以下内容:

可以指示另一种相同的节点,以将此作为中继。这是网格的替代品,也需要适合小RAM。所以我想构建一棵树,其中root附近的节点有一个以某种方式优先,但允许转发源头和读取结果信息。DA14531对网格没有支持,这与我完全没问题。我只需要使用相同的连接服务多个GATT服务频道。并且,我需要支持3个或更多连接,其中我用一个节点监督网络,它使用GATT服务来指导连接。没有自动化,我想控制关于连接并接受结果的优先级。
我想,我需要能够,使用另一个GATT通道/服务,放置我的参数和启动活动,而我的主要活动继续。
我已经观察到的是,在我用于检测射频识别的主循环启动后,没有其他GATT服务在工作。
我试着打开或关闭LED开关。它工作正常,直到我开始我的通知弃权。启动时,LED开关GATT业务不可达。
我注意到,服务的广告也停止了 - 校长中很好。但我认为它是一个指示,任何其他活动都是不可能的。我的连接数量设置为1.但是这是Showstopper,还是还有更多?
同样的连接用于两个服务,但我的RFID循环消耗任何东西。如何暂停它,以提供进一步的GATT服务?
为什么我的第一个通知服务占据整个系统?(代码有轮询性质,RFID前端的中断目前不可用)
作为第一步,我希望能够使用我的LED交换服务,而RFID阅读器正在运行。

感谢您的帮助和提示!
约阿希姆

P.S.背景:PC或Raspberry等任何节点似乎限制了连接数。有人想过,这是在7个连接的范围内。我需要连接大约100个设备。流量将足够小,从伴侣中传递通知。

设备:
PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨Joachimm,

嗨Joachimm,

感谢您在网上提出的问题,以及您对我们BLE产品的兴趣。亚博电竞菠菜

让我查一下,然后给你答复。

DA14531充当中央或外围设备?

同时,请您看一看DA14585/DA14586 - DA14531多外设示例SW示例。

这个示例演示了如何将一个外围设备连接到多个中心设备。DA14531能够支持最多3个。此外,它还演示了如何根据不同的连接保持不同的特征值。

谢谢,PM_DIALOG.

Joachimkr.
离线
最后一次露面:3周11小时前
加入:2018-07-06 08:58
你好,

你好,
这实际上是一个有趣的例子,它显示了SDKs ROM函数重载的预期困难。我的第一个答案是:
我的设备可以充当外围设备的角色,发布所有服务,一个(完全具备能力的)设备,比如Raspberry PI,可以将整个管弦乐队的连接参数写到所有设备上,这样任何设备都可以建立并保持最多3个连接。一个向上,两个向下。向下接收的数据被向上转发。
这是解释我的想法吗?两个向下的设备连接到向上设备。

你看到我的设备单线程行为的困难了吗?我需要一种方法来返回控制库代码,所以它将服务多个GATT服务,我的轮询代码,目前运行永远和排他。

非常感谢,
约阿希姆

PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨Joachim,

嗨Joachim,

>>然后可以将整个管弦乐队的连接参数写入所有设备,因此任何设备将构建并保持最多3个连接。

关于这个声明,你能澄清一下吗?因此,一个外围设备将同时连接到3个中心设备。那么,外设应该更新连接到所有3个中心的连接参数?

谢谢,PM_DIALOG.

嗨Joachim,

>>然后可以将整个管弦乐队的连接参数写入所有设备,因此任何设备将构建并保持最多3个连接。

关于这个声明,你能澄清一下吗?因此,一个外围设备将同时连接到3个中心设备。那么,外设应该更新连接到所有3个中心的连接参数?

谢谢,PM_DIALOG.

Joachimkr.
离线
最后一次露面:3周11小时前
加入:2018-07-06 08:58
你好,

你好,

你有点误解了,我的意图是,在每个设备上有3个并发连接。2作为中心,以从下面有序的外设转发信息,而1在外设的作用下向上一级。结果是一个树状结构,在那里我有一个“网格”的基本功能-在那里更高的层次将他们的消息更快地发送到最终中心。
正如我发现的那样,在最上层,限制似乎接近7个并发连接。这意味着,我可以构建一个二叉树。
该树结构的设置需要默认设备,刚刚组织网络。

任何DA14531都需要支持两个外设和上部节点。
配置(在蓝牙MAC地址方面)将由专用应用程序设置,并且将保存在非易失性存储器中。

这个更清楚了吗?
谢谢你的支持,
约阿希姆

PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨joachimkr,

嗨joachimkr,

是否有可能共享应用程序的高级框图,以便我们更好地理解它?

谢谢,PM_DIALOG.

Joachimkr.
离线
最后一次露面:3周11小时前
加入:2018-07-06 08:58
你好,

你好,
当然是。DA14531不支持网格,因此我搜索绕线。我可以和一个设备树一起生活,其中一些是在中央,有些是叶子。叶子发送他们的活动,重量更改到上一个级别。在那里,它被转发到下一个等等。最后,消费旁边的设备(非DA14531)设备旁边发送来自较低级别的任何东西 - 它是自身的值变化。我的避难所实施需要在网络设置中配置配置。管理设备将此设置中的连接数据和角色发送到任何设备。他们将其存储在非易失性记忆中。这是可以接受的,因为它通常只是一次完成。 Does this make sense ?

问候,
约阿希姆

PM_DIALOG.
离线
最后一次露面:3天13小时前
职员
加入:2018-02-08 11:03
嗨joachimkr,

嗨joachimkr,

很抱歉耽搁了。DA14531最多支持3个连接。然而,同时扮演外围和中心角色是不可能的。你可以进行角色转换。

谢谢,PM_DIALOG.

Joachimkr.
离线
最后一次露面:3周11小时前
加入:2018-07-06 08:58
你好,

你好,
谢谢你的角色转换建议。我可能会知道这意味着什么。

目前,我的计划是提供GATT服务,它允许叶节点向接受值的左服务和右服务交付事件/值,其中父节点(都具有相同的角色)可以注册以得到通知。
结果是二叉树,其中根节点发送/在所有子树单元的许可中发送通知。

每个单元充当转发器,可以通过通知生成自己的值。
Bandwith不是问题。我也可以将数据压缩为每个通知的20个字节。

这棵树的设置可能需要切换,但我假设(告诉我,如果我错了)所有树单位都可以保持在外围模式,除了连接建立。我想要一个解决方案,在设置相位中分发树单位的​​MAC,并触发树单位以存储这些永久性。我有一个闪光灯设备。

顺便说一句。TI也有一个类似的应用说明。但我不理解设置阶段,想要我自己的详细,以某种方式手动设置。

最好的问候,
约阿希姆