Пример #1
0
def off():
    for x in range(6):
        backlight.set_pixel(x, 0, 0, 0)
        touch.set_led(x, 0)
    backlight.show()
    lcd.clear()
    lcd.show()
Пример #2
0
 def cleanup(self):
     backlight.set_all(0, 0, 0)
     backlight.show()
     lcd.clear()
     lcd.show()
     for i in range(0, self.num_leds):
         touch.set_led(i, 0)
Пример #3
0
def handler(ch, event):
    global menu
    if event == 'press':
        touch.set_led(ch, 1)
        if ch == 3 and menu.inThread == False:
            menu.nextOption()
        elif ch == 5 and menu.inThread == False:
            menu.prevOption()
        elif ch == 4 and menu.inThread == False:
            if menu.options[menu.curPos][2] == None:
                if menu.toggleLed:
                    print("Turning off")
                    menu.ledThread.join()
                    menu.toggleLed = False
                else:
                    print("Turning On")
                    menu.ledThread = menu.options[menu.curPos][1]()
                    menu.ledThread.start()
                    menu.toggleLed = True
            elif menu.options[menu.curPos][2] == True:
                menu.inThread = True
                menu.curThread = menu.options[menu.curPos][1]()
                menu.curThread.start()
            else:
                menu.options[menu.curPos][1]()
        elif ch == 0 and menu.inThread == True:
            menu.curThread.join()
            menu.inThread = False
        touch.set_led(ch, 0)
        print(str(menu.curPos))
Пример #4
0
 def off(self):
     for x in range(6):
         backlight.set_all(0, 0, 0)
         touch.set_led(x, 0)
     backlight.show()
     lcd.clear()
     lcd.show()
Пример #5
0
 def turn_display_off():
     for x in range(6):
         touch.set_led(x, 0)
     backlight.set_all(0, 0, 0)
     backlight.show()
     lcd.clear()
     lcd.show()
Пример #6
0
def test_touch_set_led(cap1xxx):
    """Test that set_led calls Cap1166.set_led_state."""
    from gfxhat import touch

    touch.set_led(0, True)

    cap1xxx.Cap1166().set_led_state.assert_called_with(touch.LED_MAPPING[0],
                                                       True)
Пример #7
0
def handler(ch, event):
    if event == "press":
        led_states[ch] = not led_states[ch]
        touch.set_led(ch, led_states[ch])
        if led_states[ch]:
            backlight.set_pixel(ch, 0, 255, 255)
        else:
            backlight.set_pixel(ch, 0, 255, 0)
        backlight.show()
Пример #8
0
def handler(ch, event):
    if event == 'press':
        led_states[ch] = not led_states[ch]
        touch.set_led(ch, led_states[ch])
        #if led_states[ch]:
        #backlight.set_pixel(ch, 0, 255, 255)
        #else:
        #backlight.set_pixel(ch, 0, 255, 0)
        backlight.show()
Пример #9
0
    def start(self):
        for x in range(6):
            touch.set_led(x, 1)
            time.sleep(0.1)
            touch.set_led(x, 0)

        for x in range(6):
            backlight.set_pixel(x, 255, 79, 193)
        backlight.show()
Пример #10
0
 def reboot(self):
     for x in range(6):
         backlight.set_pixel(x, 0, 0, 0)
         touch.set_led(x, 0)
     backlight.show()
     lcd.clear()
     drive = clsDrive.Drive()
     drive.stop()
     lcd.show()
     call("sudo reboot", shell=True)
Пример #11
0
    def __init__(self, timeout=30):
        self.homescreen = HomeScreen()
        self._screens = []  # Array of additionally added screens
        self._active = 0

        self.timeout = timeout  # Timeout time in seconds
        self.timed_out = False  # Are we currently timed out?
        self.last_interaction_time = time.time(
        )  # Time of last user interaction

        for x in range(6):
            touch.set_led(x, 0)
            touch.on(x, self.touch_handler)
Пример #12
0
    def update(self, now: datetime, app: GfxApp):
        if not self._first_render:
            self._first_render = datetime.now()

        delta = (datetime.now() - self._first_render).total_seconds()
        if delta > len(BOOT_FRAMES) * 0.2:
            self._first_render = None
            app.navigate_to(FuelStatsScreen.ID)
            return

        frame_i = ceil(delta / 0.2) % len(BOOT_FRAMES)
        frame = BOOT_FRAMES[frame_i]
        for i in range(len(frame)):
            set_led(i, frame[i])
Пример #13
0
def Menu():
    global menuOptions, cur
    menuOptions = addOptions()
    ShowOption(menuOptions[cur])

    for x in range(6):
        touch.on(x, handler)

    try:
        signal.pause()
    except KeyboardInterrupt:
        for x in range(6):
            backlight.set_pixel(x, 0, 0, 0)
            touch.set_led(x, 0)
        backlight.show()
        lcd.clear()
        lcd.show()
Пример #14
0
    def launch_radio(self, channel, event): 
        #import pdb; pdb.set_trace()
        
        time.sleep(0.5)
        print("on rentre dans la fonction player_stmt:", self.player_stmt)

        if self.player_stmt == True: 
            self.player.stop()
            self.player_stmt = False
            touch.set_led(5, 0)
            print("GOOD : On arrete la lecture, player_stmt", self.player_stmt)
            return self.player_stmt
        elif self.player_stmt == False:
            self.player = vlc.MediaPlayer(self.choices[2])
            radio = self.player.play()
            self.player_stmt = True
            touch.set_led(5, 1)
            print("on lance la lecture, player_stmt:", self.player_stmt)
            return self.player_stmt
Пример #15
0
 def backlight_screen(self, channel, event):
     
     time.sleep(0.5)
     if self.backlight == True: 
         for x in range(6):
             backlight.set_pixel(x, 0, 0, 0)            
         
         backlight.show()
         self.backlight = False
         touch.set_led(2, 0)
         print("Backlight status: ", self.backlight)
         return self.backlight
     else: 
         for x in range(6):
             backlight.set_pixel(x, 255, 79, 193)
         backlight.show()
         self.backlight = True
         touch.set_led(2, 1)
         print("Backlight status: ", self.backlight)
         return self.backlight
Пример #16
0
def backlight_clear_reset():
    from gfxhat import touch, lcd, backlight
    from time import sleep
    lcd.clear()
    lcd.show()
    i = '0'
    if i == '0':
        backlight.set_all(220, 130, 110)
        backlight.show()
        sleep(1)
        backlight.set_all(120, 230, 110)
        backlight.show()
        sleep(1)
        backlight.set_all(0, 0, 110)
        backlight.show()
        sleep(3)
        for x in range(6):
            backlight.set_pixel(x, 0, 0, 0)
            touch.set_led(x, 0)
            backlight.show()
            lcd.clear()
Пример #17
0
    def __init__(self, controller, options_dict):
        print("""menu-options.py
        This example shows how you might store a list of menu options associated
        with functions and navigate them on GFX HAT.
        Press Ctrl+C or select "Exit" to exit.
        """)

        self.width, self.height = lcd.dimensions()
        self.font = ImageFont.truetype(fonts.BitbuntuFull, 10)
        self.image = Image.new('P', (self.width, self.height))
        self.draw = ImageDraw.Draw(self.image)
        self.controller = controller
        self.slept = False
        self.sleep_timer = 0
        self.fade = 255
        self.is_playing = controller.get_playing_state()

        for x in range(6):
            touch.set_led(x, 0)
            self.set_backlight()
            touch.on(x, self.handler)

        backlight.show()

        atexit.register(self.cleanup)

        self.menu_options = []

        for key in options_dict:
            self.menu_options.append(
                MenuOption(key, controller.change_station, self.font,
                           (options_dict[key], True, key)))

        self.current_menu_option = 1

        self.trigger_action = False
Пример #18
0
    def btn_handler(self, channel, event):
        #print("Got {} on channel {}".format(event, channel))

        #Handle LED
        if event == 'press' and on_RPI:
            touch.set_led(channel, 1)
            threading.Timer(0.5, self.turn_off_led, [channel]).start()

        # Turn Script off
        if channel == 0 and event == 'press' and isinstance(self.current_screen, WeatherScreen):
            self.toggle_screen()
            return

        # Pass to screen
        if event == 'press':
            is_changed = self.current_screen.btn_handler(channel)
            if is_changed:
                self.main_loop.set()
                self.main_loop.clear()

        # Change Screens
        if event == 'press' and channel == 2:
            self.current_screen = self.screens[(self.screens.index(self.current_screen) + 1) % len(self.screens)]
            self.push_screen()
Пример #19
0
def handler(ch, event):
    global menuOptions, cur
    if event == 'press':

        touch.set_led(ch, 1)
        if ch == 3:
            cur += 1
        elif ch == 5:
            cur -= 1

        if ch == 4:
            touch.set_led(ch, 0)
            menuOptions[cur][1]()
        else:
            cur = menuCheck()
        ShowOption(menuOptions[cur])
        touch.set_led(ch, 0)
Пример #20
0
 def init_screen(self):
     for x in range(6):
         touch.set_led(x, 0)
         backlight.set_pixel(x, 255, 255, 255)
         touch.on(x, self.handler)
Пример #21
0
 def on_navigate_to(self, from_screen: str = None):
     for i in range(6):
         set_led(i, 0)
     self._has_rendered = False
Пример #22
0
 def illuminate(self, channel, event):
     for x in range(6):
         touch.set_led(x, 1)
         time.sleep(0.1)
         touch.set_led(x, 0)
Пример #23
0
 def toggle_led(self, led_no, sleep_duration):
     touch.set_led(led_no, 1)
     time.sleep(sleep_duration)
     touch.set_led(led_no, 0)
Пример #24
0
def LedOnOff():
    for x in range(6):
        touch.set_led(x, 1)
        time.sleep(0.1)
        touch.set_led(x, 0)
Пример #25
0
draw.text((0, 30), line2, 1, font)


def handler(ch, event):
    if event == 'press':
        led_states[ch] = not led_states[ch]
        touch.set_led(ch, led_states[ch])
        #if led_states[ch]:
        #backlight.set_pixel(ch, 0, 255, 255)
        #else:
        #backlight.set_pixel(ch, 0, 255, 0)
        backlight.show()


for x in range(6):
    touch.set_led(x, 1)
    time.sleep(0.1)
    touch.set_led(x, 0)

for x in range(6):
    #backlight.set_pixel(x, 0, 255, 0)
    touch.on(x, handler)

lcd.contrast(40)
backlight.set_all(255, 255, 153)
backlight.show()

for x in range(128):
    for y in range(64):
        pixel = image.getpixel((x, y))
        lcd.set_pixel(x, y, pixel)
Пример #26
0
def main():
    print("""display-temp.py""")

    print('Connecting to {}'.format(SENSORTAG_ADDRESS))
    tag = SensorTag(SENSORTAG_ADDRESS)
    print("Connection successfull!")

    print("Initializing GFX-HAT...")
    width, height = lcd.dimensions()
    image = Image.new('P', (width, height))
    draw = ImageDraw.Draw(image)

    for x in range(6):
        touch.set_led(x, 0)
        backlight.set_pixel(x, 255, 255, 255)
        # touch.on(x, handler)

    backlight.set_all(155, 155, 155)
    backlight.show()

    atexit.register(cleanup)

    print("Reporting started every {0} seconds".format(FREQUENCY_SECONDS))
    try:
        while True:
            image.paste(0, (0, 0, width, height))

            readings = get_readings(tag)
            if not readings:
                print("SensorTag disconnected. Reconnecting.")
                reconnect(tag)
                continue

            # print readings
            print("Time:\t{}".format(datetime.datetime.now()))
            print("IR reading:\t\t{}, temperature:\t{}".format(
                readings["ir"], readings["ir_temp"]))
            print("Humidity reading:\t{}, temperature:\t{}".format(
                readings["humidity"], readings["humidity_temp"]))
            print("Barometer reading:\t{}, temperature:\t{}".format(
                readings["pressure"], readings["baro_temp"]))
            print("Luxmeter reading:\t{}".format(readings["light"]))
            fields = [
                datetime.datetime.now(), readings['ir'], readings['ir_temp'],
                readings['humidity'], readings['humidity_temp'],
                readings['pressure'], readings['baro_temp'], readings['light']
            ]
            with open(r'data.csv', 'a') as f:
                writer = csv.writer(f)
                writer.writerow(fields)

            # Drawing IP and Hostname
            # draw.text((2,1), "IP: " + get_ip(), 1, font)
            # draw.text((2,10), "Hostname: " + get_hostname(), 1, font)

            now = datetime.datetime.now()
            current_time = now.strftime("%H:%M:%S")
            draw.text((2, 1), "Time      : " + str(current_time), 1, font)
            draw.text((2, 10), "IR  (temp): " + str(readings["ir_temp"]) + "C",
                      1, font)
            draw.text((2, 20),
                      "Hum (temp): " + str(readings["humidity_temp"]) + "C", 1,
                      font)
            draw.text((2, 30),
                      "Bar (temp): " + str(readings["baro_temp"]) + "C", 1,
                      font)
            draw.text((2, 40), "Luxometer : " + str(readings["light"]) + "lux",
                      1, font)
            draw.text((2, 50), "IP: " + get_ip(), 1, font)

            mean_temp = float(readings['ir_temp']) + float(
                readings['humidity_temp']) + float(readings['baro_temp'])
            mean_temp /= 3.0
            if mean_temp > 28.0:
                backlight.set_all(155, 0, 0)
            elif mean_temp > 27.0:
                backlight.set_all(155, 75, 75)
            elif mean_temp < 24.0:
                backlight.set_all(100, 100, 155)
            elif mean_temp < 23.0:
                backlight.set_all(50, 50, 155)
            elif mean_temp < 22.0:
                backlight.set_all(0, 0, 155)
            else:
                backlight.set_all(155, 155, 155)
            backlight.show()

            for x in range(width):
                for y in range(height):
                    pixel = image.getpixel((x, y))
                    lcd.set_pixel(x, y, pixel)

            lcd.show()
            # time.sleep(1.0 / 30)
            time.sleep(FREQUENCY_SECONDS)

    except KeyboardInterrupt:
        cleanup()
Пример #27
0
 def turn_off_led(channel):
     touch.set_led(channel, 0)