示例#1
0
文件: app.py 项目: kdg14445/piradio
    def run(self):
        try:
            self.sleeptimer.resetsleep()
            lcd.init()
            self.framebuffer = graphics.Surface(lcd.LCD_WIDTH, lcd.LCD_HEIGHT)
            lcd.set_backlight_enabled(True)

            self.broker.register_service(services.clock.ClockService)
            self.broker.register_service(services.weather.WeatherService)
            self.broker.register_service(services.podcast.PodcastService)
            self.broker.register_service(services.audio.AudioService)
            self.broker.register_service(
                services.public_transport.PublicTransportService)

            for p, args in self.panel_defs:
                self.addpanel(p, args)
            self.activate_panel(0)

            self.broker.start_bound_services()

            while True:
                services.deliver_pending_notifications()
                self.sleeptimer.update_sleep()
                self.trigger_key_events()
                self.active_panel.update()
                if self.activate_panel:
                    if self.active_panel.paint_if_needed(self.active_panel_fb):
                        # logging.debug('Updating LCD (active_panel)')
                        lcd.update(self.active_panel_fb)
                time.sleep(1.0 / UPDATE_RATE)
        finally:
            self.broker.stop_running()
示例#2
0
文件: app.py 项目: dbader/piradio
    def run(self):
        try:
            self.sleeptimer.resetsleep()
            lcd.init()
            self.framebuffer = graphics.Surface(lcd.LCD_WIDTH, lcd.LCD_HEIGHT)
            lcd.set_backlight_enabled(True)

            self.broker.register_service(services.clock.ClockService)
            self.broker.register_service(services.weather.WeatherService)
            self.broker.register_service(services.podcast.PodcastService)
            self.broker.register_service(services.audio.AudioService)
            self.broker.register_service(services.public_transport.PublicTransportService)

            for p, args in self.panel_defs:
                self.addpanel(p, args)
            self.activate_panel(0)

            self.broker.start_bound_services()

            while True:
                services.deliver_pending_notifications()
                self.sleeptimer.update_sleep()
                self.trigger_key_events()
                self.active_panel.update()
                if self.activate_panel:
                    if self.active_panel.paint_if_needed(self.active_panel_fb):
                        # logging.debug('Updating LCD (active_panel)')
                        lcd.update(self.active_panel_fb)
                time.sleep(1.0 / UPDATE_RATE)
        finally:
            self.broker.stop_running()
示例#3
0
文件: alarm.py 项目: kdg14445/piradio
 def center_pressed(self):
     if self.state == 'SET_TIME':
         self.state = 'COUNTDOWN'
         self.alarmtime = (time.time() +
                           self.countdown if not self.alarmtime else None)
     elif self.state == 'ALARM':
         lcd.set_backlight_enabled(True)
         self.state = 'SET_TIME'
     self.set_needs_repaint()
示例#4
0
文件: alarm.py 项目: kdg14445/piradio
 def update(self):
     if self.state == 'COUNTDOWN':
         if self.alarmtime and time.time() >= self.alarmtime:
             self.fire_alarm()
     elif self.state == 'ALARM':
         lcd.set_backlight_enabled(bool(int(time.time()) % 2 == 0))
     if self.countdown_str != self.countdownstring():
         self.countdown_str = self.countdownstring()
         self.set_needs_repaint()
示例#5
0
文件: alarm.py 项目: dbader/piradio
 def center_pressed(self):
     if self.state == 'SET_TIME':
         self.state = 'COUNTDOWN'
         self.alarmtime = (time.time() + self.countdown
                           if not self.alarmtime else None)
     elif self.state == 'ALARM':
         lcd.set_backlight_enabled(True)
         self.state = 'SET_TIME'
     self.set_needs_repaint()
示例#6
0
文件: alarm.py 项目: dbader/piradio
 def update(self):
     if self.state == 'COUNTDOWN':
         if self.alarmtime and time.time() >= self.alarmtime:
             self.fire_alarm()
     elif self.state == 'ALARM':
         lcd.set_backlight_enabled(bool(int(time.time()) % 2 == 0))
     if self.countdown_str != self.countdownstring():
         self.countdown_str = self.countdownstring()
         self.set_needs_repaint()
示例#7
0
文件: app.py 项目: kdg14445/piradio
 def wakeup(self):
     logging.info('Waking up')
     lcd.set_backlight_enabled(True)
     self.sleeping = False
     global UPDATE_RATE
     UPDATE_RATE = float(CONFIG['update_rate_hz'])
示例#8
0
文件: app.py 项目: kdg14445/piradio
 def sleep(self):
     logging.info('Going to sleep')
     lcd.set_backlight_enabled(False)
     self.sleeping = True
     global UPDATE_RATE
     UPDATE_RATE = float(CONFIG['update_rate_sleep_hz'])
示例#9
0
文件: app.py 项目: dbader/piradio
 def wakeup(self):
     logging.info('Waking up')
     lcd.set_backlight_enabled(True)
     self.sleeping = False
     global UPDATE_RATE
     UPDATE_RATE = float(CONFIG['update_rate_hz'])
示例#10
0
文件: app.py 项目: dbader/piradio
 def sleep(self):
     logging.info('Going to sleep')
     lcd.set_backlight_enabled(False)
     self.sleeping = True
     global UPDATE_RATE
     UPDATE_RATE = float(CONFIG['update_rate_sleep_hz'])