chore: GUI вынесен в отдельный класс + доработана структура проекта

This commit is contained in:
Андрей Скирченко 2024-11-01 20:19:02 +03:00
parent c184397c6c
commit 8d71f8ffc0
16 changed files with 67 additions and 2065 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
from OptAlgorithm.AutoConfigClass import AutoConfigClass from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
from numpy import sqrt from numpy import sqrt
class ConstantCalculator(AutoConfigClass): class ConstantCalculator(AutoConfigClass):

View File

@ -1,6 +1,6 @@
from OptAlgorithm.OptTimeCalculator import OptTimeCalculator from src.OptAlgorithm.OptTimeCalculator import OptTimeCalculator
from OptAlgorithm.AutoConfigClass import AutoConfigClass from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
from OptAlgorithm.ConstantCalculator import ConstantCalculator from src.OptAlgorithm.ConstantCalculator import ConstantCalculator
from numpy import cos, sin, sqrt, cbrt, arcsin from numpy import cos, sin, sqrt, cbrt, arcsin

View File

@ -1,7 +1,7 @@
from numpy import sqrt, arcsin, arccos, cos, sin from numpy import sqrt, arcsin, arccos, cos, sin
from OptAlgorithm.AutoConfigClass import AutoConfigClass from src.OptAlgorithm.AutoConfigClass import AutoConfigClass
from OptAlgorithm.ConstantCalculator import ConstantCalculator from src.OptAlgorithm.ConstantCalculator import ConstantCalculator
class OptTimeCalculator(AutoConfigClass): class OptTimeCalculator(AutoConfigClass):

1
src/gui/__init__.py Normal file
View File

@ -0,0 +1 @@
from .plot_window import PlotWindow

View File

@ -1,14 +1,11 @@
import pyqtgraph as pg import pyqtgraph as pg
import numpy as np import numpy as np
from utils import read_json, DiagramParser from src.gui import qt_settings as qts
from uml import Request, UMLCreator from src.OptAlgorithm import OptAlgorithm
#нижний fe x1
import qt_settings as qts
from OptAlgorithm import OptAlgorithm
class Application: class PlotWindow:
def __init__(self, def __init__(self,
opt: OptAlgorithm, opt: OptAlgorithm,
bool_dict: dict, bool_dict: dict,
@ -149,39 +146,3 @@ class Application:
self.p11.setYRange(-1000, 5000) self.p11.setYRange(-1000, 5000)
self.p12.setYRange(-50, 250) self.p12.setYRange(-50, 250)
self.p13.setYRange(-400, 400) self.p13.setYRange(-400, 400)
def get_ideal_timings(opt: OptAlgorithm) -> list[float]:
data = opt.Ts
ideal_time = [data['tclose'], data['tgrow'], opt.getMarkOpen()]
return ideal_time
def main():
operator_params = read_json("params/operator_params.json")
system_params = read_json("params/system_params.json")
opt_algorithm = OptAlgorithm(operator_config=operator_params, system_config=system_params)
ideal_times = get_ideal_timings(opt_algorithm)
parser = DiagramParser()
parser.setData("2024_10_28-17_03_34.csv")
bool_dict = parser.getBoolDict()
float_dict = parser.getFloatDict()
request_generator = Request(server_url='http://www.plantuml.com/plantuml/svg/')
uml_creator = UMLCreator(request_generator=request_generator,
ideal_time=ideal_times,
bool_dict=bool_dict,
float_dict=float_dict)
uml_creator.update_uml()
app = Application(opt=opt_algorithm,
bool_dict=bool_dict,
float_dict=float_dict)
app.updatePlots()
pg.exec()
if __name__ == '__main__':
main()

View File

@ -235,7 +235,6 @@ QPushButton:disabled {
""" """
colors = [ colors = [
'#FF6F61', # яркий коралловый '#FF6F61', # яркий коралловый
'#6B5B95', # приглушенный фиолетовый '#6B5B95', # приглушенный фиолетовый
@ -249,8 +248,8 @@ colors = [
'#45B8AC' # мягкий мятный '#45B8AC' # мягкий мятный
] ]
RGBA = [(124, 252, 0), RGBA = [(255, 255, 0),
(255, 215, 0), (32, 178, 70),
(255, 69, 0), (255, 69, 0),
(123, 104, 238) (123, 104, 238)
] ]

42
src/main.py Normal file
View File

@ -0,0 +1,42 @@
import pyqtgraph as pg
from utils import read_json, DiagramParser
from uml import Request, UMLCreator
from OptAlgorithm import OptAlgorithm
from gui import PlotWindow
def get_ideal_timings(opt: OptAlgorithm) -> list[float]:
data = opt.Ts
ideal_time = [data['tclose'], data['tgrow'], opt.getMarkOpen()]
return ideal_time
def main():
operator_params = read_json("params/operator_params.json")
system_params = read_json("params/system_params.json")
opt_algorithm = OptAlgorithm(operator_config=operator_params, system_config=system_params)
ideal_times = get_ideal_timings(opt_algorithm)
parser = DiagramParser()
parser.setData("trace_samples/2024_11_01-09_39_17.csv")
bool_dict = parser.getBoolDict()
float_dict = parser.getFloatDict()
request_generator = Request(server_url='http://www.plantuml.com/plantuml/svg/')
uml_creator = UMLCreator(request_generator=request_generator,
ideal_time=ideal_times,
bool_dict=bool_dict,
float_dict=float_dict)
uml_creator.update_uml()
app = PlotWindow(opt=opt_algorithm,
bool_dict=bool_dict,
float_dict=float_dict)
app.updatePlots()
pg.exec()
if __name__ == '__main__':
main()

View File

@ -1,5 +1,4 @@
import os from src.uml.request_generator import Request
from uml.request_generator import Request
class UMLCreator: class UMLCreator:
@ -18,7 +17,7 @@ class UMLCreator:
sig = [ sig = [
'Electrode Closing Algorithm Execute', # Начало закрытия 'Electrode Closing Algorithm Execute', # Начало закрытия
'Electrode Closing Algorithm Done', 'Electrode Closing Algorithm Done',
'STEP 3: ME Hold P2 AND Condition Start Force Control', # Конец закрытия и Начало набора усилия # 'STEP 3: ME Hold P2 AND Condition Start Force Control', # Конец закрытия и Начало набора усилия
'STEP 4: ME Force Control', 'STEP 4: ME Force Control',
'Position Control ME', # Начало разъезда или 'Posision Control Activated FE' 'Position Control ME', # Начало разъезда или 'Posision Control Activated FE'
'Position Control FE', # Начало разъезда 'Position Control FE', # Начало разъезда

View File

@ -50,7 +50,7 @@ class Request:
def generateSVG(self): def generateSVG(self):
self._compileUML() self._compileUML()
filename = abspath('../UML.txt') filename = abspath('UML.txt')
self.server.processes_file(filename, outfile='UML.svg') self.server.processes_file(filename, outfile='UML.svg')
#result = self.server.processes(self.stringUML) #result = self.server.processes(self.stringUML)
#return result #return result