ArtNet programmieren?
ArtNet programmieren?
Hat schon mal jemand versucht ArtNet zu programmieren ? DMX ist ja kein Problem, aber ich habe nun 2 PSU-5A Pixelball Controller, die ich per ArtNet ansteuern muss. Das es über UDP geht ist bekannt , aber wie das Protokoll genau aussieht habe ich noch nicht verstanden. Kann mir jemand helfen ? Hast schonmal jemand versucht ?
1 Ball habe ich irgendwie in grün zum leuchten gebracht. Ich weiß aber nicht mehr wie....
Insgesamt habe ich 2 x 5 x 30 RGB Pixelbälle welche ich ansteuern möchte.
1 Ball habe ich irgendwie in grün zum leuchten gebracht. Ich weiß aber nicht mehr wie....
Insgesamt habe ich 2 x 5 x 30 RGB Pixelbälle welche ich ansteuern möchte.
PB 5.62 / Windows 11 64Bit (i5/32GB/240GB-SSD+3TB-HDD/1050GTX4GB) / 27" Multitouch Monitor
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: ArtNet programmieren?
Ganz erhlich.... Nööö ! Damit kann ich nichts anfangen. Wie drückt man das in PB aus ?
Sorry, das ist scheibar nicht so einfach, oder ich stelle mich zu blöd an.
Sorry, das ist scheibar nicht so einfach, oder ich stelle mich zu blöd an.
PB 5.62 / Windows 11 64Bit (i5/32GB/240GB-SSD+3TB-HDD/1050GTX4GB) / 27" Multitouch Monitor
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
-
- Beiträge: 6267
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: ArtNet programmieren?
Die Struktur dort sollte das hier in PB sein:Then hat geschrieben:Ganz erhlich.... Nööö ! Damit kann ich nichts anfangen. Wie drückt man das in PB aus ?
Code: Alles auswählen
Structure Artnet
id.a[8]
opCode.w
protocolHi.b
protocolLo.b
sequence.b
physical.b
universe.w
length.w
data.b[512]
EndStructure
[EDIT]
Da ist noch Artnet v2:
Code: Alles auswählen
Structure ArtnetDmx
id.a[8]
opCode.w
version.w
seq.b
physical.b
subUni.b
net.b
length.w
data.b[512]
EndStructure
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Re: ArtNet programmieren?
Ok. Danke. Ich seh schon , ich bringe dir die Teile vorbei....
Ich steh total auf dem Schlauch.
V2 ist es schonmal. Das habe ich rausbekommen. Ich sende per SendNetworkData() aber wie setze ich nun die Struktur richtig ein ? Port und IP sind vorhanden.
Ich Schlaf ne Nacht drüber... evtl ists auch zu warm ...
Ich steh total auf dem Schlauch.
V2 ist es schonmal. Das habe ich rausbekommen. Ich sende per SendNetworkData() aber wie setze ich nun die Struktur richtig ein ? Port und IP sind vorhanden.
Ich Schlaf ne Nacht drüber... evtl ists auch zu warm ...
PB 5.62 / Windows 11 64Bit (i5/32GB/240GB-SSD+3TB-HDD/1050GTX4GB) / 27" Multitouch Monitor
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: ArtNet programmieren?
Da gibt's wohl auch noch verschiedene Konstanten, die du nutzen kannst:
Die hab ich mir hier geklaut: https://github.com/MikeCodesDotNet/ArtNet.Net
Code: Alles auswählen
Enumeration ArtNetOpCodes
#None = $00
#Poll = $20
#PollReply = $21
#Dmx = $50
#TodRequest = $80
#TodData = $81
#Rdm = $83
#RdmSub = $84
EndEnumeration
Enumeration ArtNetStyles
#StNode = $00
#StServer = $01
#StMedia = $02
#StRoute = $03
#StBackup = $04
#StConfig = $05
EndEnumeration
Re: ArtNet programmieren?
Hey , danke. Die Seite kannte ich noch nicht. Habe schon seit Sonntag gegoogelt und gelesen. Komme dennoch nicht wirklich weiter. Scheint also dochvsehr kompliziert zu sein, per ArtNet Kommandos zu senden.
PB 5.62 / Windows 11 64Bit (i5/32GB/240GB-SSD+3TB-HDD/1050GTX4GB) / 27" Multitouch Monitor
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
Re: ArtNet programmieren?
Habe gerade Jinx! ausprobiert, alles funktioniert einwandfrei damit. Keine zusätzluche dll notwendig. Einfach exe anklicken ohne Installation und es läuft. Mit Windows eigenen Mitteln , laut Author. Also muss es ja auch wirklich auch mit pb möglich sein. Nur wie?
PB 5.62 / Windows 11 64Bit (i5/32GB/240GB-SSD+3TB-HDD/1050GTX4GB) / 27" Multitouch Monitor
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
Re: ArtNet programmieren?
Habe mal mit nem Sniffer mitgeschrieben, was da an diese IP Adresse gesendet wird. Kannste damit was anfangen ? Anfangs war ne ganze Zeit lang nix und dann habe ich die Farbe für die ersten 150 Bälle verändert. Kann man damit was anfangen ??
Code: Alles auswählen
0001E050 41 72 74 2D 4E 65 74 00 00 50 00 0E 00 00 11 64 Art-Net. .P.....d
0001E060 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E0A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E0B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E0C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E0D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E0E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E0F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E1A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E1B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E1C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E1D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E1E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E1F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E260 00 00 41 72 74 2D 4E 65 74 00 00 50 00 0E 00 00 ..Art-Ne t..P....
0001E270 11 64 02 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .d..÷..÷ ..÷..÷..
0001E280 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E290 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E2A0 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E2B0 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E2C0 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E2D0 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E2E0 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E2F0 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E300 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E310 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E320 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E330 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E340 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E350 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E360 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E370 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E380 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E390 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E3A0 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E3B0 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E3C0 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E3D0 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E3E0 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E3F0 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E400 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 ÷..÷..÷. .÷..÷..÷
0001E410 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 ..÷..÷.. ÷..÷..÷.
0001E420 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 F7 00 00 .÷..÷..÷ ..÷..÷..
0001E430 F7 00 00 F7 00 00 00 00 00 00 00 00 00 00 00 00 ÷..÷.... ........
0001E440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........ ........
0001E470 00 00 00 00 41 72 74 2D 4E 65 74 00 00 50 00 0E ....Art- Net..P..
PB 5.62 / Windows 11 64Bit (i5/32GB/240GB-SSD+3TB-HDD/1050GTX4GB) / 27" Multitouch Monitor
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: ArtNet programmieren?
Das erste Paket sieht so aus als PB-Code:
Das zweite sieht genau so aus, bloß, dass in data_ eben irgendwelche Werte stehen. Also immer "00 7F 00", was vermutlich bedeutet, dass der Grün-Kanal auf voller Power sein soll und die anderen aus sein sollen. Jetzt musst du das Paket nur noch per UDP rausschicken.
Code: Alles auswählen
Structure ArtnetDmx
ID.a[8]
opCode.u
version.u
seq.a
physical.a
subUni.a
net.a
length.u
data_.a[512]
EndStructure
Enumeration ArtNetOpCodes
#None = $00
#Poll = $20
#PollReply = $21
#Dmx = $50
#TodRequest = $80
#TodData = $81
#Rdm = $83
#RdmSub = $84
EndEnumeration
Macro Swap16(a)
(((a & $ff) << 8) | ((a >> 8) & $ff))
EndMacro
Define packet.ArtnetDmx
With packet
PokeS(@\ID, "Art-Net", -1, #PB_Ascii)
\opCode = Swap16(#Dmx)
\version = Swap16($E)
\seq = 0
\physical = 0
\subUni = $11
\net = $64
\length = Swap16($200) ; = 512
FillMemory(@\data_, 512, 0)
EndWith