mirror of
https://github.com/janishutz/BiogasControllerApp.git
synced 2025-11-25 13:54:24 +00:00
119 lines
6.2 KiB
Python
119 lines
6.2 KiB
Python
# ────────────────────────────────────────────────────────────────────
|
|
# ╭────────────────────────────────────────────────╮
|
|
# │ BiogasControllerApp │
|
|
# ╰────────────────────────────────────────────────╯
|
|
#
|
|
# So you would like to read the source code? Nice!
|
|
# Just be warned, this application uses Thread and a UI Toolkit called
|
|
# Kivy to run. If you are unsure of what functions do, consider
|
|
# checking out the kivy docs at https://kivy.org/doc.
|
|
# It also uses the pyserial library for communication with the micro-
|
|
# controller with RS232
|
|
#
|
|
# ────────────────────────────────────────────────────────────────────
|
|
|
|
# Load the config file
|
|
import configparser
|
|
import time
|
|
config = configparser.ConfigParser()
|
|
config.read("./config.ini")
|
|
|
|
|
|
# Introducing tariffs to Python imports.
|
|
# It was too funny of an idea to miss out on
|
|
# You can enable or disable this in the config.
|
|
# It is disabled by default
|
|
if config["Tariffs"]["impose_tariffs"] == "True":
|
|
try:
|
|
import tariff
|
|
|
|
tariff.set({
|
|
"kivy": int(config["Tariffs"]["kivy_rate"]),
|
|
"serial": int(config["Tariffs"]["pyserial_rate"]),
|
|
})
|
|
except Exception as e:
|
|
print(e)
|
|
print("You cannot evade the tariffs. I will impose impose a tariff of 1000000% on the launch of this app!")
|
|
time.sleep(2000000)
|
|
|
|
import os
|
|
from typing import override
|
|
|
|
from lib.com import Com, ComSuperClass
|
|
import lib.test.com
|
|
|
|
|
|
|
|
# Load config and disable kivy log if necessary
|
|
if config["Dev"]["verbose"] == "True":
|
|
pass
|
|
else:
|
|
os.environ["KIVY_NO_CONSOLELOG"] = "1"
|
|
|
|
|
|
# Load kivy modules. Kivy is the UI framework used. See https://kivy.org
|
|
# from kivy.core.window import Window, Config
|
|
from kivy.uix.screenmanager import ScreenManager
|
|
from kivy.app import App
|
|
|
|
|
|
# Store the current app version
|
|
app_version = f"{config['Info']['version']}{config['Info']['subVersion']}"
|
|
|
|
|
|
# ╭────────────────────────────────────────────────╮
|
|
# │ Screens │
|
|
# ╰────────────────────────────────────────────────╯
|
|
# Import all the screens (= pages) used in the app
|
|
from gui.home.home import HomeScreen
|
|
from gui.credits.credits import CreditsScreen
|
|
from gui.program.program import ProgramScreen
|
|
from gui.about.about import AboutScreen
|
|
from gui.main.main import MainScreen
|
|
|
|
|
|
|
|
# ╭────────────────────────────────────────────────╮
|
|
# │ Screen Manager │
|
|
# ╰────────────────────────────────────────────────╯
|
|
# Kivy uses a screen manager to manage pages in the application
|
|
class BiogasControllerApp(App):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(**kwargs)
|
|
self.screen_manager = ScreenManager()
|
|
|
|
@override
|
|
def build(self):
|
|
com: ComSuperClass = Com()
|
|
if config["Dev"]["use_test_library"] == "True":
|
|
com = lib.test.com.Com()
|
|
|
|
self.icon = "./BiogasControllerAppLogo.png"
|
|
self.title = "BiogasControllerApp-" + app_version
|
|
self.screen_manager.add_widget(HomeScreen(com, name="home"))
|
|
self.screen_manager.add_widget(MainScreen(com, name="main"))
|
|
self.screen_manager.add_widget(ProgramScreen(com, name="program"))
|
|
self.screen_manager.add_widget(CreditsScreen(name="credits"))
|
|
self.screen_manager.add_widget(AboutScreen(name="about"))
|
|
return self.screen_manager
|
|
|
|
|
|
# Disallow this file to be imported
|
|
if __name__ == "__main__":
|
|
print("""
|
|
┏━━┓━━━━━━━━━━━━━━━━━━━━┏━━━┓━━━━━━━━━┏┓━━━━━━━━┏┓━┏┓━━━━━━━━┏━━━┓━━━━━━━━
|
|
┃┏┓┃━━━━━━━━━━━━━━━━━━━━┃┏━┓┃━━━━━━━━┏┛┗┓━━━━━━━┃┃━┃┃━━━━━━━━┃┏━┓┃━━━━━━━━
|
|
┃┗┛┗┓┏┓┏━━┓┏━━┓┏━━┓━┏━━┓┃┃━┗┛┏━━┓┏━┓━┗┓┏┛┏━┓┏━━┓┃┃━┃┃━┏━━┓┏━┓┃┃━┃┃┏━━┓┏━━┓
|
|
┃┏━┓┃┣┫┃┏┓┃┃┏┓┃┗━┓┃━┃━━┫┃┃━┏┓┃┏┓┃┃┏┓┓━┃┃━┃┏┛┃┏┓┃┃┃━┃┃━┃┏┓┃┃┏┛┃┗━┛┃┃┏┓┃┃┏┓┃
|
|
┃┗━┛┃┃┃┃┗┛┃┃┗┛┃┃┗┛┗┓┣━━┃┃┗━┛┃┃┗┛┃┃┃┃┃━┃┗┓┃┃━┃┗┛┃┃┗┓┃┗┓┃┃━┫┃┃━┃┏━┓┃┃┗┛┃┃┗┛┃
|
|
┗━━━┛┗┛┗━━┛┗━┓┃┗━━━┛┗━━┛┗━━━┛┗━━┛┗┛┗┛━┗━┛┗┛━┗━━┛┗━┛┗━┛┗━━┛┗┛━┗┛━┗┛┃┏━┛┃┏━┛
|
|
━━━━━━━━━━━┏━┛┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┃┃━━┃┃━━
|
|
━━━━━━━━━━━┗━━┛━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┗┛━━┗┛━━
|
|
|
|
Version 3.0.0
|
|
|
|
=> Initializing....
|
|
""")
|
|
BiogasControllerApp().run()
|
|
print("\n => Exiting!")
|