artnet4j
artnet4j 0.6.2
用于 Java 和处理的 Art-Net DMX over IP 库。该库为现有的 artnet4j 项目添加了很多功能。包括支持读取 dmx 数据。
OpDmx
包的能力8
和11
(oracle和openjdk) 我建议从 Maven Central 安装它。否则,也可以使用 github 包、jitpack.io 或仅下载二进制文件。
< dependency >
< groupId >ch.bildspur</ groupId >
< artifactId >artnet4j</ artifactId >
< version >0.6.2</ version >
</ dependency >
repositories {
mavenCentral()
}
dependencies {
compile ' ch.bildspur:artnet4j:0.6.2 '
}
该库添加了一个名为ArtNetClient
的新类,其中包含对底层 Art-Net 实现的轻松访问。
要发送 dmx 数据,您必须创建一个新客户端。可以通过将null
传递给构造函数来跳过缓冲区创建。
byte [] dmxData = new byte [ 512 ];
ArtNetClient artnet = new ArtNetClient ();
artnet . start ();
// set data
dmxData [ 0 ] = 128 ;
// send data to localhost on subnet 0 and universe 0
artnet . unicastDmx ( "127.0.0.1" , 0 , 0 , dmxData );
artnet . stop ();
基于SendDmxData
也可以通过广播发送数据。
// to broad cast data
artnet . broadcastDmx ( 0 , 0 , dmxData );
要读取数据,您必须创建一个新客户端并从缓冲区读取字节。请注意,您必须用0xFF
屏蔽字节(因为它们是有符号的)。
ArtNetClient artnet = new ArtNetClient ();
artnet . start ();
byte [] data = artnet . readDmxData ( 0 , 0 );
System . out . println ( "First Byte: " + data [ 0 ] & 0xFF );
artnet . start . stop ();
基于ReceiveDmxData
创建ArtNetClient
时,可以为服务器(传入)和客户端(传出)选择特定端口。
ArtNetClient artnet = new ArtNetClient ( new ArtNetBuffer (), 8000 , 8000 );
基于SendOnSpecificPort
还可以设置自定义网络接口。您可以在此处了解如何将自定义网络接口en5
绑定到 ArtNet 服务器:
NetworkInterface ni = NetworkInterface . getByName ( "en5" );
InetAddress address = ni . getInetAddresses (). nextElement ();
artnet . start ( address );
有时需要在收到新包时接收事件。为此,您可以获取底层ArtNetServer并向其添加新的侦听器。
artnet = new ArtNetClient ();
// add packet listener to server
artnet . getArtNetServer (). addListener (
new ArtNetServerEventAdapter () {
@ Override public void artNetPacketReceived ( ArtNetPacket packet ) {
println ( "new packet received!" );
}
});
artnet . start ();
该库基于当时的 artnet4j 项目。
Art-Net by Artistic License 允许通过 IP/UDP 广播 DMX 数据。该库正在实现 Java 应用程序的基本协议。
目前支持的核心功能有:
该项目目前仍处于 pre-alpha 阶段,因此目前只能通过 hg 访问源代码。另请注意,代码库的大部分仍在经历重大更改。
新功能由 Florian 开发。