mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-11 21:33:00 +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,
|
"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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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__":
|
||||||
|
|||||||
Reference in New Issue
Block a user