Files
LEDMatrix/test_stock_news_manager.py
Chuck 3d662baf54 Stocks (#2)
* Opening Bell

Introducing the Stock Ticker Feature

* Update stock_manager.py

Assume folder exists

* Update stock_manager.py

removing logos to focus on function for now

* Update stock_manager.py

parse yahoo scripts

* Update stock_manager.py

stock query update

* Update stock_manager.py

slow down stock display

* Update display_controller.py

adjust screen flow

* Update stock_manager.py

shipping features

* Update stock_manager.py

stock refresh in the background

* Customize Display timings

customize display timings

* Update stock_manager.py

stock font size change

* Sizing and Spacing

CHanged font sizing on chart and clock spacing

* Update clock.py

Date format changes

* Update stock_manager.py

actually read stocks from config file

* Update stock_manager.py

add config manager

* readme update

readme update and formatting for better flow

* Update .gitignore

rename reference folder

* Update config.json

changed default stocks to test update implementation

* Stock News

Stock news Ticker

* Update config.json

increase scroll speed

* Scroll Performance

Tuning news scrolling performance

* updating scroll direction

orienting scroll direction

* News tuning

removed test files and increased scroll speed

* Create test_news_manager.py

need a test script to call upon

* Update test_news_manager.py

test script tuning

* troubleshooting test script

* Update test_news_manager.py

* Update config.json

scroll speed increases

* Update config.json

scroll tuning

* Update config.json

speeding up

* Update config.json

still making text faster

* Update config.json

Trying to tune scrolling

* Update config.json

testing crazy parameters

* Update test_news_manager.py

remove sleep delay

* scroll tuning

scroll tuning

* scroll logging and debugging

FPS counter and debug messages

* Update config.json

matrix speed tuning

* Update news_manager.py

News separator

* Update news_manager.py

separator character change

* Stock News manager Rename

rename stock news ticker to enable other news in the future

* Update display_controller.py

load config update

* Update stock_manager.py

remove redundant import

* Stock news settings

Stock news has more granular control

* Stock news joins the lineup

Stock News added to the display controller and drawing display instead of image

* Optimize scrolling text performance for news ticker

* Adjust matrix settings to reduce artifacting while maintaining performance

* changed float to integer

* Fix news ticker performance with simplified scrolling mechanism

* 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

* Optimize stock news scrolling for better performance: - Use pre-rendered text image for efficient scrolling - Implement cropping and pasting for smoother animation - Remove unnecessary display operations and delays

* Optimize stock news display performance: - Cache text image to reduce rendering overhead - Improve frame creation and update logic - Optimize text wrapping for smoother scrolling - Remove unnecessary display clears

* 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

---------

Signed-off-by: Chuck <33324927+ChuckBuilds@users.noreply.github.com>
2025-04-11 11:10:50 -05:00

65 lines
1.8 KiB
Python

#!/usr/bin/env python3
import time
import sys
import os
from src.config_manager import ConfigManager
from src.display_manager import DisplayManager
from src.stock_news_manager import StockNewsManager
print(f"Current working directory: {os.getcwd()}")
def main():
"""Test the StockNewsManager class directly."""
display_manager = None
try:
# Load configuration
config_manager = ConfigManager()
config = config_manager.load_config()
if not config:
print("Error: Failed to load configuration")
return
display_config = config.get('display')
if not display_config:
print("Error: No display configuration found")
return
# 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
while True:
news_manager.display_news()
except KeyboardInterrupt:
print("\nTest interrupted by user")
except Exception as e:
print(f"Error during test: {e}")
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__":
main()