gpt4 book ai didi

c# - 如何在 DMX Controller 中预缓冲 ArtNet3 数据包?

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:30 26 4
gpt4 key购买 nike

我正在创建一个库,旨在通过本地网络将 UDP 数据包发送到一串 100 个兼容 ArtNet3 的 DMX Controller 。

我已成功发送和渲染 ArtDmx 数据包。现在我正在尝试预先缓冲 DMX Controller 中的数据以帮助解决网络延迟问题。文档说发送一个 ArtSync 数据包来告诉 Controller 渲染之前收到的 ArtDmx 数据包,这就是我已经实现的。我还在 ArtDmx 数据包之前发送一个 ArtSync 数据包,以告诉 Controller 缓冲数据而不是渲染它们。这些 ArtDmx 数据包的序列属性填充了从 1 开始的每个宇宙/ Controller 的增量值。

我认为问题在于 OpCode 未被识别。当我使用 Wireshark 观察流量时,ArtDmx 数据包的 OpCode 被识别为“ArtDmx (0x5000)”。另一方面,ArtSync 数据包显示为“未知 (0x5200)”,即使该值与文档相匹配。有什么我想念的吗?这是 documentation .

最佳答案

我相信我的 WireShark 版本根本不支持 ArtSync 操作代码,并且不可避免地无关紧要。可能是 WireShark 仅本地支持早期版本的 ArtNet,可能是 ArtNet 或 ArtNet 2,它们可能不支持该功能。 ArtNet3 专为大型网络显示而开发。

就缓冲而言,可能是我误解了 ArtNet 3 文档。

When a node receives an ArtSync packet it should transfer to synchronous operation. This means that received ArtDmx packets will be buffered and output when the next ArtSync is received.

哪里说“[...] 收到的 ArtDmx 数据包将被缓冲 [...]”,在引用多个 Controller 时在语法上是正确的,当复数化“数据包”时,但在引用一个 Controller 时不正确。我使用的 ArtNet3 兼容 Controller 只会在我发送 ArtSync 数据包后渲染最后发送的 ArtDmx 数据包。

关于c# - 如何在 DMX Controller 中预缓冲 ArtNet3 数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33287426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com