44 lines
1.2 KiB
GDScript
44 lines
1.2 KiB
GDScript
extends Node2D
|
|
|
|
#nc -ul 2115
|
|
var socket = PacketPeerUDP.new()
|
|
var data = []
|
|
|
|
@export_range(0,255,1) var master = 200
|
|
@export_range(0,255,1) var red = 0
|
|
@export_range(0,255,1) var green = 200
|
|
@export_range(0,255,1) var blue = 0
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready() -> void:
|
|
# Server
|
|
socket.set_dest_address("192.168.21.27", 6454)
|
|
data.resize(512)
|
|
data.fill(0)
|
|
|
|
var last_update_delta=0
|
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
func _process(delta: float) -> void:
|
|
last_update_delta+=delta
|
|
|
|
if last_update_delta>1.0/40.0:
|
|
last_update_delta=0
|
|
print("Update")
|
|
|
|
data[0]=master #master dimmer
|
|
data[2]=red #red
|
|
data[3]=green #green
|
|
data[4]=blue #blue
|
|
sendDMX(data)
|
|
|
|
|
|
func sendDMX(data:Array):
|
|
var buffer=PackedByteArray([65, 114, 116, 45, 78, 101, 116, 0, 0, 80, 0, 14]) # Art-Net\0 / OpCodeLo / OpCodeHi / ProtoHi /ProtoLow
|
|
var universe=0
|
|
buffer.append_array([0,0,universe,0]) # Seq / Physical / SubUni/Net
|
|
var length_upper = floor(data.size() / 256)
|
|
var length_lower = data.size() % 256
|
|
buffer.append_array([length_upper, length_lower])
|
|
buffer.append_array(data)
|
|
var error=socket.put_packet(buffer)
|
|
return error
|