Aufruf DMX_FadeChannel

Hallo an Alle,

wenn ich DMX_FadeChannel mit einer Fadezeit aufrufe und vor Ablauf der Fadezeit DMX_FadeChannel erneut aufrufe was passiert dann intern. Irgendwie fühlt es sich an als das nach einer Zeit IPS überlastet ist und nicht mehr reagiert. Ich steuere gerade einen SPI LED Stripe an. Als DMX Adapter nutze ich einen Quad Artnet Controller von Radig.

Gibt es eine bestimmte Vorgehensweise die zu beachten ist?

Das alte Fading wird abgebrochen und das neue gestartet. Kann es das sein, was du als inkorrekt empfindest?

paresy

Das Fading wird nur abgebrochen wenn es der gleiche Kanal ist?

IPS fühlt sich an wie stark beschäftigt. Das Webfront reagiert kaum noch.
Ein Timer startet alle 2 Sekunden ein Schritt welches dann 27 Kanäle (9x3 Kanäle RGB) auf eine neue Farbe fadet. Die Summe der Fadingzeiten ist aber grösser als 2 Sekunden.

<?php
//DMX Fill Wohnzimmer
$DMX_Instance_ID = 27219;
$LenghtSPIStripe = getvalueInteger(IPS_GetVariableIDByName("ANZAHL_SEGMENTE",$DMX_Instance_ID));
$ID_Helligkeit = 10406;
$ID_RGBSave = 30533;
$Colors = array (
						1 => array(255,255,255), //weiss
			       		2 => array(255,0,0), //rot
		 	        	3 => array(0,0,255), //blau
		 	        	4 => array(230,220,0), //gelb
		 	        	5 => array(0,255,0), //grün
		 	        	6 => array(255,0,255), //pink
		 	        	7 => array(255,30,0), //orange
		 	        	8 => array(0,209,213), //türkis
);
$OldRGB = GetValueInteger($ID_RGBSave);
do {
    $RGB = random_int(1,count($Colors));
    if ($RGB <> $OldRGB) break;
} while (true);
SetValueInteger($ID_RGBSave,$RGB);
$FadingTime = 0.5;
//DMX Werte setzen

$Helligkeit = getvaluefloat($ID_Helligkeit);
$R = intval($Colors[$RGB][0] * $Helligkeit);
$G = intval($Colors[$RGB][1] * $Helligkeit);
$B = intval($Colors[$RGB][2] * $Helligkeit);
for ($i = 0; $i < $LenghtSPIStripe; $i++) {
    $Pos = ($i * 3) + 1;
    DMX_FadeChannel($DMX_Instance_ID,$Pos,$R,$FadingTime);
    DMX_FadeChannel($DMX_Instance_ID,$Pos + 1,$G,$FadingTime);
    DMX_FadeChannel($DMX_Instance_ID,$Pos + 2 ,$B,$FadingTime); 
    
    ips_sleep(20);
}   
$OldRGB = GetValueInteger($ID_RGBSave);
do {
    $RGB = random_int(1,count($Colors));
    if ($RGB <> $OldRGB) break;
} while (true);
SetValueInteger($ID_RGBSave,$RGB);
ips_sleep(1000);
$R = intval($Colors[$RGB][0] * $Helligkeit);
$G = intval($Colors[$RGB][1] * $Helligkeit);
$B = intval($Colors[$RGB][2] * $Helligkeit);

for ($i = $LenghtSPIStripe; $i >= 0; $i--) {
    $Pos = ($i * 3) + 1;
    DMX_FadeChannel($DMX_Instance_ID,$Pos,$R,$FadingTime);
    DMX_FadeChannel($DMX_Instance_ID,$Pos + 1,$G,$FadingTime);
    DMX_FadeChannel($DMX_Instance_ID,$Pos + 2,$B,$FadingTime); 
    ips_sleep(20);
}

?>

Hm. 27 Kanäle alle 2 Sekunden ist jetzt nicht gerade viel. Das dürfte IP-Symcon eigentlich so gar nicht beeindrucken. Hast du die 6.1 in Verwendung und könntest mit der Listenansicht mal schauen, ob ggf. dein Skript doch mehr als diese 27 Kanäle ansteuert?

paresy

Mach ich. Die Länge des Stripes ist 127 und das mit 3 Kanälen macht 381.
Ich habe die 6.2
Die WebConsole hängt wenn diele Kanäle geändert werden.
Wie sehe ich das in der Listenansicht? Ich sehe alle 381 Kanäle und die werden gesetzt.

@paresy
Es liegt definitiv an den vielen Variablen das sich die WebConsole aufhängt. Ich habe SPI Stripes mit 336 DMX Kanälen und diese werden teilweise sekündlich geändert. Dann hängt sich die Konsole auf und ich muss am besten Chrome neu starten. DenIPS Dienst starte ich nicht neu.

Funktioniert denn das Fading ansich korrekt, wenn die Konsole nicht offen ist?

paresy

Ja das Fading funktioniert alles. Nur die Console macht Probleme.
Wenn ich die DMX Routine ausschalte dann fängt sich die Console manchmal wieder.
IPS läuft normal weiter. Ich beende dann den Googlebrowser und starte Ihn neu. Dann geht auch die Konsole wieder. Es hat wahrscheinlich etwas mit den vielen Variablenänderungen zu tun.

Hallo @zman0801,

wir haben für für die 6.2 bereits einige Optimierungen in der Pipeline, die evtl. auch bei dir helfen könnten. Ich schicke dir mal gleich eine PM mit einer speziellen Version der Konsole.

paresy