# # Petcard - v1.0 # Copyright (c) 2025 FreedTapestry21 # # Licensed under the MIT license # # # Importing libraries # import sys, json, machine # Import SYSTEM module import system # # Classes # # Main system & application controller class Application: def __init__(self, config_manager, logger, display_driver, display, input_controller, ui, power): self.config_manager = config_manager self.logger = logger self.display_driver = display_driver self.display = display self.input_controller = input_controller self.ui = ui self.power = power # Initializes all system components def initialize(self): self.logger.log("Initializing Petcard System...", 3) self.display.initialize() self.logger.log("System initialization complete", 3) # Main system loop def run(self): try: self.initialize() # Create main menu main_menu_items = [ system.MenuItem("Food", self._action, "f"), system.MenuItem("Drinks", self._action, "d"), system.MenuItem("Play", self._action, "p"), system.MenuItem("Sleep", self.power.sleep) ] main_menu = system.Menu(main_menu_items, self.logger) # Main menu loop while True: selected_item = self.ui.show_menu(main_menu) if selected_item: result = selected_item.execute() if result == "exit": break except Exception as e: self.logger.log(f"System error: {e}", 0) self.power.exit_system("System encountered an error") # Defines what to do when a certain action is triggered def _action(self, act): if act == "f": self.logger.log("Food!", 3) elif act == "d": self.logger.log("Drink!", 3) elif act == "p": self.logger.log("Play!", 3) else: self.logger.log(f"Invalid action {act}", 1) return # # End Of File (EOF) #