1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import hyperion, time
- # get options from args
- sleepTime = float(hyperion.args.get('speed', 1.5)) * 0.005
- whiteLevel = int(hyperion.args.get('whiteLevel', 0))
- lvl = int(hyperion.args.get('colorLevel', 220))
- # check value
- whiteLevel = min( whiteLevel, 254 )
- lvl = min( lvl, 255 )
- if whiteLevel >= lvl:
- lvl = 255
- # Initialize the led data
- ledData = bytearray()
- for unused in range(hyperion.ledCount):
- ledData += bytearray((0,0,0))
- runners = [
- { "pos":0, "step": 4, "lvl":lvl},
- { "pos":1, "step": 5, "lvl":lvl},
- { "pos":2, "step": 6, "lvl":lvl},
- { "pos":0, "step": 7, "lvl":lvl},
- { "pos":1, "step": 8, "lvl":lvl},
- { "pos":2, "step": 9, "lvl":lvl},
- #{ "pos":0, "step":10, "lvl":lvl},
- #{ "pos":1, "step":11, "lvl":lvl},
- #{ "pos":2, "step":12, "lvl":lvl},
- ]
- # Start the write data loop
- counter = 0
- while not hyperion.abort():
- counter += 1
- for r in runners:
- if counter % r["step"] == 0:
- ledData[r["pos"]] = whiteLevel
- r["pos"] = (r["pos"]+3) % (hyperion.ledCount*3)
- ledData[r["pos"]] = r["lvl"]
- hyperion.setColor(ledData)
- time.sleep(sleepTime)
|