Kein Thema, ist aber kein schöner Code.
Startwerte:
Die Schleife sieht vereinfacht so aus (Initialisierung und das Aufräumen nach Abbruch habe ich für die Übersicht weg gelassen):
hth
Startwerte:
Code:
if mode() == 1: # cool colours
sh.og.colour_master.cycler.mode.r_up_limit(sh.og.colour_master.cycler.level()/2)
sh.og.colour_master.cycler.mode.g_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.b_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.r_lo_limit(0)
sh.og.colour_master.cycler.mode.g_lo_limit(0)
sh.og.colour_master.cycler.mode.b_lo_limit(0)
if mode() == 2: # full colour
sh.og.colour_master.cycler.mode.r_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.g_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.b_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.r_lo_limit(0)
sh.og.colour_master.cycler.mode.g_lo_limit(0)
sh.og.colour_master.cycler.mode.b_lo_limit(0)
if mode() == 3: # Sifi
sh.og.colour_master.cycler.mode.r_up_limit(0)
sh.og.colour_master.cycler.mode.g_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.b_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.r_lo_limit(0)
sh.og.colour_master.cycler.mode.g_lo_limit(sh.og.colour_master.cycler.level()/2)
sh.og.colour_master.cycler.mode.b_lo_limit(sh.og.colour_master.cycler.level()/2)
if mode() == 4: # warm colours
sh.og.colour_master.cycler.mode.r_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.g_up_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.b_up_limit(sh.og.colour_master.cycler.level()/2)
sh.og.colour_master.cycler.mode.r_lo_limit(sh.og.colour_master.cycler.level())
sh.og.colour_master.cycler.mode.g_lo_limit(0)
sh.og.colour_master.cycler.mode.b_lo_limit(0)
Die Schleife sieht vereinfacht so aus (Initialisierung und das Aufräumen nach Abbruch habe ich für die Übersicht weg gelassen):
Code:
while sh.og.colour_master.cycler():
while sh.og.colour_master.cycler() and mode() == 1: # cool colours
while green < g_up_limit() and sh.og.colour_master.cycler() and mode() == 1:
green = green + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while blue > b_lo_limit() and sh.og.colour_master.cycler() and mode() == 1:
blue = blue - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while red < r_up_limit() and sh.og.colour_master.cycler() and mode() == 1:
red = red + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while blue < b_up_limit() and sh.og.colour_master.cycler() and mode() == 1:
blue = blue + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while red > r_lo_limit() and sh.og.colour_master.cycler() and mode() == 1:
red = red - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while green > g_lo_limit() and sh.og.colour_master.cycler() and mode() == 1:
green = green - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while sh.og.colour_master.cycler() and mode() == 2: # full colour
while green < g_up_limit() and sh.og.colour_master.cycler() and mode() == 2:
green = green + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while red > r_lo_limit() and sh.og.colour_master.cycler() and mode() == 2:
red = red - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while blue < b_up_limit() and sh.og.colour_master.cycler() and mode() == 2:
blue = blue + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while green > g_lo_limit() and sh.og.colour_master.cycler() and mode() == 2:
green = green - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while red < r_up_limit() and sh.og.colour_master.cycler() and mode() == 2:
red = red + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while blue > b_lo_limit() and sh.og.colour_master.cycler() and mode() == 2:
blue = blue - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while sh.og.colour_master.cycler() and mode() == 3: # Sifi
while red > r_lo_limit() and sh.og.colour_master.cycler() and mode() == 3:
red = red - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while sh.og.colour_master.cycler() and mode() == 3:
time.sleep(sh.og.colour_master.cycler.speed()/100)
if blue < b_up_limit():
blue = blue + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
if green > g_lo_limit():
green = green - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
if blue >= b_up_limit() and green <= g_lo_limit():
break
while sh.og.colour_master.cycler() and mode() == 3:
time.sleep(sh.og.colour_master.cycler.speed()/100)
if blue > b_lo_limit():
blue = blue - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
if green < g_up_limit():
green = green + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
if blue <= b_lo_limit() and green >= g_up_limit():
break
while sh.og.colour_master.cycler() and mode() == 4: # warm colours
while red < r_up_limit() and sh.og.colour_master.cycler() and mode() == 4:
red = red + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while blue < b_up_limit() and sh.og.colour_master.cycler() and mode() == 4:
blue = blue + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while green < g_up_limit() and sh.og.colour_master.cycler() and mode() == 4:
green = green + 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while red > r_lo_limit() and sh.og.colour_master.cycler() and mode() == 4:
red = red - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while blue > b_lo_limit() and sh.og.colour_master.cycler() and mode() == 4:
blue = blue - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)
while green > g_lo_limit() and sh.og.colour_master.cycler() and mode() == 4:
green = green - 1
white = getwhite(red,green,blue)
write2dmx(sh, red, green, blue, white)
time.sleep(sh.og.colour_master.cycler.speed()/100)


Jetzt funktioniert soweit mal alles wie es soll. Am Code kann man sicher viel optimieren, vermutlich sind auch übertrieben viele try drin mit viel Debugcode, aber kann ja jeder säubern wie er will
Kommentar