def iterate(self): import random for i in xrange(self.nled): self.heat[i] = max(0, self.heat[i]-random.randint( 0,((self.cooling * 10) / self.nled) + 2)) for k in xrange(self.nled-3,1,-1): self.heat[k] = (self.heat[k-1] + self.heat[k-2] + self.heat[k-2]) / 3 if random.randint(0,255) < self.sparking: y = random.randint(0,6) self.heat[y] = min(255,self.heat[y]+random.randint(160,254)) leds = [] for j in xrange(self.nled): leds += [ (255*i)>>8 for i in HeatColor(self.heat[j]) ] convert( leds, [toUnit] ) return leds
def send(self,data,topic="leddata",device="huzzah"): if self.mirror: mirrored = [ i for i in reversed(data) ] convert(mirrored,[rgb2bgr]) data += mirrored self.send_raw(bytearray(data),topic,device)
sys.exit(0) if args.verbose: print "Settings:" for i in sorted(vars(args).iteritems()): print " %10s: %s" % i print l = LEDClient(args) if args.mirror: args.nled /= 2 e = effect_module.instance(args) try: if args.off: if args.verbose: print "Switching LEDs off" l.off() sys.exit(0) if args.verbose: print "Starting effect '%s'" % args.effect while True: data = e.iterate() convert(data,[toHSV, multiply((1,1,args.max)), toRGB, gamma(args.gamma),toByte,clamp(0,255)]) l.send(data) time.sleep(args.time) except KeyboardInterrupt: pass print
def iterate(self): self.step_hue() rgb = [self.hue, 1, 1] convert(rgb, [toRGB]) return rgb * self.nled