mirror of
https://github.com/janishutz/BiogasControllerApp.git
synced 2025-11-26 06:14:24 +00:00
Update to the backend and new Screen.
Features: - Added a new settings page - Laid out some backend stuff to integrate some new features - prepared backend to include an option to have the previous values also displayed when updating them both screens where you may change configuration of the microcontroller
This commit is contained in:
@@ -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()
|
||||
@@ -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
|
||||
@@ -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])
|
||||
Reference in New Issue
Block a user