mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 21:03:01 +00:00
Fix stock news scrolling in test environment: - Optimize display manager settings for smooth scrolling - Add proper display initialization and cleanup in test script - Implement timing control to prevent display buffer overflow - Ensure consistent 1ms delay between updates for smooth scrolling
This commit is contained in:
@@ -57,7 +57,7 @@
|
||||
"enabled": true,
|
||||
"update_interval": 300,
|
||||
"scroll_speed": 1,
|
||||
"scroll_delay": 0.0001,
|
||||
"scroll_delay": 0.001,
|
||||
"max_headlines_per_symbol": 1,
|
||||
"headlines_per_rotation": 2
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ print(f"Current working directory: {os.getcwd()}")
|
||||
|
||||
def main():
|
||||
"""Test the StockNewsManager class directly."""
|
||||
display_manager = None
|
||||
try:
|
||||
# Load configuration
|
||||
config_manager = ConfigManager()
|
||||
@@ -27,14 +28,27 @@ def main():
|
||||
# Initialize display manager
|
||||
display_manager = DisplayManager(display_config)
|
||||
|
||||
# Clear the display and show a test pattern
|
||||
display_manager.clear()
|
||||
display_manager.update_display()
|
||||
time.sleep(1) # Give time to see the test pattern
|
||||
|
||||
# Initialize news manager with the loaded config
|
||||
news_manager = StockNewsManager(config, display_manager)
|
||||
|
||||
print("Testing news display. Press Ctrl+C to exit.")
|
||||
|
||||
# Run the news display in a loop
|
||||
# Run the news display in a loop with proper timing
|
||||
last_update = time.time()
|
||||
while True:
|
||||
news_manager.display_news()
|
||||
current_time = time.time()
|
||||
# Ensure we're not updating too frequently
|
||||
if current_time - last_update >= 0.001: # 1ms minimum between updates
|
||||
news_manager.display_news()
|
||||
last_update = current_time
|
||||
else:
|
||||
# Small sleep to prevent CPU hogging
|
||||
time.sleep(0.0001)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\nTest interrupted by user")
|
||||
@@ -43,6 +57,11 @@ def main():
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
finally:
|
||||
if display_manager:
|
||||
# Clear the display before exiting
|
||||
display_manager.clear()
|
||||
display_manager.update_display()
|
||||
display_manager.cleanup()
|
||||
print("Test completed")
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user