RootScreen: HomeScreen: ReadoutScreen: ReadData: ProgramTemp: Program: Credits: Modify: : title: "NOTICE" size_hint: 0.7, 0.5 auto_dismiss: True GridLayout: cols:1 Label: text: "THIS SOFTWARE IS FREE SOFTWARE LICENSED UNDER THE GNU GENERAL PUBLIC LICENSE V3 (GPL V3) AND AS SUCH COMES WITH ABSOLUTELY NO WARRANTY! \n\nmore info under Settings > Credits" text_size: self.width, None GridLayout: cols: 2 Button: text: "ok" on_release: root.dismiss() Button: text: "Don't show anymore" on_release: root.notshowanymore() : 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: "HomeS" 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: root.reset() id: app_version font_size: 13 pos_hint: {"y": -0.45, "x":0.05} Button: text: "Settings" 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 = "Settings" root.manager.transition.direction = "down" : 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: "SENSOR 1: " font_size: 20 Label: id: sonde1 text: "" Label: text: "SENSOR 2: " font_size: 20 Label: id: sonde2 text: "" Label: text: "SENSOR 3: " font_size: 20 Label: id: sonde3 text: "" Label: text: "SENSOR 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 = "HomeS" 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: "" : on_pre_enter: self.check_config = root.read_config() name: "PT" canvas.before: Color: rgba: (50,50,50,0.2) Rectangle: size: self.size pos: self.pos 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: "Temperature Sensor 1: " TextInput: id: temp_s1 multiline: False input_filter: "float" Label: text: "Temperature Sensor 2: " TextInput: id: temp_s2 multiline: False input_filter: "float" Label: text: "Temperature Sensor 3: " TextInput: id: temp_s3 multiline: False input_filter: "float" Label: text: "Temperature Sensor 4: " TextInput: id: temp_s4 multiline: False input_filter: "float" Button: text: "Back" size_hint: 0.1, 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" ToggleButton: id: prsel size_hint: 0.2, 0.1 pos_hint: {"x":0.35, "y": 0.1} text: "Full\nreprogramming" if self.state == "normal" else "Partial\nreprogramming" on_release: root.change_mode() background_color: (255,0,0,0.6) if self.state == "normal" else (0,0,255,0.6) 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" on_pre_enter: self.check_config = root.read_config() 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: "Sensor 1, a:" TextInput: id: s1_a multiline: False input_filter: "float" Label: text: "Sensor 1, b:" TextInput: id: s1_b multiline: False input_filter: "float" Label: text: "Sensor 1, c:" TextInput: id: s1_c multiline: False input_filter: "float" Label: text: "Sensor 1, Temp:" TextInput: id: s1_t multiline: False input_filter: "float" Label: text: "Sensor 2, a:" TextInput: id: s2_a multiline: False input_filter: "float" Label: text: "Sensor 2, b:" TextInput: id: s2_b multiline: False input_filter: "float" Label: text: "Sensor 2, c:" TextInput: id: s2_c multiline: False input_filter: "float" Label: text: "Sensor 2, Temp:" TextInput: id: s2_t multiline: False input_filter: "float" Label: text: "Sensor 3, a:" TextInput: id: s3_a multiline: False input_filter: "float" Label: text: "Sensor 3, b:" TextInput: id: s3_b multiline: False input_filter: "float" Label: text: "Sensor 3, c:" TextInput: id: s3_c multiline: False input_filter: "float" Label: text: "Sensor 3, Temp:" TextInput: id: s3_t multiline: False input_filter: "float" Label: text: "Sensor 4, a:" TextInput: id: s4_a multiline: False input_filter: "float" Label: text: "Sensor 4, b:" TextInput: id: s4_b multiline: False input_filter: "float" Label: text: "Sensor 4, c:" TextInput: id: s4_c multiline: False input_filter: "float" Label: text: "Sensor 4, Temp:" TextInput: id: s4_t multiline: False input_filter: "float" Button: text: "Back" size_hint: 0.1, 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" ToggleButton: id: prsel size_hint: 0.2, 0.1 pos_hint: {"x":0.35, "y": 0.1} text: "Full\nreprogramming" if self.state == "normal" else "Partial\nreprogramming" on_release: root.change_mode() background_color: (255,0,0,0.6) if self.state == "normal" else (0,0,255,0.6) 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 = "Settings" 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" Label: text: "This software is free Software licensed under the GPL V3 (GNU General Public License) and as such comes with absolutely no warranty. In return, you can use, modify, distribute or use any of the code of this software in your own project, if you reuse the same license. For more infos, you can find a copy of this license in the project folder." text_size: self.width, None : on_pre_enter: self.config = root.read_config() name: "Settings" canvas.before: Color: rgba: (50,50,50,0.2) Rectangle: size: self.size pos: self.pos GridLayout: cols: 1 Label: text: "Settings" font_size: 40 color: (0, 113, 0, 1) bold: True FloatLayout: GridLayout: pos_hint: {"x":0.05, "y":0.05} size_hint: 0.9, 0.9 cols: 4 Button: text: "Back" background_color: (255,0,0,0.6) on_release: app.root.current = "HomeS" root.manager.transition.direction = "up" Button: text: "Report a\nBug" background_color: (255,0,0,0.6) on_release: root.issue_reporting() ToggleButton: id: prsel text: "Full\nreprogramming" if self.state == "normal" else "Partial\nreprogramming" on_release: root.change_programming() background_color: (255,0,0,0.6) if self.state == "normal" else (0,0,255,0.6) Button: text: "Credits" background_color: (255,0,0,0.6) on_release: app.root.current = "Credits" root.manager.transition.direction = "left"