Petcard/petcard.py

79 lines
No EOL
2.2 KiB
Python

#
# Petcard Application - 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)
#