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:
ChuckBuilds
2025-04-11 10:29:26 -05:00
parent 7925bf515b
commit ff344006b9
2 changed files with 22 additions and 3 deletions

View File

@@ -57,7 +57,7 @@
"enabled": true, "enabled": true,
"update_interval": 300, "update_interval": 300,
"scroll_speed": 1, "scroll_speed": 1,
"scroll_delay": 0.0001, "scroll_delay": 0.001,
"max_headlines_per_symbol": 1, "max_headlines_per_symbol": 1,
"headlines_per_rotation": 2 "headlines_per_rotation": 2
} }

View File

@@ -10,6 +10,7 @@ print(f"Current working directory: {os.getcwd()}")
def main(): def main():
"""Test the StockNewsManager class directly.""" """Test the StockNewsManager class directly."""
display_manager = None
try: try:
# Load configuration # Load configuration
config_manager = ConfigManager() config_manager = ConfigManager()
@@ -27,14 +28,27 @@ def main():
# Initialize display manager # Initialize display manager
display_manager = DisplayManager(display_config) 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 # Initialize news manager with the loaded config
news_manager = StockNewsManager(config, display_manager) news_manager = StockNewsManager(config, display_manager)
print("Testing news display. Press Ctrl+C to exit.") 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: while True:
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() news_manager.display_news()
last_update = current_time
else:
# Small sleep to prevent CPU hogging
time.sleep(0.0001)
except KeyboardInterrupt: except KeyboardInterrupt:
print("\nTest interrupted by user") print("\nTest interrupted by user")
@@ -43,6 +57,11 @@ def main():
import traceback import traceback
traceback.print_exc() traceback.print_exc()
finally: finally:
if display_manager:
# Clear the display before exiting
display_manager.clear()
display_manager.update_display()
display_manager.cleanup()
print("Test completed") print("Test completed")
if __name__ == "__main__": if __name__ == "__main__":