Petcard/main.py

84 lines
No EOL
2.2 KiB
Python

#
# Petcard Bootloader - v1.0
# Copyright (c) 2025 FreedTapestry21
#
# Licensed under the MIT license
#
#
# Importing libraries
#
from machine import Pin
import time
#
# Define global variables
#
CONSOLE_WELCOME = """
Petcard Bootloader - v1.0
Copyright (c) 2025 FreedTapestry21
Licensed under the MIT license
"""
# Initialize OK button (with pull down resistor)
ok = Pin(1, Pin.IN, Pin.PULL_DOWN)
#
# Function(s)
#
def main():
# Check if a boot interuption was triggered (you can trigger this by holding down the OK button) and wait for 10 seconds
# In later revisions I'd like this to trigger some kind of update screen to easily update the Petcard
INTERUPT = False
if ok.value() == 1:
INTERUPT = True
if INTERUPT == True: return 1
else: return 0
#
# Classes
#
class Instance:
def __init__(self):
self.config_manager = system.ConfigurationManager()
self.logger = system.Logger(self.config_manager.config)
self.input_controller = system.InputController(self.config_manager.config["controls"], self.logger)
# Select display driver
if self.config_manager.config["display"] == "SSD1306":
self.display_driver = system.SSD1306Driver()
else:
self.logger.log(f"No available driver was found for display {self.config_manager.config['display']}!", 0)
self.display_driver = system.DisplayDriver() # DO NOT REMOVE
self.display = system.Display(self.display_driver, 128, 64, self.logger)
self.ui = system.UserInterface(self.display, self.input_controller, self.logger)
self.power = system.Power(self.display, self.input_controller, self.logger)
#
# Entry point
#
if __name__ == '__main__':
if main() == 1:
time.sleep(10)
machine.soft_reset()
print(CONSOLE_WELCOME)
print("Importing SYSTEM module...")
import system
print("Importing APP module...")
import petcard
print("Starting Petcard")
instance = Instance()
app = petcard.Application(instance.config_manager, instance.logger, instance.display_driver, instance.display, instance.input_controller, instance.ui, instance.power)
app.run()
#
# End Of File (EOF)
#