コード例 #1
0
ファイル: handshake.py プロジェクト: Enderboi/aiko_engine_mp
def draw_progressbar(screen, value):
    screen = oled.oleds[screen]
    screen.fill_rect(0, 32, 128, 8, 0)
    if value:
        value = int(map_value(value, 0, 100, 0, 128))
        screen.fill_rect(0, 48, 128, 16, 0)
        screen.fill_rect(0, 48, value, 16, 1)
    screen.show()
コード例 #2
0
ファイル: buttons_sliders.py プロジェクト: rskew/autofarm
def slider_handler(pin_number, state, value):
    print("Slider {}: {} {}".format(pin_number, state, value))

    screen = None
    if pin_number == 12: screen = aiko.oled.oleds[0]
    if pin_number == 14: screen = aiko.oled.oleds[1]

    if screen:
        screen.fill_rect(0, 32, 128, 8, 0)
        text = "Slider: {} {}".format(state, value)
        screen.text(text, 0, 32)
        if value:
            value = int(map_value(value, 0, 100, 0, 128))
            screen.fill_rect(0, 48, 128, 16, 0)
            screen.fill_rect(0, 48, value, 16, 1)
        screen.show()
コード例 #3
0
ファイル: system_ui.py プロジェクト: rskew/autofarm
def slider_handler(number, state, value):
    if value:
        menu_item = menu_items - int(
            map_value(value, 0, 100, 0, menu_items - 1)) - 1
        menu_item_highlight(menu_item)
コード例 #4
0
def button_handler():  # software timer event handler
    # microPython doesn't support TouchPad interrupts :(
    for touch_button in touch_buttons:
        if touch_button.value(use_cache=False):
            if not touch_button.get_state():
                irq_state = disable_irq()
                pins_active.append(touch_button.driver)
                enable_irq(irq_state)

    irq_state = disable_irq()
    local_pins_active = [pin for pin in pins_active]
    enable_irq(irq_state)

    for pin in local_pins_active:
        button = buttons[pins.index(pin)]
        if button.value():
            call = button.continuous or not button.get_state()
            if button.safe and len(local_pins_active) != 1:
                call = False
            button.set_state(True)
            if call:
                button.call_handlers()
        else:  # button no longer active
            irq_state = disable_irq()
            pins_active.remove(pin)
            enable_irq(irq_state)
            button.set_state(False)
            button.call_handlers()

    pin_numbers_active = None
    for multibutton_handler in multibutton_handlers:
        if not pin_numbers_active:
            pin_numbers_active = pin_numbers_sorted(pins_active)
            pin_numbers_active.sort()
        handler = multibutton_handler[HANDLER]
        pin_numbers_multibutton = multibutton_handler[PIN_NUMBERS]
        hold_time = multibutton_handler[HOLD_TIME]

        if pin_numbers_active == pin_numbers_multibutton:
            if handler in multibutton_press_time:
                time_held = time.ticks_ms() - multibutton_press_time[handler]
                if time_held >= hold_time:
                    button = buttons[pin_numbers.index(
                        pin_numbers_multibutton[0])]
                    if not button.multibutton_state:
                        button.multibutton_state = True
                        handler(pin_numbers_multibutton)
            else:
                multibutton_press_time[handler] = time.ticks_ms()
        else:
            if handler in multibutton_press_time:
                del multibutton_press_time[handler]
                button = buttons[pin_numbers.index(pin_numbers_multibutton[0])]
                button.multibutton_state = False

    for slider_handler in slider_handlers:
        lower_value = slider_handler[LOWER_BUTTON].value(digital=False)
        upper_value = slider_handler[UPPER_BUTTON].value(digital=False)
        handler = slider_handler[HANDLER]
        pin_number = slider_handler[LOWER_BUTTON].pin_number
        slider_state = slider_handler[LOWER_BUTTON].slider_state

        if lower_value < TOUCH_THRESHOLD or upper_value < TOUCH_THRESHOLD:
            value = int(map_value(lower_value - upper_value, -180, 180, 0,
                                  100))
            handler(pin_number, slider_state, value)
            if slider_state == 0:
                slider_handler[LOWER_BUTTON].slider_state = 1
        elif slider_state == 1:
            handler(pin_number, 2, None)
            slider_handler[LOWER_BUTTON].slider_state = 0