在java中使用Enttec Open Dmx USB控制灯光?



我正在java中启动一个项目,我想使用终端窗口从我的计算机控制灯光。 我正在使用一个名为Enttec Open DMX USB转换器的硬件。 所以我写这个问题,问社区是否有人知道如何将数据发送到这个Enttec设备来控制灯光。 我从哪里开始?我已经知道如何编写终端命令别名并执行.jar文件,所以我不需要帮助。

到目前为止,我尝试的是查看一个名为"开放照明项目"的开源项目,我知道它可以控制设备并了解它是如何工作的以及如何制作我的程序。 但是我卡在Github存储库中的java代码文件夹中,试图找到一个DmxData.java类,它说OlaClient.java正在导入。所以我非常困惑它从哪里得到它。

我也尝试在Enttec网站上查看开发人员工具,但它们不起作用。 更具体地说,我查看了名为Java Wrapper的文件包,并尝试运行测试,每次都失败并出现不同的错误。

这些是链接:

恩泰克设备:https://www.enttec.com/product/controls/dmx-usb-interfaces/open-dmx-usb/

开放照明架构 Github 存储库:https://github.com/OpenLightingProject/ola

任何帮助将不胜感激!

谢谢!

一年多前我把一个DmxPy移植到Java上。它通过ENTEC DMX USB Pro满足了我的需求。看看这是否适合您。

链接: https://github.com/trevordavies095/DmxJava

实例化:DmxJava dmx = new DmxJava();

设置 DMX 地址的值:dmx.setChannel(dmx_address, value);

要发送的 DMX 数据包byte[] dmx_packet = dmx.render();现在,您可以使用正在使用的任何串行库将数据包发送到 ENTTEC

我使用Juanjo的lib(https://sourceforge.net/projects/opendmxjavajni/(。DMX512 协议非常简单。主要概念是:

宇宙:您可以选择任何宇宙,从0开始,到~65K。宇宙是一个孤立的灯具网络,每个有 512 个通道。大多数入门级 DMX/USB 接口只能与一个接口配合使用。

通道:每个通道支持 0 到 255 之间的整数值。有些灯具只使用一个通道(例如,调光器(,有些使用多个通道(例如,RGB 灯具,使用通道进行调光,其他 3 个通道用于红色、绿色和蓝色(,有些可能会变得非常复杂,使用大量的通道(例如:移动头(。您必须了解要使用的实际灯具使用的通道是什么(通道 n:调光器、通道 n+1:红色等(。通常您可以在夹具配置中设置"n"值。

要连接 DMX/USB 接口,请使用:

OpenDmx.connect(OpenDmx.OPENDMX_TX)

通常,您需要运行一个无限循环,在其中您可以控制每个通道上的内容。只需更新 DMX 阵列("int"数组(,考虑到通道 1 将位于位置 0,依此类推,直到位置 511。界面将相应地不断更新您的灯具。

OpenDmx.setValue(channel,value);

Juanjo的lib有几个可能有用的例子。

祝你好运。

最新更新