add color parameter to the knight rider effect

Former-commit-id: 9d4cd0e18b7871acd76a9cafb04efc39ce6fac74
This commit is contained in:
spudwebb 2014-04-22 14:15:09 -04:00
parent d102ffd043
commit 6d6f4bf629
2 changed files with 12 additions and 4 deletions

View File

@ -4,6 +4,7 @@
"args" : "args" :
{ {
"speed" : 1.0, "speed" : 1.0,
"fadeFactor" : 0.7 "fadeFactor" : 0.7,
"color" : [255,0,0]
} }
} }

View File

@ -2,9 +2,10 @@ import hyperion
import time import time
import colorsys import colorsys
# Get the rotation time # Get the parameters
speed = float(hyperion.args.get('speed', 1.0)) speed = float(hyperion.args.get('speed', 1.0))
fadeFactor = float(hyperion.args.get('fadeFactor', 0.7)) fadeFactor = float(hyperion.args.get('fadeFactor', 0.7))
color = hyperion.args.get('color', (255,0,0))
# Check parameters # Check parameters
speed = max(0.0001, speed) speed = max(0.0001, speed)
@ -13,7 +14,9 @@ fadeFactor = max(0.0, min(fadeFactor, 1.0))
# Initialize the led data # Initialize the led data
width = 25 width = 25
imageData = bytearray(width * (0,0,0)) imageData = bytearray(width * (0,0,0))
imageData[0] = 255 imageData[0] = color[0]
imageData[1] = color[1]
imageData[2] = color[2]
# Calculate the sleep time and rotation increment # Calculate the sleep time and rotation increment
increment = 1 increment = 1
@ -41,9 +44,13 @@ while not hyperion.abort():
# Fade the old data # Fade the old data
for j in range(width): for j in range(width):
imageData[3*j] = int(fadeFactor * imageData[3*j]) imageData[3*j] = int(fadeFactor * imageData[3*j])
imageData[3*j+1] = int(fadeFactor * imageData[3*j+1])
imageData[3*j+2] = int(fadeFactor * imageData[3*j+2])
# Insert new data # Insert new data
imageData[3*position] = 255 imageData[3*position] = color[0]
imageData[3*position+1] = color[1]
imageData[3*position+2] = color[2]
# Sleep for a while # Sleep for a while
time.sleep(sleepTime) time.sleep(sleepTime)