Библиотека Art-Net DMX over IP для Java и обработки. Эта библиотека добавляет множество функций к существующему проекту 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 по художественной лицензии позволяет транслировать данные DMX через IP/UDP. Эта библиотека реализует базовый протокол для приложений Java.
В настоящее время поддерживаются следующие основные функции:
Этот проект в настоящее время все еще находится на стадии пре-альфа, поэтому доступ к исходному коду в настоящее время осуществляется только через hg. Также имейте в виду, что значительная часть кодовой базы все еще претерпевает серьезные изменения.
Новые функции разработаны Флорианом.