12个新帖子/ 0
最后发表
marcodg
离线
最后看到:3年1月前
加入:2015-01-14 17:58
建议申请流

我有这些论坛寻找尽可能多的信息我可以收集和查阅throughput_evalsps源代码和我有点熟悉他们,理解他们在某种程度上。他们为我做仍有点不透明…也许你可以幽默我这里。

我不需要超级高吞吐量……> 3 k字节/秒。我有一个中断发生的每2女士产生6字节。但我无法实现这个使用标准的关贸总协定通知机制(如果我每4女士产生一个中断,我开始失去数据)。所以我的第一个问题是,这似乎不对任何人吗?我一直通过关贸总协定20字节数据包的队列发送通知。GATTC_CMP_EVT消息后我检查队列和进度发送下一个包如果是可用的。系统跟不上,不能大约100包(如果我让队列更大,更不用说如果我在一个2时钟中断期)女士。

因此,假设上面不会工作,我看了看throughput_eval项目。它看起来像它使用多个特征(数据似乎是写给所有的并行)和l2cap。对我来说很难看到客户端接收数据做什么在这里没有例子。客户端有与l2cap吗?不幸的是,我的Windows电脑并不做任何事情但关贸总协定所以我不确定如何协调。

SPS的东西我不认为你能做的。特征(SPS_SERVER_TX)有一个128个字符的大小。我不认为你可以通知一个大型对象(当我试过,它不工作)。也许我缺少一些关键方面在这里但我也不能告诉这里的最大吞吐量。

画廊的任何建议将是有益的。
谢谢,
马可

设备:
MT_dialog
离线
最后看到:5月3周之前
工作人员
加入:2015-06-08 34
嗨marcodg,

嗨marcodg,

发出召唤,睡眠系统中启用了吗?你应该能够发送数据,这样的速度,如果启用了睡眠在禁用中断时可能会丢失数据,还你处理这些数据?你说系统失败,去hardfault处理程序吗?还如何发送通知?你填充队列在中断处理程序和更新数据库中的值吗?

没有客户端不必与l2cap交互。

需求方的项目发送mtu交换命令(这允许主机,如果他接受,接受更大的mtu),你可以试一试,如果你喜欢,但我认为这是你的问题。

由于MT_dialog

marcodg
离线
最后看到:3年1月前
加入:2015-01-14 17:58
谢谢你的回复。

谢谢你的回复。睡眠模式未启用。没有处理的数据。中断了队列,如果队列是空的时所说的一个,它发送初始消息流任务发送队列中的下一个项目。处理该消息流任务(通过将数据库中的数据和发送通知)在正常的事情。GATTC_NOTIFY消息时,它会检查是否有更多的数据包发送,如果是这样的话,给自己一个消息发送队列中的下一个项目。因此它适用于无穷。需要三个中断填满一个包(18个字节+ 2字节的状态)。在一个中断8期女士(125 hz, 24女士/包)一切都好了。事实上,队列永远不会超过1项放在它。 With an interrupt period of 4ms (12ms/packet) the queue fills up. I get about 100 valid packets received at the client. I fully acknowledge that I may have screwed this machinery up somehow but if I did I don't know where... it's not that complicated.

(注意:数据包从队列中删除GATTC_NOTIFY防止多个消息/数据包在流通。我有这个问题首先导致队列去下面空……值得庆幸的是没有伤害人类和宠物在接下来的灾难)。

连接时间间隔是任何缺省的是(我认为7.5或8 IIRC女士)。

谢谢,
马可

MT_dialog
离线
最后看到:5月3周之前
工作人员
加入:2015-06-08 34
嗨marcodg,

嗨marcodg,

你能试着从ISR ....设置只是一个标志然后检查app_asynch_trm国旗,如果国旗设置然后发送消息流的任务。也许ISR的消息发送到流任务原因你正面临的问题。你能上传图像智能手剪连接和发送数据时(当失败时,当它不)?

由于MT_dialog

marcodg
离线
最后看到:3年1月前
加入:2015-01-14 17:58
设置ISR的旗帜

设置国旗ISR和发送消息的主循环似乎没有帮助。我钓了一个范围和翻转GPIO一点。当我设置中断率足够低(< 180 Hz,每16.7 ms)数据包之间的时间间隔发送数据包时,当我得到GATTC_NOTIFY(我可以发送下一条消息如果可用)大约是800,和偶尔的flash 1.2 ms。它是非常稳定的。当速度超过195赫兹的范围,但我能够测量数据包之间的时间和GATTC_NOTIFY在许多情况下是> 55 ms。当足够的这些长间隔,队列满了。我将工作在智能图像片段(我还没有使用,软件)。

(编辑:似乎不妥的东西找不到ftd2xx.dll SmartSnippets。我有Windows 10…)

MT_dialog
离线
最后看到:5月3周之前
工作人员
加入:2015-06-08 34
嗨marcodg

嗨marcodg

图像从智能片段可以帮助你触发下一个数据包的发送等待前面GATTC_NOTIFY完成事件吗?
你能试着发送消息而无需等待吗?

由于MT_dialog

marcodg
离线
最后看到:3年1月前
加入:2015-01-14 17:58
谢谢你的回复。我

谢谢你的回复。我需要一些指导“智能片段”。我得到了SmartSnippets启动(下载驱动程序)和可以下载代码并使其运行。但在那之后,我不确定该做什么。我看到一个“数据率监控”右下角,但推按钮似乎没有影响。我应该注意,我使用一个PAN1740模块。

在其他新闻,我试着增加MTU大小从23到87年,认为如果我能发送更少的数据包,将工作。而它确实让我增加频率(约240赫兹)仍不能以同样的方式。当数据包发送和GATTC_NOTIFY之间的时间变得很长,大约60女士在这种情况下,这是频率超过所需的数据包。

如果我不等待GATTC_NOTIFY和发送数据包时准备好,说,每52.8 ms 87字节对应MTU(我需要一个女士包每32),包已经在源中。我有一个在我发送的数据包序列号。的值是不连续的。通常只有一个包但是我看到多达两个下降。

我继续检查代码以确保我不破坏。

marcodg
离线
最后看到:3年1月前
加入:2015-01-14 17:58
仍然没有运气。我试着

仍然没有运气。我试着使用l2cc(如throughput_eval项目),但在更高的吞吐率,与关贸总协定在哪里失败,设备会进入复位。在更高的中断率,GATTC_NOTIFY花太长时间会发送消息,填充队列。如果我不等待消息数据包得到下降,即使他们只是在每50毫秒1包(87字节MTU)。我试着调整MTU的大小,但这似乎并没有帮助,除了大数据包略做得更好。

我改变了代码,没有真正的处理发生在ISR本身。kermel消息发送的一部分app_asynch_trm()函数。

GATTC_NOTIFY这一事实很长是一个谜,因为较低的中断率,发送/等待过程只有几毫秒。

MT_dialog
离线
最后看到:5月3周之前
工作人员
加入:2015-06-08 34
嗨marcdg,

嗨marcdg,

你能寄给我们一些聪明的片段活动,也许我们可以看看,找到一些。

由于MT_dialog

marcodg
离线
最后看到:3年1月前
加入:2015-01-14 17:58
我无法获得聪明

我无法让smart-snippets工作。该设备是一个松下1740。我有CFG_STREAMDATA定义以及指标。我可以下载代码和设备(jlink),但datarate监控只支持一个com端口。通常“外围开始”按钮没有反应,其余的时间就会显示一个错误。

marcodg
离线
最后看到:3年1月前
加入:2015-01-14 17:58
我想我发现了问题。

我想我发现了问题。使用wireshark我能够跟踪谈话从客户机(PC运行Windows 10)。我能看到个人电脑反应与空PMU数据包每次L2CAP片段。有时,反应时间太长,迫使数据备份我的设备上。我不是幸运的专家,所以你可以从客户机确认响应的形式(一个空PMU)之前需要进行下一个传输数据包?

谢谢
马可

MT_dialog
离线
最后看到:5月3周之前
工作人员
加入:2015-06-08 34
嗨marcodg,

嗨marcodg,

我们不能告诉你从日志上传(在其他文章中,我假设你正在检查相同的情况下),因为一些数据包似乎失踪。一般来说,主机投票设备在每个连接间隔空pmu或数据包(如果需要发送的东西)。这些包主机有能力承认之前还包设备发送是接收和执行某种类型的流控制。如果包不承认那是怨恨。换句话说,如果主持人明确不承认一个数据包然后设备不能发送另一个,直到最终承认从主机这个包。这样的主机可以阻止设备发送数据包。在任何情况下,主机总是投票设备!因此,你报道,主持人摊位在数据包发送空的民意调查,确实是一个问题,如果它发生,而不是产生的嗅探器,似乎并不十分可靠。

由于MT_dialog