mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-13 14:03:00 +00:00
Optimize stock news display in controller: - Remove global sleep delay - Allow news display to run at full speed - Keep slower update rates for other displays
This commit is contained in:
@@ -113,12 +113,13 @@ class DisplayController:
|
|||||||
logger.info(f"Switching display to: {self.current_display} {self.weather_mode if self.current_display == 'weather' else ''}")
|
logger.info(f"Switching display to: {self.current_display} {self.weather_mode if self.current_display == 'weather' else ''}")
|
||||||
self.last_switch = current_time
|
self.last_switch = current_time
|
||||||
self.force_clear = True
|
self.force_clear = True
|
||||||
self.display_manager.clear() # Ensure clean transition
|
self.display_manager.clear()
|
||||||
|
|
||||||
# Display current screen
|
# Display current screen
|
||||||
try:
|
try:
|
||||||
if self.current_display == 'clock' and self.config.get('clock', {}).get('enabled', False):
|
if self.current_display == 'clock' and self.config.get('clock', {}).get('enabled', False):
|
||||||
self.clock.display_time(force_clear=self.force_clear)
|
self.clock.display_time(force_clear=self.force_clear)
|
||||||
|
time.sleep(self.update_interval)
|
||||||
elif self.current_display == 'weather' and self.config.get('weather', {}).get('enabled', False):
|
elif self.current_display == 'weather' and self.config.get('weather', {}).get('enabled', False):
|
||||||
if self.weather_mode == 'current':
|
if self.weather_mode == 'current':
|
||||||
self.weather.display_weather(force_clear=self.force_clear)
|
self.weather.display_weather(force_clear=self.force_clear)
|
||||||
@@ -126,9 +127,12 @@ class DisplayController:
|
|||||||
self.weather.display_hourly_forecast(force_clear=self.force_clear)
|
self.weather.display_hourly_forecast(force_clear=self.force_clear)
|
||||||
else: # daily
|
else: # daily
|
||||||
self.weather.display_daily_forecast(force_clear=self.force_clear)
|
self.weather.display_daily_forecast(force_clear=self.force_clear)
|
||||||
|
time.sleep(self.update_interval)
|
||||||
elif self.current_display == 'stocks' and self.config.get('stocks', {}).get('enabled', False):
|
elif self.current_display == 'stocks' and self.config.get('stocks', {}).get('enabled', False):
|
||||||
self.stocks.display_stocks(force_clear=self.force_clear)
|
self.stocks.display_stocks(force_clear=self.force_clear)
|
||||||
|
time.sleep(self.update_interval)
|
||||||
elif self.current_display == 'stock_news' and self.config.get('stock_news', {}).get('enabled', False):
|
elif self.current_display == 'stock_news' and self.config.get('stock_news', {}).get('enabled', False):
|
||||||
|
# For news, we want to update as fast as possible without delay
|
||||||
self.news.display_news()
|
self.news.display_news()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error updating display: {e}")
|
logger.error(f"Error updating display: {e}")
|
||||||
@@ -138,9 +142,6 @@ class DisplayController:
|
|||||||
# Reset force clear flag after use
|
# Reset force clear flag after use
|
||||||
self.force_clear = False
|
self.force_clear = False
|
||||||
|
|
||||||
# Sleep between updates
|
|
||||||
time.sleep(self.update_interval)
|
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("\nDisplay stopped by user")
|
print("\nDisplay stopped by user")
|
||||||
finally:
|
finally:
|
||||||
|
|||||||
Reference in New Issue
Block a user