diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1-Installer-V2.exe b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1-Installer-V2.exe
deleted file mode 100644
index 11c87b4..0000000
Binary files a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1-Installer-V2.exe and /dev/null differ
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/.gitignore b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/.name b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/.name
deleted file mode 100644
index 06ffd37..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-biogascontrollerapp.py
\ No newline at end of file
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/ENATECH.iml b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/ENATECH.iml
deleted file mode 100644
index 0e4e9fa..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/ENATECH.iml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/inspectionProfiles/profiles_settings.xml b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/inspectionProfiles/profiles_settings.xml
deleted file mode 100644
index 105ce2d..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/inspectionProfiles/profiles_settings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/misc.xml b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/misc.xml
deleted file mode 100644
index d1e22ec..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/misc.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/modules.xml b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/modules.xml
deleted file mode 100644
index 6610bd3..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1.exe b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1.exe
deleted file mode 100644
index 02ebde7..0000000
Binary files a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1.exe and /dev/null differ
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/BiogasControllerAppLogo.png b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/BiogasControllerAppLogo.png
deleted file mode 100644
index b8e71ad..0000000
Binary files a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/BiogasControllerAppLogo.png and /dev/null differ
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/Readme.txt b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/Readme.txt
deleted file mode 100644
index ebb7e2a..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/Readme.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
- ----------------------------------------------------------
-
- BiogasControllerApp V2.1
-
- ----------------------------------------------------------
-
-
- Thank you for downloading the new Version of the BiogsaControllerApp! You are greeted with
- lots of new features, including a new and redesigned Graphical User Interface (later "GUI")
- and an automatic assignment of the comport on Windows.
-
- ----------------------------------------------------------------------------
-
-*FEATURE LIST*
- - Easily read out the data the Microcontroller used in ENATECH sends
- - Easily change the coefficients for the temperature sonds
- - Easily change the temperature that is set for the controller to heat to
- - Easy to navigate menus and submenus for better organisation
- - (Almost) Bugfree
- - Highly detailed error resolving instructions directly inside of the app
- - Easy to run: No extra Software required (e.g. Python or similar)
- - Easy to install and uninstall as it has an installer and uninstaller
-
-
-#######################################################################################################
-
- _________
-
- CHANGELOG
- _________
-
- DEVELOPMENT VERSIONS
- .......................
-
- dev-V2rev1:
- - new GUI
- - complete rework of the backend
- - functioning value reading module
-
- dev-V2rev2:
- - functioning Read-Data Screen
- - automatic assignment of the serial port
-
- dev-V2rev3:
- - functioning Change-Temperature screen
- - functioning Change-All-Data screen
-
- dev-V2rev4:
- - some Error-Infos were added
-
- V2-Rc1:
- - Bugfixes
-
- V2-Rc2:
- - Bugfixes
-
-
- dev-V2.1rev1:
- - fixed a bug, where it was possible that the app crashed if an error in
- the communication module occured
-
- dev-V2.1rev2:
- - Optimised port assignment so that it now can handle multiple comports
-
- dev-V2.1rev3:
- - added way more detailed Error information and Error-resolving hints
-
- dev-v2.1rev4:
- - fixed a bug, where it was possible that the app crashed if one unplugged
- the cable whilst in any other screen than the homescreen or credits screen
-
- V2.1-Rc1:
- - small Bugfixes
-
-
-
- FULL RELEASES
- ......................
-
- V2:
- - NEW GUI
- - NEW Backend
- - AUTOMATIC assignment of COMPORTS
-
- V2.1
- - DETAILED Error-Info
- - DETAILED Error-Resolving-Tips
- - MORE RELIABLE Comport handling
- - BUGFIXES
-
-
-
-******************************************************************************************************
-
- THIS APP IS FREE TO USE FOR ALL STUDENTS AT THE
- KANTONSSCHULE WOHLEN
-
-******************************************************************************************************
-
-
- DEVELOPMENT:
-
- - Microcontroller Software: Dr. A. Cornaz
- - BiogasControllerApp V1.0.0: S. Reichmuth
- - BiogasControllerApp V2.x: J. Hutz
-
-
-
-==================================
-=== COPYRIGHT 2022 J. Hutz ======
-==================================
-
-
-
-
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/__pycache__/biogascontrollerapp.cpython-38.pyc b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/__pycache__/biogascontrollerapp.cpython-38.pyc
deleted file mode 100644
index ddccd89..0000000
Binary files a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/__pycache__/biogascontrollerapp.cpython-38.pyc and /dev/null differ
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/gui/gui.kv b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/gui/gui.kv
deleted file mode 100644
index babb5f3..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/gui/gui.kv
+++ /dev/null
@@ -1,611 +0,0 @@
-RootScreen:
- HomeScreen:
- ReadoutScreen:
- ReadData:
- ProgramTemp:
- Program:
- Credits:
-
-:
- title: "BiogasControllerApp"
- font_size: 50
- size_hint: 0.5, 0.4
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "Are you sure you want to leave?"
- font_size: 20
- GridLayout:
- cols:2
- Button:
- text: "Yes"
- font_size: 15
- on_release:
- root.quitapp()
- app.stop()
- Button:
- text: "No"
- font_size: 15
- on_press:
- root.dismiss()
-
-:
- title: "WARNING!"
- font_size: 50
- size_hint: 0.5, 0.4
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "Unable to open Serial Port"
- font_size: 20
- GridLayout:
- cols:2
- Button:
- text: "Details"
- on_release:
- root.details()
- Button:
- text:"Ok"
- on_release:
- root.dismiss()
-
-:
- title: "WARNING!"
- font_size: 50
- size_hint: 0.7, 0.6
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "Unable to communicate"
- font_size: 20
- Label:
- text: "Possible ways to resolve this problem:\n- Try again\n- Restart the PIC16F877 or reset the program\n- Check the cable / connect one"
- font_size: 14
- Button:
- text:"Ok"
- on_release:
- root.dismiss()
-
-:
- on_open: self.update_details = root.infos()
- title: "DETAILS"
- font_size: 50
- size_hint: 1, 0.7
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "Unable to open Serial Port"
- font_size: 20
- Label:
- id: errormessage
- text: root.infos()
- font_size: 13
- Label:
- text: root.error_tips()
- font_size: 13
- Button:
- text:"Ok"
- on_release:
- root.dismiss()
-
-:
- title: "NOTICE!"
- font_size: 50
- size_hint: 0.5, 0.4
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "Mode Switched!"
- font_size: 30
- Button:
- text:"Ok"
- on_release:
- root.dismiss()
-
-:
- title: "NOTICE!"
- font_size: 50
- size_hint: 0.5, 0.4
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "SAVED!"
- font_size: 30
- Button:
- text:"Ok"
- on_release:
- root.dismiss()
-
-:
- title: "NOTICE!"
- font_size: 50
- size_hint: 0.5, 0.4
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "Establishing connection with PIC16F877"
- font_size: 18
- Label:
- text: "This Process may take a while..."
- font_size: 15
- Button:
- text:"Ok"
- on_release:
- root.dismiss()
-
-:
- title: "WARNING!"
- font_size: 50
- size_hint: 0.5, 0.4
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "Missing Information!"
- font_size: 18
- Label:
- text: "Check your entry"
- font_size: 15
- Button:
- text:"Ok"
- on_release:
- root.dismiss()
-
-:
- title: "NOTICE!"
- font_size: 50
- size_hint: 0.5, 0.4
- auto_dismiss: False
- GridLayout:
- cols:1
- Label:
- text: "Connection with PIC16F877 terminated"
- font_size: 18
- Label:
- text: "The connection to the Microcontroller\nhas been terminated successfully"
- font_size: 15
- Button:
- text:"Ok"
- on_release:
- root.dismiss()
-
-######################################
-# SCREENS
-######################################
-
-:
- name: "Home"
- canvas.before:
- Color:
- rgba: (50,50,50,0.2)
- Rectangle:
- size: self.size
- pos: self.pos
- GridLayout:
- cols:1
- Label:
- text: "BiogasanlageControllerApp"
- font_size: 50
- color: (0, 113, 0, 1)
- bold:True
- italic:True
- FloatLayout:
- GridLayout:
- cols: 2
- size_hint: 0.8, 0.8
- pos_hint: {"x": 0.1, "y": 0.1}
- Button:
- text: "Start"
- background_color: (255, 0, 0, 0.6)
- font_size: 30
- on_release:
- root.tryconnection()
- Button:
- text: "Quit"
- background_color: (255, 0, 0, 0.6)
- font_size: 30
- on_release:
- root.exitapp()
- Label:
- text: "You are currently running Version 2.1.0 - If you encounter a bug, please report it!"
- font_size: 13
- pos_hint: {"y": -0.45, "x":0.05}
- Button:
- text: "credits"
- font_size: 13
- size_hint: 0.07, 0.06
- pos_hint: {"x":0.01, "y":0.01}
- background_color: (50, 0, 0, 0.2)
- on_release:
- app.root.current = "Credits"
- root.manager.transition.direction = "left"
-
-:
- on_pre_enter: self.reset_screen = root.resscreen()
- name: "Readout"
- canvas.before:
- Color:
- rgba: (50,50,50,0.2)
- Rectangle:
- size: self.size
- pos: self.pos
- GridLayout:
- FloatLayout:
- Label:
- pos_hint: {"y":0.4}
- text: "READOUT"
- font_size: 40
- color: (0, 113, 0, 1)
- bold: True
- GridLayout:
- cols:4
- size_hint: 0.8, 0.3
- pos_hint: {"x":0.1, "y":0.4}
- Label:
- text: "SONDE 1: "
- font_size: 20
- Label:
- id: sonde1
- text: ""
- Label:
- text: "SONDE 2: "
- font_size: 20
- Label:
- id: sonde2
- text: ""
- Label:
- text: "SONDE 3: "
- font_size: 20
- Label:
- id: sonde3
- text: ""
- Label:
- text: "SONDE 4: "
- font_size: 20
- Label:
- id: sonde4
- text: ""
- Button:
- text: "Start communication"
- size_hint: 0.2, 0.1
- pos_hint: {"x": 0.5, "y": 0.05}
- background_color: (255, 0, 0, 0.6)
- on_release:
- root.start_com()
- Button:
- text: "End communication"
- size_hint: 0.2, 0.1
- pos_hint: {"x": 0.7, "y": 0.05}
- background_color: (255, 0, 0, 0.6)
- on_release:
- root.end_com()
- Button:
- text: "Back"
- size_hint: 0.3, 0.1
- pos_hint: {"x":0.05, "y":0.05}
- background_color: (255, 0, 0, 0.6)
- on_release:
- root.leave_screen()
- app.root.current = "Home"
- root.manager.transition.direction = "left"
- ToggleButton:
- id: mode_sel
- size_hint: 0.15, 0.1
- pos_hint: {"x":0.1, "y":0.2}
- text: "Normal Mode" if self.state == "normal" else "Fast Mode"
- on_text: root.switch_mode(mode_sel.text)
- background_color: (255,0,0,0.6) if self.state == "normal" else (0,0,255,0.6)
- Button:
- text: "Read Data"
- size_hint: 0.15, 0.1
- pos_hint: {"x":0.3, "y":0.2}
- background_color: (255, 0, 0, 0.6)
- on_release:
- root.leave_screen()
- app.root.current = "RD"
- root.manager.transition.direction = "down"
- Button:
- text: "Temperature"
- size_hint: 0.15, 0.1
- pos_hint: {"x":0.5, "y":0.2}
- background_color: (255, 0, 0, 0.6)
- on_release:
- root.leave_screen()
- app.root.current = "PT"
- root.manager.transition.direction = "down"
- Button:
- text: "Change all Data"
- size_hint: 0.15, 0.1
- pos_hint: {"x":0.7, "y":0.2}
- background_color: (255, 0, 0, 0.6)
- on_release:
- root.leave_screen()
- app.root.current = "PR"
- root.manager.transition.direction = "down"
- Label:
- id: frequency
- text: "Frequency will appear here"
- font_size: 10
- pos_hint: {"x":0.4, "y": 0.3}
-
-:
- name: "RD"
- canvas.before:
- Color:
- rgba: (50,50,50,0.2)
- Rectangle:
- size: self.size
- pos: self.pos
- GridLayout:
- FloatLayout:
- Label:
- text: "Read Data"
- font_size: 40
- color: (0, 113, 0, 1)
- bold: True
- pos_hint: {"y":0.4}
- Button:
- text: "Start Readout"
- size_hint: 0.2, 0.1
- pos_hint: {"x":0.4, "y":0.1}
- on_release:
- root.read_data()
- Button:
- text: "Back"
- size_hint: 0.2, 0.1
- pos_hint: {"x":0.1, "y":0.1}
- background_color: (255, 0, 0, 0.6)
- on_release:
- app.root.current = "Readout"
- root.manager.transition.direction = "up"
- GridLayout:
- cols:4
- size_hint: 0.8, 0.4
- pos_hint: {"x":0.1, "y":0.3}
- Label:
- text: "Sonde 1"
- font_size: 20
- Label:
- id: inf_sonde1
- text: ""
- Label:
- text: "Sonde 2"
- font_size: 20
- Label:
- id: inf_sonde2
- text: ""
- Label:
- text: "Sonde 3"
- font_size: 20
- Label:
- id: inf_sonde3
- text: ""
- Label:
- text: "Sonde 4"
- font_size: 20
- Label:
- id: inf_sonde4
- text: ""
-
-:
- name: "PT"
- canvas.before:
- Color:
- rgba: (50,50,50,0.2)
- Rectangle:
- size: self.size
- pos: self.pos
- GridLayout:
- FloatLayout:
- Label:
- text: "Change Temperature"
- pos_hint: {"y":0.4}
- font_size: 40
- color: (0, 113, 0, 1)
- bold: True
- GridLayout:
- size_hint: 0.8, 0.4
- pos_hint: {"x": 0.1, "y":0.3}
- cols:2
- Label:
- text: "Temperatur Sonde 1: "
- TextInput:
- id: temp_s1
- multiline: False
- input_filter: "float"
- Label:
- text: "Temperatur Sonde 2: "
- TextInput:
- id: temp_s2
- multiline: False
- input_filter: "float"
- Label:
- text: "Temperatur Sonde 3: "
- TextInput:
- id: temp_s3
- multiline: False
- input_filter: "float"
- Label:
- text: "Temperatur Sonde 4: "
- TextInput:
- id: temp_s4
- multiline: False
- input_filter: "float"
- Button:
- text: "Back"
- size_hint: 0.2, 0.1
- pos_hint: {"x":0.1, "y":0.1}
- background_color: (255, 0, 0, 0.6)
- on_release:
- app.root.current = "Readout"
- root.manager.transition.direction = "up"
- Button:
- text: "Save"
- size_hint: 0.2, 0.1
- pos_hint: {"x":0.6, "y":0.1}
- background_color: (255, 0, 0, 0.6)
- on_release:
- root.send_data()
-
-:
- name: "PR"
- canvas.before:
- Color:
- rgba: (50,50,50,0.2)
- Rectangle:
- size: self.size
- pos: self.pos
- FloatLayout:
- Label:
- text: "Change all Data"
- font_size: 40
- color: (0, 113, 0, 1)
- bold: True
- pos_hint: {"y":0.4}
- GridLayout:
- size_hint: 0.8, 0.5
- pos_hint: {"x":0.1, "y":0.2}
- cols: 4
- Label:
- text: "Sonde 1, a:"
- TextInput:
- id: s1_a
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 1, b:"
- TextInput:
- id: s1_b
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 1, c:"
- TextInput:
- id: s1_c
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 1, Temp:"
- TextInput:
- id: s1_t
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 2, a:"
- TextInput:
- id: s2_a
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 2, b:"
- TextInput:
- id: s2_b
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 2, c:"
- TextInput:
- id: s2_c
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 2, Temp:"
- TextInput:
- id: s2_t
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 3, a:"
- TextInput:
- id: s3_a
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 3, b:"
- TextInput:
- id: s3_b
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 3, c:"
- TextInput:
- id: s3_c
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 3, Temp:"
- TextInput:
- id: s3_t
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 4, a:"
- TextInput:
- id: s4_a
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 4, b:"
- TextInput:
- id: s4_b
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 4, c:"
- TextInput:
- id: s4_c
- multiline: False
- input_filter: "float"
- Label:
- text: "Sonde 4, Temp:"
- TextInput:
- id: s4_t
- multiline: False
- input_filter: "float"
- Button:
- text: "Back"
- size_hint: 0.2, 0.1
- pos_hint: {"x":0.1, "y":0.1}
- background_color: (255, 0, 0, 0.6)
- on_release:
- app.root.current = "Readout"
- root.manager.transition.direction = "up"
- Button:
- text: "Save"
- size_hint: 0.2, 0.1
- pos_hint: {"x":0.6, "y":0.1}
- background_color: (255, 0, 0, 0.6)
- on_release:
- root.send_data()
-
-:
- name: "Credits"
- canvas.before:
- Color:
- rgba: (50,50,50,0.2)
- Rectangle:
- size: self.size
- pos: self.pos
- FloatLayout:
- Button:
- text: "back"
- size_hint: 0.4, 0.2
- pos_hint: {"x":0.3, "y":0.1}
- on_release:
- app.root.current = "Home"
- root.manager.transition.direction = "right"
- GridLayout:
- cols:1
- pos_hint:{"x":0.05, "y":0.35}
- size_hint: 0.9, 0.5
- Label:
- text: "This is a rework of the BiogasControllerApp V1, that was originally programmed by S. Reichmuth."
- Label:
- text: "Written by: Janis Hutz\nDesigned by: Janis Hutz\nDesign language: Kivy"
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/communication.cpython-38.pyc b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/communication.cpython-38.pyc
deleted file mode 100644
index a508582..0000000
Binary files a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/communication.cpython-38.pyc and /dev/null differ
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/comport_search.cpython-38.pyc b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/comport_search.cpython-38.pyc
deleted file mode 100644
index 5b24120..0000000
Binary files a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/comport_search.cpython-38.pyc and /dev/null differ
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/lib.cpython-38.pyc b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/lib.cpython-38.pyc
deleted file mode 100644
index cac2669..0000000
Binary files a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/__pycache__/lib.cpython-38.pyc and /dev/null differ
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/communication.py b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/communication.py
deleted file mode 100644
index 768f6d6..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/communication.py
+++ /dev/null
@@ -1,96 +0,0 @@
-import bin.lib.lib
-com = bin.lib.lib.Com()
-
-
-class Communication:
- def __init__(self):
- self.__x = 0
- self.__data_recieve = 0
- self.__output = ""
-
- def change_temp(self, data, special_port):
- com.connect(19200, special_port)
- com.send("PT")
- self.go = 0
- while True:
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "\n":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "P":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "T":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "\n":
- self.go = 1
- break
- else:
- pass
- else:
- pass
- else:
- pass
- else:
- pass
- if self.go == 1:
- self.data = data
- while len(self.data) > 0:
- self.__data_recieve = com.receive(3)
- if self.__data_recieve != "":
- com.send_float(float(self.data.pop(0)))
- else:
- print("error")
- break
- else:
- print("Error")
- com.quitcom()
-
- def change_all(self, data, special_port):
- com.connect(19200, special_port)
- com.send("PR")
- self.go = 0
- while True:
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "\n":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "P":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "R":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "\n":
- self.go = 1
- break
- else:
- pass
- else:
- pass
- else:
- pass
- else:
- pass
- if self.go == 1:
- self.data = data
- while len(self.data) > 0:
- self.__data_recieve = com.receive(3)
- if self.__data_recieve != "":
- com.send_float(float(self.data.pop(0)))
- else:
- print("error")
- break
- else:
- print("Error")
- com.quitcom()
-
-
-class SwitchMode:
- def __init__(self):
- pass
-
- def enable_fastmode(self):
- com.connect(19200,"")
- com.send("FM")
- com.quitcom()
-
- def disable_fastmode(self):
- com.connect(19200, "")
- com.send("NM")
- com.quitcom()
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/comport_search.py b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/comport_search.py
deleted file mode 100644
index 020e75a..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/comport_search.py
+++ /dev/null
@@ -1,22 +0,0 @@
-import serial.tools.list_ports
-
-
-class ComportService:
- def __init__(self):
- self.__comport = []
- self.__import = []
- self.__working = []
-
- def get_comport(self, special_port=""):
- self.__comport = [comport.device for comport in serial.tools.list_ports.comports()]
- self.__pos = 0
- if special_port != "":
- self.__working = special_port
- else:
- while self.__working == []:
- self.__com_name = serial.tools.list_ports.comports()[self.__pos]
- if "USB-Serial Controller" or "Prolific USB-Serial Controller" in self.__com_name:
- self.__working = self.__comport.pop(self.__pos)
- else:
- self.__pos += 1
- return self.__working
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/lib.py b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/lib.py
deleted file mode 100644
index 7c5f507..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/bin/lib/lib.py
+++ /dev/null
@@ -1,73 +0,0 @@
-import serial
-import struct
-import bin.lib.comport_search
-"""@package docstring
-This package can communicate with a microcontroller"""
-
-coms = bin.lib.comport_search.ComportService()
-
-
-class Com:
- def __init__(self):
- self.xr = ""
- self.output = ""
- self.str_input = ""
- self.str_get_input = ""
- self.xs = ""
- self.__comport = '/dev/ttyUSB0'
-
- def connect(self, baudrate, special_port):
- try:
- self.__comport = coms.get_comport(special_port)
- except:
- pass
- self.ser = serial.Serial(self.__comport, baudrate=baudrate, timeout=5)
-
- def quitcom(self):
- try:
- self.ser.close()
- except:
- pass
-
- def receive(self, amount_bytes):
- self.xr = self.ser.read(amount_bytes)
- return self.xr
-
- def decode_ascii(self, value):
- try:
- self.output = value.decode()
- except:
- self.output = "Error"
- return self.output
-
- def check_value(self, value_check, checked_value):
- if value_check == checked_value:
- return 1
- else:
- return 0
-
- def decode_int(self, value):
- self.i = int(value, base = 16)
- return self.i
-
- def decode_float(self, value):
- self.fs = str(value, 'ascii') + '00'
- self.f = struct.unpack('>f', bytes.fromhex(self.fs))
- return str(self.f[0])
-
- def decode_float_2(self, value):
- self.fs = str(value, 'ascii') + '0000'
- self.f = struct.unpack('>f', bytes.fromhex(self.fs))
- return str(self.f[0])
-
- def get_input(self):
- self.str_get_input = input("please enter a character to send: ")
- return self.str_get_input
-
- def send(self, str_input):
- self.xs = str_input.encode()
- self.ser.write(self.xs)
-
- def send_float(self, float_input):
- ba = bytearray(struct.pack('>f', float_input))
- self.ser.write(ba[0:3])
diff --git a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/biogascontrollerapp.py b/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/biogascontrollerapp.py
deleted file mode 100644
index a14538a..0000000
--- a/BiogasControllerApp-V2.1/BiogasControllerApp-V2.1/biogascontrollerapp.py
+++ /dev/null
@@ -1,507 +0,0 @@
-print("""
-
-=====================
-
-BIOGASCONTROLLERAPP
-
-----------
-Version 2.1
-Copyright 2022 J.Hutz""")
-import time
-import threading
-import platform
-import os
-os.environ["KIVY_NO_CONSOLELOG"] = "1"
-from kivy.uix.screenmanager import Screen, ScreenManager
-from kivy.uix.popup import Popup
-from kivy.app import App
-from kivy.lang import Builder
-from kivy.clock import mainthread
-import bin.lib.lib
-import bin.lib.communication
-import bin.lib.comport_search
-
-
-
-
-com = bin.lib.lib.Com()
-
-##################################################################
-# Popups
-##################################################################
-
-
-class QuitPU(Popup):
- def quitapp(self):
- com.quitcom()
-
-
-class NoConnection(Popup):
- def details(self):
- self.detailsinfo = DetailInfo()
- self.detailsinfo.open()
-
-
-class DetailInfo(Popup):
- update_details = ""
- def infos(self):
- self.err = ""
- try:
- com.connect(19200, "")
- com.quitcom()
- except Exception as err:
- self.err += "Errormessage:\n"
- self.err += str(err)
- self.err += "\n-------------------------------------------------------------------------------------------------------------------------------------------------------------\n"
- return str(self.err)
-
- def error_tips(self):
- self.err_tip = ""
- try:
- com.connect(19200, "")
- com.quitcom()
- except Exception as err:
- self.err_tip += "Possible way to resolve the issue: \n\n"
- if str(err)[0:10] == "[Errno 13]":
- if platform.system() == "Linux":
- self.err_tip += f"Open a terminal and type in: sudo chmod 777 {bin.lib.comport_search.ComportService().get_comport()}"
- elif platform.system() == "Macintosh":
- self.err_tip += "Give permission to access the cable"
- elif platform.system() == "Windows":
- self.err_tip += "Try a different cable or install another driver"
- else:
- self.err_tip += "Unknown OS"
- elif str(err)[0:10] == "[Errno 2] ":
- if platform.system() == "Linux":
- self.err_tip += "Connect a cable, open a terminal and type in: sudo chmod 777 /dev/ttyUSB0"
- elif platform.system() == "Macintosh":
- self.err_tip += "Give permission to access the cable"
- elif platform.system() == "Windows":
- self.err_tip += "Try a different cable or install another driver"
- else:
- self.err_tip += "Unknown OS"
- elif str(err)[0:34] == "could not open port '/dev/ttyUSB0'":
- self.err_tip += "Please connect the PC with the microcontroller!"
- elif str(err)[0:26] == f"could not open port '{bin.lib.comport_search.ComportService().get_comport()}'":
- self.err_tip += "Try using a different cable or close all monitoring software (like MSI Afterburner)"
- else:
- self.err_tip += "Special Error, consult the manual of Serial"
- return str(self.err_tip)
-
-
-class Modeswitch(Popup):
- pass
-
-
-class Connecting_PU(Popup):
- pass
-
-
-class Disconnecting_PU(Popup):
- pass
-
-
-class MissingFieldsError(Popup):
- pass
-
-
-class ConnectionFail(Popup):
- pass
-
-
-class SaveConf(Popup):
- pass
-
-
-####################################################################
-# SCREENS
-####################################################################
-
-class HomeScreen(Screen):
- connected = 1
- try:
- com.connect(19200, "")
- com.quitcom()
- except:
- connected = 0
-
- def tryconnection(self):
- try:
- com.connect(19200, "")
- com.quitcom()
- self.connected = 1
- self.manager.current = "Readout"
- self.manager.transition.direction = "right"
- except:
- self.connected = 0
- self.open_popup()
-
- def open_popup(self):
- self.popups = NoConnection()
- self.popups.open()
-
- def exitapp(self):
- self.pup = QuitPU()
- self.pup.open()
-
-
-class ReadoutScreen(Screen):
- go = 1
- def start_com(self):
- self.comstart(1)
-
- def comstart(self, pu_on):
- try:
- com.connect(19200, "")
- self.go = 1
- except:
- self.go = 0
-
- if self.go == 1:
- self.parent.current = "Readout"
- if pu_on == 1:
- self.openstartpu()
- else:
- pass
- self.communication = threading.Thread(name="communication", target=self.start_coms)
- self.communication.start()
- else:
- self.openconnectionfailpu()
-
- def end_com(self):
- self.stopcom(1)
-
- def stopcom(self, pu_on):
- self.go = 0
- try:
- self.communication.join()
- except:
- pass
- if pu_on == 1:
- self.openendpu()
- else:
- pass
-
- def start_coms(self):
- self.check = 1
- self.__level = 0
- self.__distance = 0
- self.__x = ""
- self.__begin = time.time()
- self.go = 1
- while self.__x != "\n":
- if time.time() - self.__begin > 5:
- self.go = 0
- break
- else:
- self.__x = com.decode_ascii(com.receive(1))
-
- if self.go == 1:
- while self.__level < 3:
- self.__x = com.decode_ascii(com.receive(1))
- if self.__x == " ":
- if self.__distance == 4:
- self.__level += 1
- else:
- pass
- self.__distance = 0
- else:
- if self.__distance > 4:
- self.__level = 0
- self.__distance = 0
- else:
- self.__distance += 1
- self.check = 1
- com.receive(5)
- else:
- self.go = 0
- self.check = 0
-
- while self.go == 1:
- self.__starttime = time.time()
- self.__output = ""
- self.__data_recieve = com.receive(68)
- self.__output += "Tadc: "
- self.__output += str(com.decode_int(self.__data_recieve[0:4]))
- self.__output += "\nTemperatur: "
- self.__output += com.decode_float(self.__data_recieve[5:11])
- self.__output += f"\nDuty-Cycle: {(float(com.decode_float_2(self.__data_recieve[48:52])) / 65535) * 100}%"
- self.change_screen(1, self.__output)
- self.__output = "Tadc: "
- self.__output += str(com.decode_int(self.__data_recieve[12:16]))
- self.__output += "\nTemperatur: "
- self.__output += com.decode_float(self.__data_recieve[17:23])
- self.__output += f"\nDuty-Cycle: {(float(com.decode_float_2(self.__data_recieve[53:57])) / 65535) * 100}%"
- self.change_screen(2, self.__output)
- self.__output = "Tadc: "
- self.__output += str(com.decode_int(self.__data_recieve[24:28]))
- self.__output += "\nTemperatur: "
- self.__output += com.decode_float(self.__data_recieve[29:35])
- self.__output += f"\nDuty-Cycle: {(float(com.decode_float_2(self.__data_recieve[58:62])) / 65535) * 100}%"
- self.change_screen(3, self.__output)
- self.__output = "Tadc: "
- self.__output += str(com.decode_int(self.__data_recieve[36:40]))
- self.__output += "\nTemperatur: "
- self.__output += com.decode_float(self.__data_recieve[41:47])
- self.__output += "\nDuty-Cycle: "
- self.__output += f"\nDuty-Cycle: {(float(com.decode_float_2(self.__data_recieve[63:67])) / 65535) * 100}%"
- self.change_screen(4, self.__output)
- self.change_screen(5, f"F={1 / (time.time() - self.__starttime)}")
- self.change_screen(6, "")
- com.quitcom()
-
- def switch_mode(self, text):
- self.go = 0
- try:
- self.communication.join()
- com.quitcom()
- except:
- pass
- if text == "Normal Mode":
- bin.lib.communication.SwitchMode().disable_fastmode()
- else:
- bin.lib.communication.SwitchMode().enable_fastmode()
- self.openpupups()
- self.comstart(0)
-
- @mainthread
- def change_screen(self, pos, value):
- if pos == 1:
- self.ids.sonde1.text = value
- elif pos == 2:
- self.ids.sonde2.text = value
- elif pos == 3:
- self.ids.sonde3.text = value
- elif pos == 4:
- self.ids.sonde4.text = value
- elif pos == 6:
- self.openconnectionfailpu()
- else:
- self.ids.frequency.text = value
-
- def openpupups(self):
- self.popup = Modeswitch()
- self.popup.open()
-
- def openendpu(self):
- self.pu = Disconnecting_PU()
- self.pu.open()
-
- def openstartpu(self):
- self.pup = Connecting_PU()
- self.pup.open()
-
- def openconnectionfailpu(self):
- if self.check == 0:
- self.cfpu = ConnectionFail()
- self.cfpu.open()
- else:
- pass
-
- def leave_screen(self):
- self.stopcom(0)
-
- def resscreen(self):
- self.ids.sonde1.text = ""
- self.ids.sonde2.text = ""
- self.ids.sonde3.text = ""
- self.ids.sonde4.text = ""
- self.ids.frequency.text = ""
-
-
-class Program(Screen):
- def create_com(self):
- self.coms = bin.lib.communication.Communication()
-
- def send_data(self):
- try:
- self.create_com()
- self.go = 1
- except:
- self.go = 0
-
- if self.go == 1:
- self.__transmit = []
- if self.ids.s1_a.text != "" and self.ids.s1_b.text != "" and self.ids.s1_c.text != "" and self.ids.s1_t.text != "" and self.ids.s2_a.text != "" and self.ids.s2_b.text != "" and self.ids.s2_c.text != "" and self.ids.s2_t.text != "" and self.ids.s3_a.text != "" and self.ids.s3_b.text != "" and self.ids.s3_c.text != "" and self.ids.s3_t.text != "" and self.ids.s4_a.text != "" and self.ids.s4_b.text != "" and self.ids.s4_c.text != "" and self.ids.s4_t.text != "":
- self.__transmit.append(self.ids.s1_a.text)
- self.__transmit.append(self.ids.s1_b.text)
- self.__transmit.append(self.ids.s1_c.text)
- self.__transmit.append(self.ids.s1_t.text)
- self.__transmit.append(self.ids.s2_a.text)
- self.__transmit.append(self.ids.s2_b.text)
- self.__transmit.append(self.ids.s2_c.text)
- self.__transmit.append(self.ids.s2_t.text)
- self.__transmit.append(self.ids.s3_a.text)
- self.__transmit.append(self.ids.s3_b.text)
- self.__transmit.append(self.ids.s3_c.text)
- self.__transmit.append(self.ids.s3_t.text)
- self.__transmit.append(self.ids.s4_a.text)
- self.__transmit.append(self.ids.s4_b.text)
- self.__transmit.append(self.ids.s4_c.text)
- self.__transmit.append(self.ids.s4_t.text)
- self.coms.change_all(self.__transmit,"")
- self.ids.s1_a.text = ""
- self.ids.s1_b.text = ""
- self.ids.s1_c.text = ""
- self.ids.s1_t.text = ""
- self.ids.s2_a.text = ""
- self.ids.s2_b.text = ""
- self.ids.s2_c.text = ""
- self.ids.s2_t.text = ""
- self.ids.s3_a.text = ""
- self.ids.s3_b.text = ""
- self.ids.s3_c.text = ""
- self.ids.s3_t.text = ""
- self.ids.s4_a.text = ""
- self.ids.s4_b.text = ""
- self.ids.s4_c.text = ""
- self.ids.s4_t.text = ""
- self.openconfpu()
- else:
- self.openerrorpu()
- else:
- self.open_confail_pu()
-
- def openerrorpu(self):
- self.pu = MissingFieldsError()
- self.pu.open()
-
- def open_confail_pu(self):
- self.cfpu = ConnectionFail()
- self.cfpu.open()
-
- def openconfpu(self):
- self.confpus = SaveConf()
- self.confpus.open()
-
-
-class ProgramTemp(Screen):
- def create_com(self):
- self.coms = bin.lib.communication.Communication()
-
- def send_data(self):
- try:
- self.create_com()
- self.go = 1
- except:
- self.go = 0
-
- if self.go == 1:
- self.__transmit = []
- if self.ids.temp_s1.text != "" and self.ids.temp_s2.text != "" and self.ids.temp_s3.text != "" and self.ids.temp_s4.text != "":
- self.__transmit.append(self.ids.temp_s1.text)
- self.__transmit.append(self.ids.temp_s2.text)
- self.__transmit.append(self.ids.temp_s3.text)
- self.__transmit.append(self.ids.temp_s4.text)
- self.coms.change_temp(self.__transmit, "")
- self.ids.temp_s1.text = ""
- self.ids.temp_s2.text = ""
- self.ids.temp_s3.text = ""
- self.ids.temp_s4.text = ""
- self.openconfpu()
- else:
- self.openerrorpu()
- else:
- self.open_confail_pu()
-
- def openerrorpu(self):
- self.pu = MissingFieldsError()
- self.pu.open()
-
- def openconfpu(self):
- self.confpu = SaveConf()
- self.confpu.open()
-
- def open_confail_pu(self):
- self.cfpu = ConnectionFail()
- self.cfpu.open()
-
-
-class ReadData(Screen):
- def read_data(self):
- try:
- com.connect(19200, "")
- self.go = 1
- except:
- self.go = 0
-
- if self.go == 1:
- com.send("RD")
- self.__pos = 1
- self.__beginning = time.time()
- self.go = 1
- while True:
- if time.time() - self.__beginning < 5:
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "\n":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "R":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "D":
- self.__data_recieve = com.decode_ascii(com.receive(1))
- if self.__data_recieve == "\n":
- self.go = 1
- break
- else:
- pass
- else:
- pass
- else:
- pass
- else:
- pass
- else:
- self.go = 0
- break
- if self.go == 1:
- for i in range(4):
- self.__x = com.receive(28)
- self.__output = "a: "
- self.__output += str(com.decode_float(self.__x[0:6]))
- self.__output += f"\nb: {str(com.decode_float(self.__x[7:13]))}"
- self.__output += f"\nc: {str(com.decode_float(self.__x[14:20]))}"
- self.__output += f"\nTemp: {str(com.decode_float(self.__x[21:27]))}"
- if self.__pos == 1:
- self.ids.inf_sonde1.text = self.__output
- elif self.__pos == 2:
- self.ids.inf_sonde2.text = self.__output
- elif self.__pos == 3:
- self.ids.inf_sonde3.text = self.__output
- elif self.__pos == 4:
- self.ids.inf_sonde4.text = self.__output
- self.__pos += 1
- else:
- self.open_confail_pu()
- com.quitcom()
- else:
- self.open_confail_pu()
-
- def open_confail_pu(self):
- self.cfpu = ConnectionFail()
- self.cfpu.open()
-
-
-class Credits(Screen):
- pass
-
-
-########################################################
-# Screenmanager
-########################################################
-
-
-class RootScreen(ScreenManager):
- pass
-
-
-kv = Builder.load_file("./bin/gui/gui.kv")
-
-
-class BiogasControllerApp(App):
- def build(self):
- self.icon = "./BiogasControllerAppLogo.png"
- return kv
-
-
-if __name__ == "__main__":
- BiogasControllerApp().run()