Beispiel #1
0
def check_ble():
    if not badge.ble:
        return
    
    flags = badge.ble.read(badge.ble.REG_FLAGS)
    if flags & badge.ble.FLAG_EMOTE:
        ## Remote emote extravaganza!
        value = badge.ble.read16(badge.ble.REG_EMOTE)
        color = badge.ble.color()
        if (value):
            try:
                emote.render(chr(value & 0xff) + chr(value >> 8), color)
            except Exception:
                emote.random(color)
        else:
            emote.random(color)
        pyb.delay(2500)

    if flags & badge.ble.FLAG_AWOO:
        ## Someone started a howl
        msg = animations.scroll(" AWOOOOOOOOOOOOOOOO")
        delay = 0
        while delay < 5000:
            msg.draw()
            pyb.delay(msg.interval)
            delay += msg.interval
def blerx(args):
    for x in args:
        ## Locate an optional value given by an '='
        nv = x.split('=', 1)
        name = nv[0]
        value = nv[1] if len(nv) > 1 else None

        ## Handle the received stuff.
        if name == 'emote':
            ## Select a random emote.
            if (not value) or (value == 'random'):
                emote.random()
                pyb.delay(2500)
            ## Parse a specific emote to draw.
            else:
                emstr = ubinascii.unhexlify(value).decode("ascii")
                emote.render(emstr)
                pyb.delay(2500)
        if name == 'awoo':
            ## Someone started a howl
            msg = animations.scroll(" AWOOOOOOOOOOOOOO")
            delay = 0
            while delay < 5000:
                msg.draw()
                pyb.delay(msg.interval)
                delay += msg.interval
Beispiel #3
0
def check_ble():
    if not badge.ble:
        return

    flags = badge.ble.read(badge.ble.REG_FLAGS)
    if flags & badge.ble.FLAG_EMOTE:
        emote.random()
        pyb.delay(2500)
Beispiel #4
0
 def handle_events(self):
     ## Change animation on button press, or emote if both pressed.
     left = badge.left.event()
     right = badge.right.event()
     if right and left:
         emote.random()
         self.ival += 50
     elif right:
         self.set_animation(self.selected + 1)
     elif left:
         self.set_animation(self.selected - 1)
     # Service events.
     if badge.ble.any():
         ble()
     if badge.boop.event():
         if hasattr(self.anim, "boop") and callable(getattr(self.anim, "boop")):
             self.anim.boop()
         else:
             emote.boop()
             self.ival = 1000
Beispiel #5
0
    flags = badge.ble.read(badge.ble.REG_FLAGS)
    if flags & badge.ble.FLAG_EMOTE:
        emote.random()
        pyb.delay(2500)


anim = available[selected]()
while True:
    anim.draw()
    ival = anim.interval
    while ival > 0:
        ## Change animation on button press, or emote if both pressed.
        if badge.right.event():
            if badge.left.value():
                emote.random()
            else:
                selected = (selected + 1) % len(available)
                anim = available[selected]()
                print("Playing animation " + available[selected].__name__)
        elif badge.left.event():
            if badge.right.value():
                emote.random()
            elif selected == 0:
                selected = len(available) - 1
                anim = available[selected]()
                print("Playing animation " + available[selected].__name__)
            else:
                selected = selected - 1
                anim = available[selected]()
                print("Playing animation " + available[selected].__name__)