Finished the menu demo
This commit is contained in:
parent
fc2af7031e
commit
1be6e12b54
5 changed files with 643 additions and 51 deletions
75
petcard.py
75
petcard.py
|
@ -1,4 +1,79 @@
|
|||
#
|
||||
# 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)
|
||||
#
|
Loading…
Add table
Add a link
Reference in a new issue